45 ,lumieraorg_DisplayFacade_descriptor
47 , LUMIERA_INTERFACE_INLINE (
name,
48 const char*, (LumieraInterface ifa),
49 { (void)ifa;
return "Display"; }
51 , LUMIERA_INTERFACE_INLINE (brief,
52 const char*, (LumieraInterface ifa),
53 { (void)ifa;
return "UI Interface: service for outputting frames to a viewer or display"; }
55 , LUMIERA_INTERFACE_INLINE (homepage,
56 const char*, (LumieraInterface ifa),
57 { (void)ifa;
return "http://www.lumiera.org/develompent.html" ;}
59 , LUMIERA_INTERFACE_INLINE (version,
60 const char*, (LumieraInterface ifa),
61 { (void)ifa;
return "0.1~pre"; }
63 , LUMIERA_INTERFACE_INLINE (author,
64 const char*, (LumieraInterface ifa),
65 { (void)ifa;
return "Hermann Vosseler"; }
67 , LUMIERA_INTERFACE_INLINE (email,
68 const char*, (LumieraInterface ifa),
69 { (void)ifa;
return "Ichthyostega@web.de"; }
71 , LUMIERA_INTERFACE_INLINE (copyright,
72 const char*, (LumieraInterface ifa),
77 " 2009, Hermann Vosseler <Ichthyostega@web.de>";
80 , LUMIERA_INTERFACE_INLINE (license,
81 const char*, (LumieraInterface ifa),
85 "**Lumiera** is free software; you can redistribute it and/or modify it\n" 86 "under the terms of the GNU General Public License as published by the\n" 87 "Free Software Foundation; either version 2 of the License, or (at your\n" 88 "option) any later version. See the file COPYING for further details." 92 , LUMIERA_INTERFACE_INLINE (state,
93 int, (LumieraInterface ifa),
96 , LUMIERA_INTERFACE_INLINE (versioncmp,
97 int, (
const char* a,
const char* b),
98 {(void)a;(void)b;
return 0;}
106 using LERR_(LIFECYCLE);
113 ,lumieraorg_DisplayService
117 , LUMIERA_INTERFACE_INLINE (allocate,
118 void, (LumieraDisplaySlot slotHandle),
126 REQUIRE (slotHandle);
134 , LUMIERA_INTERFACE_INLINE (release,
135 void, (LumieraDisplaySlot slotHandle),
143 REQUIRE (slotHandle);
147 , LUMIERA_INTERFACE_INLINE (put,
148 void, (LumieraDisplaySlot slotHandle, LumieraDisplayFrame frame),
153 REQUIRE (slotHandle);
168 DisplayService::DisplayService()
172 INFO (progress,
"Display Facade opened.");
199 handle->put_ = serviceInstance_.
get().put;
211 REQUIRE (handle->put_,
"accessing a DisplayerSlot, which hasn't been locked for output");
223 DisplayerSlot::DisplayerSlot (FrameDestination
const& outputDestination)
227 hasFrame_.connect (outputDestination);
232 DisplayerSlot::~DisplayerSlot()
234 TRACE (gui_dbg,
"Displayer Slot closing...");
241 hasFrame_.emit (currBuffer_);
lumiera_err lumiera_error_peek(void)
Check current error state without clearing it Please avoid this function and use lumiera_error() if p...
A public service provided by the GUI, implementing the lumiera::Display facade interface.
I & get() const
directly access the instance via the CL interface
lib::Depend< DisplayService > _instance
a backdoor for the C Language impl to access the actual SessionCommand implementation...
Actual implementation of a single displayer slot.
Access point to singletons and other kinds of dependencies designated by type.
Not finished development code.
void put(LumieraDisplayFrame)
receive a frame to be displayed
#define LUMIERA_INTERFACE_INSTANCE(iname, version, name, descriptor, acquire, release,...)
Define an interface instance.
static LumieraDisplaySlot setUp(FrameDestination const &)
open a new display, sending frames to the given output destination
Derived specific exceptions within Lumiera's exception hierarchy.
#define LUMIERA_INTERFACE_REF(iname, version, dname)
Return a reference (pointer) to an interface implementation.
Lumiera GTK UI implementation root.
DisplayerSlot & resolve(LumieraDisplaySlot)
resolve the given display slot handle to yield a ref to an actual implementation object.
Singleton services and Dependency Injection.
void displayCurrentFrame()
internal: activated via Dispatcher and running in GTK main thread
lumiera_err lumiera_error_set(lumiera_err nerr, const char *extra)
Set error state for the current thread.
void allocate(LumieraDisplaySlot, bool doAllocate)
prepare and the given slot for output
A data record to describe interface, interface instances and plug-in instances.
T & manage(T *obj)
take ownership of the given object, adding it at the end of the collection
Interface and Base definition for all Lumiera Exceptions.