Commit graph

586 commits

Author SHA1 Message Date
53e17e2751 merge new Plugin implementation
Merge commit 'pipapo/master'
2008-11-03 20:58:09 +01:00
Christian Thaeter
2342c3a87a New Plugin implementation
* plugin{.h,.c} are back but work in progress
 * the interfaceregistry also manages a pluginregistry, makes no much sense
   to isolate it yet, both share a mutex and are commonly used together
2008-11-03 08:07:22 +01:00
Christian Thaeter
257b310699 add an error_peek function, fix prototypes
lumiera_error_peek() lets one investigate the error state without resetting
it.
2008-11-03 08:03:48 +01:00
Christian Thaeter
48778cf3d7 WIP: new plugin.h header
This ditches the old 'proof of concept' implementation, interfaces and
plugins are internally separate now and publically only accessed over
the 'interfaces' api.

The interface registry now gets an additional 'plugin' member to
backreference plugins from interfaces.
2008-10-31 06:42:53 +01:00
Christian Thaeter
7be18d6344 Adding explicit delimiters to the config wordlist feature
This greatly simplifies the task where we want to handle colon separated
paths within the config.
2008-10-31 06:29:55 +01:00
9f8f0c7c20 temp. fix to make it compile on Etch based system 2008-10-28 01:56:51 +01:00
Christian Thaeter
28a5c5257a Merge commit 'joel/gui' into master
* commit 'joel/gui':
  Correct a liblumi to liblumiera
  Added track tree support and added widgets to headers
  Corrected a selection rendering bug in TimelineBody
  Added linkage to the proc layer
  Made GtkLumiera and WindowManager boost::noncopyable
  Added the backend as a lib, and included the interface header
  Showed some love to viewer panel
  Changed the "delete" variable name to "del" to satisfy the C++ compiler
  Renamed HeaderContainer to TimelineHeaderContainer

Conflicts:

	src/gui/Makefile.am
2008-10-27 06:00:32 +01:00
Christian Thaeter
b242f3359b Fix/Wip: LUMIERA_PLUGIN definition
There where some bugs slipped in (not yet tested code)

removed the descriptor from the plugin itself, lets see if we can remove
the acquire and release functions later too.

Declare the plugin interface itself in its first experimental state
2008-10-27 05:10:24 +01:00
Christian Thaeter
ab3d3823f6 autotools fixes for the plugin system
don't link the tests with -ldl

Renamed GTK_LUMIERA_* to LUMIERA_GUI_* and include all gui relevant config
results here.

Set it explicit, don't add the results to CFLAGS or LIBS, the default
behaviour linked all LIBS in, even in plugins, that was not intended.
2008-10-27 05:10:01 +01:00
Christian Thaeter
84df018931 some cosmetics and a copy'n'paste interfacedescriptor example 2008-10-27 05:09:20 +01:00
Christian Thaeter
194e4b9fec Complete the luidgen tool
calling 'luidgen' with a list of filenames replaces the word LUIDGEN in
each of this files with a octal escaped string consisting a unique
identifier

add luid formatter help macros to luid.h

let compilation of files which contain the word 'LUIDGEN' fail with a
hopefully self-explaining error message
2008-10-27 05:08:53 +01:00
Christian Thaeter
99e3e79fe6 Complete the interface descriptor declaration
After a discussion with ichthyo and some further thinking this should be
mostly finished now. Nevertheless it is still experimental until we gain
experience with it.
2008-10-27 05:08:53 +01:00
Christian Thaeter
e61c25a34a define an 'LUIDGEN' macro as uuid containing only zeros
This *must* be replaced by a real luid with a upcoming luidgen tool ASAP,
luids starting with zeros are invalid. For the time until this luidgen tool
is not ready we just leave it this way. Later it will be changed to give a
compile error.
2008-10-27 05:08:53 +01:00
Joel Holdsworth
7dcfa84d6a Correct a liblumi to liblumiera 2008-10-23 00:38:47 +01:00
Joel Holdsworth
87ba2ab3db Merge branch 'master' of git://git.lumiera.org/LUMIERA into gui
Conflicts:

	icons/Makefile.am
	src/gui/Makefile.am
