Lumiera  0.pre.03
»edit your freedom«
dummy-player-facade.h
Go to the documentation of this file.
1 /*
2  DUMMY-PLAYER-FACADE.h - access point to a dummy test player
3 
4  Copyright (C)
5  2009, Hermann Vosseler <Ichthyostega@web.de>
6 
7   **Lumiera** is free software; you can redistribute it and/or modify it
8   under the terms of the GNU General Public License as published by the
9   Free Software Foundation; either version 2 of the License, or (at your
10   option) any later version. See the file COPYING for further details.
11 
12 */
13 
14 
20 #ifndef STEAM_INTERFACE_DUMMYPLAYER_H
21 #define STEAM_INTERFACE_DUMMYPLAYER_H
22 
23 #include "include/display-facade.h"
25 
26 
27 
28 #ifdef __cplusplus /* ============== C++ Interface ================= */
29 
30 #include "common/subsys.hpp"
31 #include "lib/depend.hpp"
32 #include "lib/handle.hpp"
33 
34 
35 
36 
37 namespace steam {
38  namespace play {
39 
40  class ProcessImpl;
41 } }
42 
43 
44 namespace lumiera {
45 
46 
47  /**************************************************************/
64  {
65  public:
69  static lumiera::Subsys& getDescriptor();
70 
73 
75 
90  class Process
91  : public lib::Handle<ProcessImplementationLink>
92  {
93  public:
94  void play(bool);
95  };
96 
107  : public lumiera_playprocess
108  {
109  public:
110  virtual ~ProcessImplementationLink();
111 
112  virtual Process createHandle() =0;
113  virtual void doPlay(bool yes) =0;
114  };
115 
116 
117 
118 
120  virtual Process start(LumieraDisplaySlot viewerHandle) =0;
121 
122 
123  protected:
124  virtual ~DummyPlayer();
125  friend class lib::DependencyFactory<DummyPlayer>;
126  };
127 
128 
129 } // namespace lumiera
130 
131 
132 
133 
134 extern "C" {
135 #endif /* =========================== CL Interface ===================== */
136 
137 
138 #include "common/interface.h"
139 
140 LUMIERA_INTERFACE_DECLARE (lumieraorg_DummyPlayer, 0
141  , LUMIERA_INTERFACE_SLOT (LumieraPlayProcess, startPlay, (LumieraDisplaySlot) )
142  , LUMIERA_INTERFACE_SLOT (void, togglePlay,(LumieraPlayProcess, bool))
143  , LUMIERA_INTERFACE_SLOT (void, terminate, (LumieraPlayProcess) )
144 );
145 
146 
147 #ifdef __cplusplus
148 }
149 #endif
150 #endif
Dependencies and lifecycle of a partially independent Subsystem of the Application.
Definition: subsys.hpp:61
Generic opaque reference counting handle, for accessing a service and managing its lifecycle...
Definition: handle.hpp:63
Playback process, front-end to be used by client code.
#define LUMIERA_INTERFACE_DECLARE(name, version,...)
Declare an interface.
Definition: interface.h:154
Steam-Layer implementation namespace root.
Access point to singletons and other kinds of dependencies designated by type.
Definition: depend.hpp:280
Experimental Interface, allowing the Dummy-Player to access the video display widget in the GUI...
Lumiera interface macros and structures.
Describing dependencies and lifecycle of the application&#39;s primary parts.
Actual implementation of a single (dummy) playback process.
Singleton services and Dependency Injection.
static lib::Depend< DummyPlayer > facade
get an implementation instance of this service
Lumiera public interface.
Definition: advice.cpp:104
Helper to abstract creation and lifecycle of a dependency.
Definition: depend.hpp:125
Experimental Interface Steam-Layer (or maybe the vault?): Global access point for starting a dummy pl...
A generic opaque handle to an implementation entity, including lifecycle management.
Opaque handles and similar typedefs used to communicate via the lumiera::Display and lumiera::DummyPl...