40 #ifndef STAGE_DISPLAY_SERVICE_H 41 #define STAGE_DISPLAY_SERVICE_H 51 #include <sigc++/sigc++.h> 61 using Glib::Dispatcher;
64 typedef sigc::slot<void, void*> FrameDestination;
65 typedef sigc::signal<void, void*> FrameSignal;
76 :
public lumiera_displaySlot,
79 Dispatcher dispatcher_;
80 FrameSignal hasFrame_;
82 LumieraDisplayFrame currBuffer_;
92 inline void put (LumieraDisplayFrame);
133 ServiceInstanceHandle serviceInstance_;
138 ~
DisplayService() { INFO (proc_dbg,
"Display service dying..."); }
144 static LumieraDisplaySlot setUp (FrameDestination
const&);
150 void allocate (LumieraDisplaySlot,
bool doAllocate);
166 if (newFrame != currBuffer_)
168 currBuffer_ = newFrame;
173 TRACE (
render,
"frame dropped?");
Interface for outputting frames to an (already allocated) viewer or display.
string render(DataCap const &)
Any copy and copy construction prohibited.
Actual implementation of a single displayer slot.
This header is for including and configuring NoBug.
Managing lifecycle for a collection of objects.
void put(LumieraDisplayFrame)
receive a frame to be displayed
Experimental Interface, allowing the Dummy-Player to access the video display widget in the GUI...
Mix-Ins to allow or prohibit various degrees of copying and cloning.
Lumiera GTK UI implementation root.
void displayCurrentFrame()
internal: activated via Dispatcher and running in GTK main thread
Actual implementation of the DisplayService.
Handle tracking the registration of an interface, deregistering it on deletion.
#define LUMIERA_INTERFACE_INAME(name, version)
Construct a type identifier for an interface.
A handle template for automatically dealing with interface and plugin registration and deregistration...
string resolve(fsys::path iniSpec)
use the general mechanism for resolving a search path to get the absolute path of the setup...