Commit graph

157 commits

Author SHA1 Message Date
Christian Thaeter
23508f3f74 Nice, follow scons, name it liblumiera.a too 2008-10-21 06:19:52 +02:00
d64d822690 merge from backend (plugin loader)
Merge commit 'lumi/master' into proc
2008-10-16 00:35:57 +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
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
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
Christian Thaeter
66a1142079 apply the new defined nameing rules to interface.h 2008-10-15 16:01:09 +02:00
Christian Thaeter
b252807c55 functions for interface acquire/release 2008-10-15 16:01:09 +02:00
Christian Thaeter
caa5bd10a0 interface update
* remove the data member from the interface structure
 * add a psplay node used in a upcoming interface registry
 * add a INLINE function mapper
2008-10-15 16:01:08 +02:00
Christian Thaeter
feb9ba7db9 provide some example code for the 'interface' system
* test-interfaces.c is just a mockup to show how interfaces are created
 * fix some bugs introduced with a futile refactoring try at the last commit
2008-10-15 16:01:08 +02:00
Christian Thaeter
c84d10c9d5 Add a CALL macro to interface.h 2008-10-15 16:01:08 +02:00
Christian Thaeter
f114b04509 Documentation for the interface system and small refactorings on the fly 2008-10-15 16:01:08 +02:00
Christian Thaeter
de44b83fcd New interface header
Provides structures used for managing interfaces, macros for declaring
and defining interfaces. Convinience macros to bundle buildin and plugin
interfaces.
2008-10-15 16:01:08 +02:00
Christian Thaeter
dd9e5051ba use nobug's new RESOURCE_HANDLE_COMMA_INITIALIZER and some cosmetics along 2008-10-15 15:51:48 +02:00
Christian Thaeter
38f2a9c6c9 add a lumiera_realloc() function to the safeclib 2008-10-15 15:51:48 +02:00
Christian Thaeter
ed246ab222 Adding recursive mutexes, fix chained mutex to take only one parameter
Recursive mutex can be locked multiple times by a single thread they
are initialitzed by lumiera_recmutex_init() and used by LUMIERA_RECMUTEX_*
macros.

Chained mutex use the mutexacquirer from the outer scope now. Maybe its
later needed to pass acquirers explicit, we will see.
2008-10-15 15:49:35 +02:00
Christian Thaeter
9cdfd02e9b makefile update for library 2008-10-15 15:49:35 +02:00
Christian Thaeter
2a723bc5ba add 'STRINGIFY' to ppmpl.h 2008-10-15 15:49:35 +02:00
Christian Thaeter
a7f75b3f6f preprocessor concat implementation which evaluates its arguments 2008-10-15 15:49:35 +02:00
Christian Thaeter
bfdcbfcb7f add a static initializer to psplay.h 2008-10-15 15:49:35 +02:00
Nicholas Sinnott-Armstrong
7d86367909 Added preliminary support for chained mutex calls. 2008-10-15 15:49:35 +02:00
Christian Thaeter
16d2fcf2e9 macro for initializing a uchar[16] from a string literal in C++ 2008-10-15 15:49:34 +02:00
Christian Thaeter
4d65f0394d Add FOREACH variants for nesting to ppmpl
Three levels of nesting are enough for anyone!
2008-10-15 15:49:34 +02:00
Christian Thaeter
973348fdb8 preprocessor metaprogramming ftw
Added a header for generalized preprocessor idioms.
This will grow over time, as needed things will be added.
2008-10-15 15:49:34 +02:00
Christian Thaeter
14a9e95492 moved plugin code from lib to backend
Plugin management will become stateful. This qualifies it to become a
backend subsystem.
2008-10-15 15:49:34 +02:00
873910f0b8 WIP considerations about querying 2008-09-28 04:05:10 +02:00
feb64fac01 outline: use of the raw type info for fetching a ImplFacade 2008-09-26 04:57:20 +02:00
f80d0a49bd provide for the GAVL impl facade to be registered as basic media type.
WIP actual implementation missing...
2008-09-24 06:36:35 +02:00
578178a937 brainstorming (continued). MediaImplLib
considering how to snap in the actual implementation
2008-09-22 06:42:10 +02:00
Michael Ploujnikov
f5387d8bf3 Merge branch 'master' of git://git.lumiera.org/LUMIERA
Conflicts:

	tests/Makefile.am
