54 ,lumieraorg_DisplayFacade_descriptor
56 , LUMIERA_INTERFACE_INLINE (
name,
57 const char*, (LumieraInterface ifa),
58 { (void)ifa;
return "Display"; }
60 , LUMIERA_INTERFACE_INLINE (brief,
61 const char*, (LumieraInterface ifa),
62 { (void)ifa;
return "UI Interface: service for outputting frames to a viewer or display"; }
64 , LUMIERA_INTERFACE_INLINE (homepage,
65 const char*, (LumieraInterface ifa),
66 { (void)ifa;
return "http://www.lumiera.org/develompent.html" ;}
68 , LUMIERA_INTERFACE_INLINE (version,
69 const char*, (LumieraInterface ifa),
70 { (void)ifa;
return "0.1~pre"; }
72 , LUMIERA_INTERFACE_INLINE (author,
73 const char*, (LumieraInterface ifa),
74 { (void)ifa;
return "Hermann Vosseler"; }
76 , LUMIERA_INTERFACE_INLINE (email,
77 const char*, (LumieraInterface ifa),
78 { (void)ifa;
return "Ichthyostega@web.de"; }
80 , LUMIERA_INTERFACE_INLINE (copyright,
81 const char*, (LumieraInterface ifa),
85 "Copyright (C) Lumiera.org\n" 86 " 2009 Hermann Vosseler <Ichthyostega@web.de>";
89 , LUMIERA_INTERFACE_INLINE (license,
90 const char*, (LumieraInterface ifa),
94 "This program is free software; you can redistribute it and/or modify\n" 95 "it under the terms of the GNU General Public License as published by\n" 96 "the Free Software Foundation; either version 2 of the License, or\n" 97 "(at your option) any later version.\n" 99 "This program is distributed in the hope that it will be useful,\n" 100 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" 101 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" 102 "GNU General Public License for more details.\n" 104 "You should have received a copy of the GNU General Public License\n" 105 "along with this program; if not, write to the Free Software\n" 106 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA";
109 , LUMIERA_INTERFACE_INLINE (state,
110 int, (LumieraInterface ifa),
113 , LUMIERA_INTERFACE_INLINE (versioncmp,
114 int, (
const char* a,
const char* b),
115 {(void)a;(void)b;
return 0;}
123 using LERR_(LIFECYCLE);
130 ,lumieraorg_DisplayService
134 , LUMIERA_INTERFACE_INLINE (allocate,
135 void, (LumieraDisplaySlot slotHandle),
143 REQUIRE (slotHandle);
151 , LUMIERA_INTERFACE_INLINE (release,
152 void, (LumieraDisplaySlot slotHandle),
160 REQUIRE (slotHandle);
164 , LUMIERA_INTERFACE_INLINE (put,
165 void, (LumieraDisplaySlot slotHandle, LumieraDisplayFrame frame),
170 REQUIRE (slotHandle);
185 DisplayService::DisplayService()
189 INFO (progress,
"Display Facade opened.");
216 handle->put_ = serviceInstance_.
get().put;
228 REQUIRE (handle->put_,
"accessing a DisplayerSlot, which hasn't been locked for output");
240 DisplayerSlot::DisplayerSlot (FrameDestination
const& outputDestination)
244 hasFrame_.connect (outputDestination);
249 DisplayerSlot::~DisplayerSlot()
251 TRACE (gui_dbg,
"Displayer Slot closing...");
258 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.