Joel Holdsworth
8debd21363
Squished some warnings in lib/tree.hpp
2009-01-02 13:10:56 +00:00
2aab2491aa
deal with a race regarding argument passing
2009-01-02 08:02:27 +01:00
Joel Holdsworth
0f3b290b6d
Tweaked tree.hpp to improve documentation to work better in lumiera
...
doxygen
2009-01-01 12:34:39 +00:00
2f34637088
wire in the new threads implementation from backend...
2008-12-31 06:56:31 +01:00
8c892846e1
renaming etc...
2008-12-31 05:05:34 +01:00
Joel Holdsworth
e670f42a39
Opps - tree.hpp committed now
2008-12-30 23:07:16 +00:00
Joel Holdsworth
54ddf81afa
Moved tree into the lumiera namespace
2008-12-30 23:06:22 +00:00
Joel Holdsworth
2bea14748c
Added Kasper Peeters STL-like templated tree class to lib
2008-12-30 22:58:21 +00:00
4b3d567ca0
Switch Singleton template to use the threadsafe version (Fix)
2008-12-30 08:19:32 +01:00
75bdc877dc
reconsider synchronisation and switch some parts to instance based locks.
2008-12-30 08:19:32 +01:00
00a5e7028d
care for copy operations
2008-12-30 08:19:32 +01:00
33ae97b50d
switch in the new recursive mutex/condition impl from backend
2008-12-30 08:17:05 +01:00
075b3c8d6a
fix some warnings...
2008-12-30 07:28:34 +01:00
Joel Holdsworth
1802512371
Reinstated -Werror and fixed the ftruncate warning
2008-12-29 20:41:47 +00:00
Joel Holdsworth
90d14d12f7
Merged in LUMIERA master and gui branches
2008-12-29 19:13:58 +00:00
Christian Thaeter
66fb3afe83
Fix: new nobug renamed some macros
2008-12-29 02:52:46 +01:00
Christian Thaeter
532f609ea1
experimental thread implementation
...
* This spawns a thread, almost as proposed
* The condition variable for finishing is not yet implemented
* Most Parameters are ignored
2008-12-29 01:50:38 +01:00
9f9ef10c11
add a temporary impl for recursive conditions just for test
...
(can be removed when the implemented in the backend)
2008-12-28 02:05:04 +01:00
Christian Thaeter
23f89b027a
fixes for new NoBug (mandatory upgrade)
...
I managed to break some interface compatibility with NoBug finally. The
new NOBUG_ALPHA_COMMA macros shall stay there now.
2008-12-27 18:42:10 +01:00
Christian Thaeter
1a792ac328
add reccondition variable, condition vars which use a recursive mutex
...
not tested yet
2008-12-27 16:25:07 +01:00
Christian Thaeter
07cec0a44d
make the uses of pthread_once faster by checking the once var first
2008-12-27 16:25:07 +01:00
16adff318d
Comments
2008-12-27 07:44:28 +01:00
250e3ba4df
add a convenience shortcut for waiting on a bool member function
2008-12-27 06:58:13 +01:00
af8d70c2bc
include fix
2008-12-27 01:30:48 +01:00
4e4d6f9fb2
fix Automake
2008-12-27 01:11:17 +01:00
93c4a282cc
Merge object monitor locking
2008-12-27 01:04:20 +01:00
e921b1658c
error.hpp belongs to src/lib
2008-12-27 00:53:35 +01:00
cbbc298fe9
kill some warnings
2008-12-26 23:17:51 +01:00
bd2ead37d5
Refactoring V: get lifecycle of a class-based monitor correct.
2008-12-26 05:44:49 +01:00
2173698e75
splitt off the (somewhat problematic) class locking case into a separate header
2008-12-26 04:25:01 +01:00
eaedab90ea
Refactoring IV: move the (still problematic) ClassLock out of the Sync compound
...
(no semantic change, but better notation)
2008-12-26 03:47:12 +01:00
54e88e6914
Refactoring III: Recursive/Nonrecursive and Waitable as policy classes
...
pass test again
2008-12-26 01:50:32 +01:00
1ff7f0c656
Refactoring II: encapsulate the variants probvieded by the backend as base classes
2008-12-24 23:23:23 +01:00
Christian Thaeter
072ea60352
Fix: use implicit nobug flag for releasing
...
needs new NoBug as well, I should check my code before pushing it to master
2008-12-24 03:59:08 +01:00
be2daf64ff
whitespace
...
(trying to compare LUMIERA_MUTEX_SECTION and LUMIERA_RECMUTEX_SECTION)
2008-12-24 03:42:36 +01:00
Christian Thaeter
7e13ca33d5
Condition Variable makeover
...
* Improved the Documentation
* add an CONDITION_UNLOCK macro to exoplicitly unlock the condition mutex
* Add ENSUREs to check that the mutex is locked
* Fix the CONDITION_WAIT, takes the missing condition expression now
* Fix, document and improve SIGNAL and BROADCAST macros
* remove the signal and broadcast functions
2008-12-24 03:40:55 +01:00
2650216d9b
Refactoring I: better put the timeout explicitly separate
2008-12-24 03:31:35 +01:00
Christian Thaeter
c0bc3cffb7
add a LUMIERA_RESOURCE_CPU to the resource-collector
2008-12-24 00:38:19 +01:00
Christian Thaeter
c9d83d97c3
Moved the resourcecollector from backend to lib
2008-12-24 00:26:32 +01:00
36704a856e
basic wait/notify impl added, waiting-test pass
2008-12-23 04:27:11 +01:00
59a7270f5d
draft test for wait/notify, fails without the implementation
2008-12-23 01:32:01 +01:00
43521e3945
building block for the Condition part of the Monitor pattern
2008-12-23 00:03:04 +01:00
2b8cd00ab5
yet another renaming. call it "Sync"...
2008-12-22 17:00:15 +01:00
67e95884d5
preliminary implementation using pthread primitives. Locking test pass.
2008-12-22 07:23:48 +01:00
9240da002f
WIP
2008-12-22 05:02:52 +01:00
751e1be596
better invocation, get rid of the template parameter
2008-12-22 05:02:52 +01:00
c4df935113
add draft impl for Monitor storage; dummy impl running
...
todo: actually do any locking, improve handling of the forThis parameter
2008-12-22 05:02:52 +01:00
2512f04f3f
WIP yet another namespace change. Now refer it from the test
2008-12-22 05:02:51 +01:00
112cd475b7
WIP draft the basic pattern
2008-12-22 05:02:51 +01:00
d1e385f3f4
rename class Thread into Concurrency
...
it's not a thread abstraction, but a locking helper
2008-12-22 05:02:51 +01:00
Christian Thaeter
4fb8f5b69d
Makefile.am makeover, add CFLAGS and CXXFLAGS everywhere
2008-12-22 02:24:19 +01:00
Christian Thaeter
3363cfe8ba
mixed fixes of small issues (compiler warnings)
2008-12-22 02:23:11 +01:00
Christian Thaeter
1058454871
remove cuckoo from the build system
...
cuckoo hashing was replaced by the psplay lookups, it needs some
improvements to make it easier useable and better hash function for
strings. This will be done someday later.
2008-12-21 18:59:34 +01:00
c8465a1a38
Merge latest GUI model additions
2008-12-21 07:10:46 +01:00
Christian Thaeter
4699efcb5d
Some Makefile.am cosmetics
2008-12-18 20:23:46 +01:00
fb72d20812
Autotools fixes
2008-12-18 10:33:37 +01:00
6d66476383
move config, interfaces and pluginsystem to liblumieracommon
2008-12-18 08:54:33 +01:00
357c7f0d9f
further Makefile.am tweaks to make the tests compile again
2008-12-18 07:44:06 +01:00
e8d76cd022
rename error.cpp to exception.cpp and fix remaining problems
2008-12-18 04:51:58 +01:00
Christian Thaeter
3654473b75
WIP: Merge common into lib
...
* breaks lumigui linking
* test non functional yet
* tools cant not be linked because of cross dependency problems
2008-12-17 17:53:32 +01:00
Christian Thaeter
c2a6d6a387
turn 'lib' into a shared library
2008-12-17 00:34:12 +01:00
Christian Thaeter
84339a0f87
moved the config system and interfaces/plugins back to lib
...
in preparation for the shared lib transistion doing next
2008-12-16 23:56:28 +01:00
Christian Thaeter
9a1a1890e2
post rebase fixes
...
tests are still broken and will be fixed for the shared lib transistion
2008-12-16 19:54:48 +01:00
085c60e039
util to invoke two functors chained,
...
here to be used for decorating a given signal (callback)
2008-12-15 13:36:42 +01:00
41f9f54907
pass compiler and starts OK without doing anything
2008-12-15 13:36:40 +01:00
3693a5fa3d
draft outline for main()
2008-12-15 13:33:05 +01:00
98b3fcbad8
missing implementation
2008-12-15 13:33:05 +01:00
b14d711146
refactor Appconfig, split off lifecycle interface
2008-12-15 13:33:05 +01:00
3f6f1218fc
some typos
2008-12-15 13:33:04 +01:00
c567c57a58
reorganise NoBug global definitions and startup
2008-12-15 13:33:04 +01:00
2b5affa8b3
Appconfig doesn't provide Config functionality any longer.
...
This role of the Appconfig class is superseeded by the Config subsystem...
2008-12-15 13:33:04 +01:00
628be502e5
reordered some files to use the new include and lumiera directories
2008-12-15 13:33:04 +01:00
Christian Thaeter
085f3ec5a7
a upper limit of 16 iterations was not enough in ppmpl,
...
lets see how long 64 suffices
2008-12-15 13:33:03 +01:00
Christian Thaeter
80359fb155
documentation and nobug improvement for mrucache
2008-12-15 01:17:23 +01:00
80e1e382f4
merge new plugin/interface system, testsuite changes, documentation
2008-11-07 01:26:31 +01:00
f19cdc1ad6
automake fixes
2008-11-06 04:25:33 +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
57ccc289b0
comment, add to testsuite
2008-10-30 04:34:05 +01:00
b475fd0979
AllocationCluster passes test
2008-10-30 04:03:14 +01:00
a00edd2a84
cluster datastructure works, finally.
...
WIP still a bug somewhere in the pseudo-memory manager (de-allocation fails)
2008-10-28 06:07:23 +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
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
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
6a1c33e5a1
create a lib header based on this solution
2008-10-26 22:35:01 +01:00
89fca1921d
WIP added simple usage test ... and made it compile,
...
but still a fundamental problem to resolve with the use of std::vector in this scenario
2008-10-24 06:06:24 +02:00
6bd0c84355
WIP added preliminary pseudo-implementation for the raw memory manager.
...
Actually this beast does just per object heap allocations, .... any takers?
2008-10-23 23:08:27 +02:00
b479404288
fix logic for allocating a new memory manager
2008-10-23 19:47:08 +02:00
75cf4a97b3
ScopedHolder test passed
2008-10-23 18:33:56 +02:00
2b2654cb38
WIP test covering the ScopedHolder helpers
2008-10-23 07:15:48 +02: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
716700a432
draft solution finished, compiles but test fails of course...
...
solved the problem to push the actual memory manager completely into the cpp file
2008-10-22 04:55:28 +02:00
1e3a03b4c5
WIP dealing with object collections taking ownership
2008-10-21 09:04:59 +02:00
Christian Thaeter
23508f3f74
Nice, follow scons, name it liblumiera.a too
2008-10-21 06:19:52 +02:00
eaa89067bb
WIP test covering the AllocationCluster draft
2008-10-20 06:27:14 +02:00
74164e890e
finished the outline
2008-10-20 03:13:02 +02:00
Joel Holdsworth
3a41758682
Changed the "delete" variable name to "del" to satisfy the C++ compiler
2008-10-18 12:25:18 +01:00
1b6df94aab
documentation (drawing)
2008-10-18 04:15:07 +02:00
747d793121
draft framework for handling the memory allocation of render nodes
2008-10-18 04:15:06 +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
Christian Thaeter
d0b6919eea
locking.h bites the dust
2008-08-10 12:19:09 +02:00
Christian Thaeter
b2b205f6db
remove unnecessary volatile (forgotten for a test)
2008-08-10 12:19:09 +02:00
Christian Thaeter
07f06d0d88
big mutex update, dropped old acquirer
...
Acquiring mutexes is now wraped in a easy to use MUTEX_SECTION macro.
This scheme will be extended for chained lock propagation soon.
Notes:
* NoBug resourcemanagement is now part of the lower layer,
RESOURCE_ENTER/RESOUCE_LEAVE are maintained automatically
* one must still call RESOURCE_ANNOUNCE/RESOURCE_FORGET, because we want
to maintain high level information about resources.
* MUTEX_SECTIONS must not be left with any kind of jump
2008-08-10 12:19:09 +02:00