2008-09-06 20:15:05 -04:00
Christian Thaeter
79fee29519 small note annd cosmetics for safeclib 2008-09-06 12:24:36 +02:00
Christian Thaeter
dc34ea994c add psplay_delete_node and psplay_delete_key functions
Both delete a entry from a splay tree by calling the registered delete
handler.
2008-09-06 12:24:06 +02:00
Christian Thaeter
86deb4e72d Probabilistic Splay Tree implementation
Generalized an older implementation I already had, the splay formulas need
some improvements. Documentation comes next.
2008-09-06 12:23:58 +02:00
Christian Thaeter
bc055ab803 Probabilistic Splay Tree implementation
Generalized an older implementation I already had, the splay formulas need
some improvements. Documentation comes next.
2008-09-06 12:22:43 +02:00
Christian Thaeter
9471e47cdf WIP: Cuckoo hash update, leave it at a insane state
* add a destructor function for elements
 * rename cuckoo_free to cuckoo_delete to be consistent with the rest
 * add a custom copy function to the cuckoo hash
 * Cuckoo hash update, use a vtable to pass functions to the constructor
 * make the source of a move non-const, just in case something needs
   to be cleaned up there.
 * let cuckoo_insert return the hash table entry directly
2008-09-06 12:08:23 +02:00
Christian Thaeter
cfcb9ce34c Add lumiera_tmpbuf_strcat3 for concating up to three strings to safeclib 2008-09-06 12:08:22 +02:00
Christian Thaeter
e2b7561c76 FIX: put a note to list_relocate, add test
There was a fatal thinko, llist_relocate NUST NOT be called on a empty
list, the pointers will just point to invaildated memory. This cant be
handled by the llist code. The programmer is responsible to take proper
actions.
2008-09-06 12:07:38 +02:00
Christian Thaeter
0debd27d89 Merge branch 'master' of git://git.lumiera.org/LUMIERA into library
* 'master' of git://git.lumiera.org/LUMIERA: (80 commits)
  fix some warnings
  fix name of 'doc' target, remove the OPENGL flag for now
  improved the architecture overview (drawing)
  Fixed hyperactive scroll wheel zoom
  Fixed a bug with body redrawing and added some documentation
  Added some documentation to body and ruler
  Added support for audacity style playback period, and added some
  Added time indication
  improved the scons build to report all missing dependencies instead of stopping at the first one
  add my favorite lumiera logo to the TiddlyWiki page
  scons: use Doxygen builder
  makefile typo fix
  disable precompiled headers for now.
  replace the homebrew GCH-builder by a lib solution
  yet more make fixes
  make build work again with SCons 0.96
  preliminary fix for the SCons build for Debian/testing
  automatically set DEBUG when using the (current) NoBug default ALPHA
  Fix build with gcc 4.3
  integrated SVG Icon rendering into the SCons build
  ...
2008-09-06 11:53:16 +02:00
d94f1b9305 merge doc fixes
Merge commit '163ba179ed93c49c6d331c16afe9e54e97ad1876'
2008-09-04 15:28:39 +02:00
Michael Ploujnikov
8bdab41ea0 factor out -I$(top_srcdir)/src/ to a top-level AM_CPPFLAGS
also remove a related unnecesary comment in src/gui/Makefile.am
2008-08-30 12:05:21 -04:00
c5778f1540 Merge from proc (draft imp of pull() call) 2008-08-17 18:35:49 +02:00
749f7a41c6 Landing draft implementation of pull() call 2008-08-17 04:22:46 +02:00
Christian Thaeter
0bd886249b throw away the 'references' implementation, we probably don't need it
(could be reincarnated someday later when we find out that we need it)
2008-08-10 12:19:50 +02:00
Christian Thaeter
dde54ec7b0 Adapt the condition implementation to the macro SECTION based approach 2008-08-10 12:19:50 +02:00
Christian Thaeter
d8f59fb722 Simplyfiy resource management
Move the resource announce/forget into the rwlock init/destroy
Move resource announcement/forget into the mutex init/destroy
2008-08-10 12:19:09 +02:00
Christian Thaeter
c11915a4c4 new locking section macros for RWLocks, old acquirer bites the dust 2008-08-10 12:19:09 +02:00