49 #ifndef STAGE_DISPLAY_SERVICE_H 50 #define STAGE_DISPLAY_SERVICE_H 60 #include <sigc++/sigc++.h> 70 using Glib::Dispatcher;
73 typedef sigc::slot<void, void*> FrameDestination;
74 typedef sigc::signal<void, void*> FrameSignal;
85 :
public lumiera_displaySlot,
88 Dispatcher dispatcher_;
89 FrameSignal hasFrame_;
91 LumieraDisplayFrame currBuffer_;
101 inline void put (LumieraDisplayFrame);
142 ServiceInstanceHandle serviceInstance_;
147 ~
DisplayService() { INFO (proc_dbg,
"Display service dying..."); }
153 static LumieraDisplaySlot setUp (FrameDestination
const&);
159 void allocate (LumieraDisplaySlot,
bool doAllocate);
175 if (newFrame != currBuffer_)
177 currBuffer_ = newFrame;
182 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...