LUMIERA.clone/src/lumiera/main.cpp
Ichthyostega 017ba5f160 Clean-up: remove dummy-player services and interfaces (see #1342)
For the [ticket:1221 »Playback Vertical Slice«] one of the next steps
will be to define a way to pass buffers from the core to the UI.

The `DisplayService` and the `DummyPlayerService` where parts of an
early architecture study to see how such a flexible connection between
components in different layers can be accomplished.

The findings from this prototyping work helped to shape the design
of the actual `PlayService`...
2025-05-14 01:32:21 +02:00

85 lines
2.3 KiB
C++
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
main.cpp - start the Lumiera Application
Copyright (C)
2007, Joel Holdsworth <joel@airwebreathe.org.uk>
2007, Christian Thaeter <ct@pipapo.org>
2008, Hermann Vosseler <Ichthyostega@web.de>
  **Lumiera** is free software; you can redistribute it and/or modify it
  under the terms of the GNU General Public License as published by the
  Free Software Foundation; either version 2 of the License, or (at your
  option) any later version. See the file COPYING for further details.
* *****************************************************************/
/** @file main.cpp
** Lumiera application main function
*/
#include "include/logging.h"
#include "lib/error.hpp"
#include "common/appstate.hpp"
#include "common/option.hpp"
#include "vault/enginefacade.hpp"
#include "vault/netnodefacade.hpp"
#include "vault/scriptrunnerfacade.hpp"
#include "steam/facade.hpp"
#include "stage/guifacade.hpp"
using lib::Cmdline;
using lumiera::Subsys;
using lumiera::AppState;
namespace {
Subsys& engine = vault::EngineFacade::getDescriptor();
Subsys& netNode = vault::NetNodeFacade::getDescriptor();
Subsys& script = vault::ScriptRunnerFacade::getDescriptor();
Subsys& session = steam::Facade::getSessionDescriptor();
Subsys& playOut = steam::Facade::getPlayOutDescriptor();
Subsys& lumigui = stage::GuiFacade::getDescriptor();
}
int
main (int argc, const char* argv[])
{
NOTICE (main, "*** Lumiera NLE for Linux ***");
AppState& application = AppState::instance();
try
{
Cmdline args (argc,argv);
lumiera::Option options (args);
application.init (options);
netNode.depends (session);
netNode.depends (engine);
// playOut.depends (engine); ///////////////////////////////////////TICKET #1149 actually start an »Engine subsystem«
playOut.depends (session);
lumigui.depends (session);
// lumigui.depends (engine);
script.depends (session);
script.depends (engine);
application.maybeStart (playOut);
application.maybeStart (netNode);
application.maybeStart (lumigui);
application.maybeStart (script);
return application.maybeWait();
}
catch (lumiera::Error& problem)
{
return application.abort (problem);
}
catch (...)
{
return application.abort();
}
}