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) Lumiera.org
5  2009, Hermann Vosseler <Ichthyostega@web.de>
6 
7  This program is free software; you can redistribute it and/or
8  modify it under the terms of the GNU General Public License as
9  published by the Free Software Foundation; either version 2 of
10  the License, or (at your option) any later version.
11 
12  This program is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with this program; if not, write to the Free Software
19  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 
21 */
22 
23 
29 #ifndef STEAM_INTERFACE_DUMMYPLAYER_H
30 #define STEAM_INTERFACE_DUMMYPLAYER_H
31 
32 #include "include/display-facade.h"
34 
35 
36 
37 #ifdef __cplusplus /* ============== C++ Interface ================= */
38 
39 #include "common/subsys.hpp"
40 #include "lib/depend.hpp"
41 #include "lib/handle.hpp"
42 
43 
44 
45 
46 namespace steam {
47  namespace play {
48 
49  class ProcessImpl;
50 } }
51 
52 
53 namespace lumiera {
54 
55 
56  /**************************************************************/
73  {
74  public:
78  static lumiera::Subsys& getDescriptor();
79 
82 
84 
99  class Process
100  : public lib::Handle<ProcessImplementationLink>
101  {
102  public:
103  void play(bool);
104  };
105 
116  : public lumiera_playprocess
117  {
118  public:
119  virtual ~ProcessImplementationLink();
120 
121  virtual Process createHandle() =0;
122  virtual void doPlay(bool yes) =0;
123  };
124 
125 
126 
127 
129  virtual Process start(LumieraDisplaySlot viewerHandle) =0;
130 
131 
132  protected:
133  virtual ~DummyPlayer();
134  friend class lib::DependencyFactory<DummyPlayer>;
135  };
136 
137 
138 } // namespace lumiera
139 
140 
141 
142 
143 extern "C" {
144 #endif /* =========================== CL Interface ===================== */
145 
146 
147 #include "common/interface.h"
148 
149 LUMIERA_INTERFACE_DECLARE (lumieraorg_DummyPlayer, 0
150  , LUMIERA_INTERFACE_SLOT (LumieraPlayProcess, startPlay, (LumieraDisplaySlot) )
151  , LUMIERA_INTERFACE_SLOT (void, togglePlay,(LumieraPlayProcess, bool))
152  , LUMIERA_INTERFACE_SLOT (void, terminate, (LumieraPlayProcess) )
153 );
154 
155 
156 #ifdef __cplusplus
157 }
158 #endif
159 #endif
Dependencies and lifecycle of a partially independent Subsystem of the Application.
Definition: subsys.hpp:70
Generic opaque reference counting handle, for accessing a service and managing its lifecycle...
Definition: handle.hpp:72
Playback process, front-end to be used by client code.
#define LUMIERA_INTERFACE_DECLARE(name, version,...)
Declare an interface.
Definition: interface.h:163
Steam-Layer implementation namespace root.
Access point to singletons and other kinds of dependencies designated by type.
Definition: depend.hpp:289
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:113
Helper to abstract creation and lifecycle of a dependency.
Definition: depend.hpp:134
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...