2008-10-23 00:15:46 +01:00
Joel Holdsworth
efd9ab771b Added track tree support and added widgets to headers 2008-10-22 23:11:23 +01:00
Joel Holdsworth
a3030515be Corrected a selection rendering bug in TimelineBody 2008-10-22 22:23:04 +01:00
Christian Thaeter
ca0cea1c16 no, it doesn't end ... 2008-10-22 03:50:00 +02:00
Christian Thaeter
691dc8fd4e Does this ever end? found 2 more liblumi.a 2008-10-22 03:42:15 +02:00
Christian Thaeter
a95a40613c Fix: oops some more liblumi to liblumiera renames 2008-10-21 06:48:59 +02:00
Christian Thaeter
23508f3f74 Nice, follow scons, name it liblumiera.a too 2008-10-21 06:19:52 +02:00
Christian Thaeter
0e5a13ec31 give a warning when using experimental interfaces 2008-10-21 05:22:59 +02:00
Joel Holdsworth
1e3df80288 Added linkage to the proc layer 2008-10-20 19:28:29 +01:00
Joel Holdsworth
ee6fac5914 Made GtkLumiera and WindowManager boost::noncopyable 2008-10-20 19:19:06 +01:00
Joel Holdsworth
6396323e9e Added the backend as a lib, and included the interface header 2008-10-20 18:51:46 +01:00
Joel Holdsworth
d880b341b4 Showed some love to viewer panel 2008-10-20 18:50:37 +01:00
Joel Holdsworth
3a41758682 Changed the "delete" variable name to "del" to satisfy the C++ compiler 2008-10-18 12:25:18 +01:00
Joel Holdsworth
d89e979aa0 Renamed HeaderContainer to TimelineHeaderContainer 2008-10-18 11:20:02 +01:00
Joel Holdsworth
c6dcdf44da Corrected a breakage in the makefile.am caused by a directory tree
reorganisation
2008-10-18 00:23:54 +01:00
Joel Holdsworth
b653a60c17 Merge branch 'work' into gui 2008-10-18 00:15:06 +01:00
Joel Holdsworth
58e4920048 Corrected namespaces from lumiera::gui:: to gui:: 2008-10-18 00:13:27 +01:00
Joel Holdsworth
60beab4933 Merge branch 'master' of git://git.lumiera.org/LUMIERA into gui 2008-10-17 23:40:40 +01:00
Joel Holdsworth
ab609407a5 Fixed a bug exposed by make distcheck 2008-10-17 23:39:02 +01:00
Joel Holdsworth
c2d43aba2b Advanced code in the HeaderContainer 2008-10-17 23:36:37 +01:00
d64d822690 merge from backend (plugin loader)
Merge commit 'lumi/master' into proc
2008-10-16 00:35:57 +02:00
Christian Thaeter
ebcc5c7fd2 Fix: old plugin.c|.h must not be compiled and linked 2008-10-15 22:53:55 +02:00
Christian Thaeter
26c212b292 make the old plugin stuff barely compileable, disable tests, fix later 2008-10-15 22:18:17 +02:00
Christian Thaeter
9752de3102 Some prelimary TODO's for filedescriptor.c to be fixed later 2008-10-15 22:05:22 +02:00
Christian Thaeter
be9d2b189f fix lib/Makefile.am, a stale interfaces.h was left here 2008-10-15 18:01:52 +02:00
Christian Thaeter
9943dd76fd use a recursive mutex to lock interface operations
locking interfaceregistry operations and later on open/close etc
2008-10-15 17:21:22 +02:00
Christian Thaeter
f7fa5769ca Start of a 'wordlist' type for the config subsystem
wordlists are simple not quoted words delimited by semicolon, tab, space or
commas. Some special functions will allow to access each of this words by
index etc.
2008-10-15 17:19:53 +02:00
Christian Thaeter
0cf7dec793 Interfaceregistry for 'active' interfaces
All interfaces which are available get registered in a tree.
This will be used internal for lookup interfaces. The higher level calls
will be an	amalgamation of this lookup and the upcoming plugindb and
loader.
2008-10-15 17:18:03 +02:00
Christian Thaeter
29f5a0f2ab moved the remaining interface stuff from lib to backend 2008-10-15 16:05:17 +02:00
Christian Thaeter
ee7719eada tests and a first definition of a interface descriptor 2008-10-15 16:05:17 +02:00
Christian Thaeter
f05f6772f1 Interface system refactoring
* lumiera_interface are now static structures, never wrritten
 * introduced a lumiera_interfacenode which manages the dynamic data
   of interfaces. The interfaceregistry now holds this nodes.
2008-10-15 16:05:17 +02:00
Christian Thaeter
405a578c42 WIP: interface open/close handling cross dependencies 2008-10-15 16:05:17 +02:00
Christian Thaeter
a6ddb55e9b use a recursive mutex to lock interface operations
locking interfaceregistry operations and later on open/close etc
2008-10-15 16:05:15 +02:00
Christian Thaeter
4414af3751 add a 'weak' flag for interface_acquire/release()
When interfaces cross depend on each other nested acquiring from
their acquire handlers would introduce cyclic references which cant
be cleaned easily. By flagging such nested acquisitions as weak the
respective handler functions can account for this.

Example: maintain 2 ref counters one for strong and one for weak
acquisitions. At release time all acquired nested handles get closed when
the strong counter drops to zero, which causes that cross reference
releases will eventually drop the weak count to zero too. Then all
resources can be freed and the interface is properly shut down.
2008-10-15 16:04:32 +02:00
Christian Thaeter
c9ac956417 cosmetics 2008-10-15 16:04:32 +02:00
Christian Thaeter
bb9c53d32d change parameter order for _DNAME in interface.h, add a _REF macro 2008-10-15 16:04:32 +02:00