Commit graph

1380 commits

Author SHA1 Message Date
ac9e9a99df change the way the Digxel mutator is invoked
this refactoring prepares a change to address
the problems with negative extended SMPTE Timecode
2011-01-22 14:04:43 +01:00
14f233f83b WIP: some more test coverage ... unveiling yet more bugs 2011-01-22 02:35:58 +01:00
9d75739089 SMPTE Timecode (without drop frame) unit test pass 2011-01-21 20:24:41 +01:00
1a07cc9bb2 SMPTE Timecode: first round of debugging and testing 2011-01-21 16:22:01 +01:00
0493caac1d first complete implementation of SMPTE timecode
first integration of the various components
developed thus far; design still needs some
improvements, esp. regarding the effectiveFramerate
Note NTSC-drop-frame not yet supported...
2011-01-21 11:42:29 +01:00
f930703e86 WIP draft cascading breakdown of time into timecode components
TODO not entirely correct... and how to access the framerate?
2011-01-20 22:17:25 +01:00
c55260d4e4 generalise to long and int; improve test coverage 2011-01-20 21:30:48 +01:00
05383ea44a crafting a integer scale wrapping util, for timecode conversions 2011-01-20 13:21:14 +01:00
e1c025778b Digxel: ensure the mutator functor is also called on increment 2011-01-19 11:47:14 +01:00
5418902442 remove superfluous default parameters from Tuple constructor function 2011-01-19 11:32:27 +01:00
9df0df6145 Merge Stefan's work on timeconversion and SMPTE drop-frame 2011-01-19 11:32:03 +01:00
Stefan Kangas
551ec8f011 Remove preconditions requiring correct formatting of input times in time lib.
For example, one could not specify minutes > 59 nor milliseconds > 999.  Other
parts of the code however relied on the fact that one could give arbitrary times
in all fields (hours, milliseconds and minutes).
2011-01-19 11:10:39 +01:00
Stefan Kangas
6a44134833 Add support for NTSC drop-frame timecode. 2011-01-19 11:10:39 +01:00
Stefan Kangas
94f8379aa2 Improved frame counting capabilities for time lib. Unit tests. 2011-01-19 11:10:39 +01:00
Stefan Kangas
d2702e8254 Add frame counting capabilities to time conversion lib. 2011-01-19 11:10:39 +01:00
95a1687a5b draft how a SMPTE-Timecode element could be implemented
passes Compiler, but thats about all...
2011-01-18 05:01:25 +01:00
ce420a1570 special digxel to represent the sign 2011-01-18 04:59:40 +01:00
38844b9050 get simple quantisation/timecode integration to run
passing the basic tests now;
still missing: implementation of specific timecodes,
e.g. SMPTE, HMS,....
2011-01-17 07:25:22 +01:00
02653621f6 adapt the TimeGrid meta asset, so it can be published as Quantiser 2011-01-17 06:38:10 +01:00
484c771d2a establish hidden advice link to the session 2011-01-16 23:58:42 +01:00
71a80d3df6 integrate check for supported formats into Quantiser 2011-01-16 22:19:48 +01:00
92c4516cae implement this format-support descriptor 2011-01-16 19:50:42 +01:00
2c90335b1d WIP idea how to represent support for some timecode formats
concrete quantiser instances need a way to state
support for just some timecode formats -- yet I dont
want to push vectors aroud all over the place
2011-01-16 15:41:34 +01:00
ee0dcf3ba0 introduce generic grid API to subsume quantiser and grid asset 2011-01-15 03:49:35 +01:00
bdc1800470 add support for offset linear combinations 2011-01-15 01:45:55 +01:00
eb89547265 get rid of the QuantiserRef
this is going to become soooo complicated
better just bite the bullet and use a shared_ptr
2011-01-15 00:52:02 +01:00
Stefan Kangas
944406f4a3 Remove redundant '*' in many doxygen style comments 2011-01-14 16:57:34 +01:00
457d4fb7c4 define or stub to get it to compile; add function time-from gridnr 2011-01-14 05:33:50 +01:00
a1f2a60427 WIP design draft regarding the interplay of quantisation and timecode 2011-01-13 23:56:52 +01:00
debe032f49 basic quantisation now working and covered by unit test 2011-01-13 03:36:12 +01:00
e2cab1f512 some more smoothing of rough edges 2011-01-13 03:36:12 +01:00
c7a887a528 Quantiser basic unit test pass, including corner case
ufff... finally
2011-01-13 03:36:12 +01:00
edc2598f27 cover additional time handling convenience shortcuts 2011-01-13 03:36:12 +01:00
af9c799fc8 Fix time quantisation to circumvent the precision problem
required to re-arrange several functions in order
to use the new util::floordiv and to get all relevant
calculations into time.h
2011-01-13 03:36:12 +01:00
237d287021 change time.h into a multilingual header 2011-01-13 03:36:12 +01:00
71aacc7698 implement an Integer-floor function for time quantisation
Contrary to the built-in division operator, this
function always truncates towards the next smaller
integer (also for negative numbers)
2011-01-13 03:36:11 +01:00
52eb4c4709 set an explicit artificial limit on the allowed time range
this is the first building block in an attempt to
protrect against time wraparound. The intention is
not to be airtight, but practically effective.

A really airtight solution would require writing
our own SafeInt class
2011-01-13 03:36:11 +01:00
3cf9974211 provide unary minus to flip a TimeVar around origin 2011-01-13 03:36:11 +01:00
d30515c37e analysis of range limit problems in quantisation 2011-01-13 03:36:11 +01:00
48b3f39c49 improve and cover Time convenience handling shortcuts 2011-01-13 03:36:11 +01:00
b66b778c42 implement and test simple demo quantiser 2011-01-13 03:36:11 +01:00
dede87d384 implement basic quantisation operation for timehandling library 2011-01-13 03:36:11 +01:00
84c73c645d draft unit-test to cover basic quantiser behaviour 2011-01-13 03:36:10 +01:00
c85f7e0715 Add more special formatters and Digxel testcases
The Digxel implementation draft can be considered complete now
2011-01-13 03:36:10 +01:00
8e90b3d5dc Digxel unit test pass 2011-01-13 03:36:10 +01:00
159d3928d8 Timecode stub implementation...
now passes Compiler and Linker again
2011-01-13 03:36:10 +01:00
031f61f31d WIP prototypical Digxel implementation complete 2011-01-13 03:36:10 +01:00
e66bed65e4 WIP stubs for timecode string representation 2011-01-13 03:36:10 +01:00
2edaae5c5b simplify util::isnil implementation
doh!
2011-01-13 03:36:10 +01:00
25d7af449e WIP adapt / rewrite Digxel implementation 2011-01-13 03:36:10 +01:00
e7f5ce9e33 WIP rework timecode format hierarchy
second try: eliminate base class,
work with concrete formats allways...
2011-01-13 03:36:09 +01:00
336264a6be WIP first implementation draft for Digxel -- problematic
This draft highlights problems with poliferation of
generated virtual methods (code bloat). Also it's
unnecessarily complex and especially the automatic
conversion to double *and* int creates a whole
shitload of problems....
2011-01-13 03:36:09 +01:00
b19fd1e634 WIP rework and adjust "Digxel" draft 2011-01-13 03:36:09 +01:00
6638120ec2 WIP test-driven dreaming... inventing a "Digxel" entity 2011-01-13 03:36:09 +01:00
607c8a2338 WIP enough stubbing to get it through the Compiler...
...but NOT yet the linker
2011-01-13 03:36:09 +01:00
62f9e84f2d reduce the prerequisites of trait.hpp
the AssignableRefWrapper is not in use anymore...
by not pulling in wrapper.hpp, we avoid <functional>
2011-01-13 03:36:09 +01:00
c40ba74bc6 WIP clarify ambiguity with fractional seconds
They are *not* intended to stand-in for gavl_time_t
Indeed, Time values should be handled as opaque
2011-01-13 03:36:09 +01:00
15214cc069 WIP start stubbing and defining time quantisation and timecode entities 2011-01-13 03:36:08 +01:00
04db5655f1 Implementation: building a simple time grid 2011-01-13 03:36:08 +01:00
3d4227d374 cover offsets, durations and timespans by unit test 2011-01-13 03:36:07 +01:00
f7588c36c4 basic time value entites defined roughly complete 2011-01-13 03:36:07 +01:00
643859f6b8 add a mutable time value with full arithmetics 2010-12-28 02:27:42 +01:00
0c45fc47f3 defining the first elementary operations for time values 2010-12-28 02:27:41 +01:00
9d91869098 move Variant to lib namespace, a bit of cleanup and clarifying the code 2010-12-28 02:27:41 +01:00
09d400d5bc put asside the existing "lumitime" to build a new hierarchy from scratch
existing code will still use lumitime.hpp for now
while we're about to reorganise time handling altogether
2010-12-28 02:27:41 +01:00
784b094fa7 fix compilation problems with draft code 2010-12-26 23:00:34 +01:00
f18226e8ac WIP start drafting simple time values, offsets and intervals
questions: what is mutable / immutable?
what is the distinction between TimeValue and Time ?
what conversions make sense?
what mutations / operators to support?
2010-12-22 04:49:57 +01:00
000486e126 WIP create empty unit tests for time quantisation/handling 2010-12-22 04:09:27 +01:00
cce72e611e WIP: new namespace and compliation units for time quantisation
namespace lib::time
lumitime.cpp will define the basic time wrapper
quantiser.cpp the grid alitnment and formatting wrapper

header for
- timevalues / ranges
- quantised time valuse
- timecode valuse

"lumitime.hpp" will contain the interface facilities
2010-12-21 02:05:13 +01:00
7fc462209e some naming cleanup and namespace indentation fixes 2010-12-18 00:58:19 +01:00
3f1b7651e9 GPL header whitespace 2010-12-17 23:28:49 +01:00
4410830f72 Merge Fixture datastructure and Testsuite work 2010-12-17 22:51:27 +01:00
7043db90ee introduce an explicit StreamType::ID 2010-12-10 17:39:39 +01:00
Stefan Kangas
41e6750163 Move time conversion logic from lumitime.cpp to time.c 2010-12-06 16:18:54 +01:00
145ad6c3a5 more (trivial) cleanup and renaming 2010-12-05 02:46:37 +01:00
5ba7468f41 OutputMapping implementation complete, pending unit test 2010-11-28 01:43:55 +01:00
c3d29d1eb3 OutputMapping: interface refactorings to yield a cleaner structure 2010-11-27 03:59:07 +01:00
645ddd284c WIP Solution draft for defining an output mapping type 2010-11-25 04:52:49 +01:00
9473fd3d67 OutputDesignation implementation draft 2010-11-19 05:01:43 +01:00
250bfeaee5 use the new OptionalRef to protect session shutdown
The original version was sensible to static initialisation order,
which shold be resolved now, because of OptionalLink's dtor
explicitly disabling any further access.
2010-11-06 22:56:17 +01:00
bd361523d1 better use functor-style access instead of implicit conversion 2010-11-06 22:49:32 +01:00
f597e7c8b4 optional object link implemented and working 2010-11-06 22:32:08 +01:00
07f7837a7b draft behaviour of a optional/switchable object link 2010-11-06 21:23:35 +01:00
4cef8474ed fake-configrules: remove magic "make" token (closes #707)
use backdoor function on the StructFactory instead
Mark such backdoor-functions with Ticket #710
2010-11-02 04:09:06 +01:00
08d90be1b6 get the sesison element-tracker integration test to pass 2010-10-29 05:24:19 +02:00
d1dd3e2677 saveguard against deregistering from an alredy destroyed session 2010-10-20 04:42:22 +02:00
3e9c337ac0 review and verify lib::ElementTracker 2010-10-18 05:33:46 +02:00
b15a1c2d3c changed wording of the error message 2010-10-16 02:21:20 +02:00
99f29f9795 now able to build a IterSource based opaque const Scope iterator
for this to work, scope-path.hpp injects an explicit specialisation,
causing the RangeIter defined in ScopePath to yield const Scope
2010-10-16 02:21:18 +02:00
02d6d6a65c extract iter::TypeBinding into separate header to allow explicit specialisation 2010-10-16 02:21:18 +02:00
fdfb946d63 preparation to allow explicit type bindings for iter-adapter 2010-10-16 02:21:18 +02:00
e5de12fc7a (draft) maybe solved the problem defining a scope iterator
actually that would require to extract the IterTraits
from iter-adapter.hpp to allow for such dedicate specialisations
2010-10-16 02:21:18 +02:00
2c58e595c0 augment IterSource adapters by definition through classical iterator range 2010-10-16 02:21:18 +02:00
d5cdd39f52 WIP trying to code up the public query function for scope paths
problem is how to get an iterator compatible with ScopeQuery...
2010-10-16 02:21:17 +02:00
Christian Thaeter
51e5b8a90c FIX: missing stdint.h include in tmpbuf.c for SIZE_MAX 2010-07-21 06:13:07 +02:00
Christian Thaeter
c34e6d547e FIX: tmpbuf.h for lib/time 2010-07-21 05:05:33 +02:00
Christian Thaeter
0158c1b88d WIP: factor tmpbuf out of safeclib
* tmpbuf got its own implementation files
 * Some optimizations on the tmpbuf implementation, handling tiny,
   small and huge allocations better.
 * tiny allocation smaller than sizeof(void*) are not aligned
 * Reduced the ring sizes to 16 (configureable in tmpbuf.h)

This is only the tmpbuf refactoring, fixes following on the next
commits.
2010-07-21 05:05:26 +02:00
Christian Thaeter
bc989dab7a put 'VCALL' into its own lib header
There will be some use for it at other places too (config system)
2010-07-21 04:50:04 +02:00
788e5646af Testsuite: throw if Test-ID is unknown (Ticket #649) 2010-07-17 01:07:23 +02:00
Christian Thaeter
99d5d3765f FIX: Add remaining tests to the Makefiles, sort Makefiles 2010-07-16 21:44:44 +02:00
e16ca49894 Merge in new (experimental) 'advice' concept 2010-07-14 04:33:42 +02:00
fc3e43bb19 re-reading my design and plannings from March, identiyfying next steps to take 2010-06-13 03:34:12 +02:00
68aefe5074 implement a simple singleton holder for NIL/default objects 2010-06-12 19:45:01 +02:00
2debae62e0 add locking to protect the advice index table mutations
clearly, this locking is quite global, and this couldb be
improved by using a more elaborate index structure
2010-06-12 19:32:25 +02:00
e020601ebd refactor AdviceSystem access 2010-06-12 19:06:56 +02:00
7b8f02ef20 change index/solution interface into protected
not to be used by client code, only by the index
2010-06-12 17:51:55 +02:00
a93d8a42e4 use killer-stash to resolve the AdviceSystem memory leak 2010-06-12 03:33:40 +02:00
cb838ba5b6 extend killer-stash to allow registration of custom deleter functions 2010-06-12 03:12:02 +02:00
59145e0f14 Refactor storing of advice to prepare for actually managing the storage 2010-06-11 04:12:11 +02:00
4fb884669b ooops... didn't invoke the dtor when releasing an Advice holer 2010-06-08 04:26:28 +02:00
eb19f59ba0 deleter memorising component passes unit test (#629) 2010-06-07 03:32:41 +02:00
9aca348870 code up implementation of this killer-stash 2010-06-07 02:14:10 +02:00
6b90767468 draft a component to manage deleter functions 2010-06-06 04:26:23 +02:00
dee4c33c55 change the index-interface from free to member functions
part of Ticket #628
2010-06-06 02:11:40 +02:00
2360f9b4c0 Advice colaboration: implemented and passes basic unit test 2010-06-05 05:09:42 +02:00
7d93dae8ea fix some simple problems (but doesn't pass tests yet)
looks like a logic error: new advice::Request got solution
2010-06-04 20:10:46 +02:00
203b955a33 add preliminary buffer memory management by heap allocation
TODO: use the lumiera pool allocator, prevent leak of any
advice data not explicitly retracted!
2010-06-04 19:33:42 +02:00
5a615ee4f8 consider advice::Index exception safety 2010-06-04 18:39:39 +02:00
7895ce5f49 solve the problem with re-binding and advice::Request 2010-06-04 17:25:33 +02:00
666d57f6ef code up the obvious part of the AdviceSystem implementation 2010-06-04 04:35:40 +02:00
d0e7f9b77d use the NullValue holder to solve the problem with default advice solutions
Implementation is simple, but the implications might be tricky
2010-06-03 04:40:38 +02:00
72c01e12c9 implement a simple singleton holder for NIL/default objects 2010-06-03 04:40:38 +02:00
91c2763fa4 WIP considering how to manage default / fallback advice 2010-06-03 04:40:38 +02:00
a9595d0a7f refactor link to the advice system into separate baseclass 2010-06-03 04:40:38 +02:00
74e12dd17a factor advice holding buffer into separate Class 2010-06-03 04:40:37 +02:00
d5ebe14d73 add (protected) calls to the AdviceSystem 2010-06-03 04:40:37 +02:00
69af735070 reconsider advice implementation. Investigate some tricky implementation decisions 2010-06-03 04:40:37 +02:00
7dcdff3287 advice-basics: stubbed and fixed to pass compiler 2010-06-03 04:40:37 +02:00
83b5c8c2c2 WIP code up external advice API 2010-06-03 04:40:37 +02:00
c9437b3bff binding index unit test pass 2010-06-03 04:40:37 +02:00
0c123e4af3 Bugfix 2010-06-03 04:40:36 +02:00
ca93b11010 provide self-verification. Advice index impl. now complete
but not yet tested...
2010-06-03 04:40:36 +02:00
d00d42b58c code up the core solution finding logic 2010-06-03 04:40:36 +02:00
e0cfa6798f implement the diagnostic operations 2010-06-03 04:40:36 +02:00
f1be9886fa fix problem with comparisions / containment check 2010-06-03 04:40:36 +02:00
d4433fb3f3 WIP code high-level index functionality 2010-06-03 04:40:36 +02:00
bf02d6d03f adapter interface for the test-entry 2010-06-03 04:40:36 +02:00
3c35e2a95f WIP code up index functionality... 2010-06-03 04:40:36 +02:00
530940254e stubbed advice binding index implementation 2010-06-03 04:40:36 +02:00
c8ac2b0447 planning the advice binding index implementation 2010-06-03 04:40:35 +02:00
0514c24487 Advice binding pattern finished, passing unit test
now detecting a lot of syntax errors
2010-06-03 04:40:35 +02:00
1e28c7f1ab get the advice binding unit test to pass thus far 2010-06-03 04:40:35 +02:00
85f8035f92 Implement parsing of Advice binding pattern spec 2010-06-03 04:40:35 +02:00
f2269b7e78 Implement Advice binding pattern 2010-06-03 04:40:35 +02:00
f27024172f Implementation skeleton for advice binding match 2010-06-03 04:40:34 +02:00
e3c963378f outline some implementation details regarding the Bindings to match 2010-06-03 04:40:34 +02:00
3e2b78b670 fill in the basic definitions to make the draft test compile 2010-06-03 04:40:34 +02:00
abe8d876dd Start planning the Advice implementation: skeleton of unit tests 2010-06-03 04:40:34 +02:00
0f6c2e84d2 test-driven brainstorming: TypedID usage 2010-06-03 04:37:22 +02:00
a78845507a cleanup 2010-06-03 04:37:20 +02:00
e61eb01942 experimental fix for #307 2010-06-03 04:37:20 +02:00
82d8d26308 extend the map iterator adapter to work on STL ranges 2010-06-03 04:37:20 +02:00
939270063e helper: take snapshot of a given Lumiera or STL iterator 2010-06-03 04:37:20 +02:00
81f87ba852 similar low-level iterator adapter for multimap value groups 2010-06-03 04:37:20 +02:00
c5e4725dcb implement another wrapper to filter duplicates 2010-06-03 04:37:19 +02:00
a87889cbad implement convenience helper to pick key/value from a map iterator 2010-06-03 04:37:19 +02:00
73a2aea50c draft a low-level adapter to get all keys/vals of a stl::map
intention is just to use a thin wrapper, without
abstracting the implementation type (as IterSource does)
2010-06-03 04:37:19 +02:00
57a9b1a270 Iterator adapter to ennumerate all values to a multimap key (closes #492) 2010-06-03 04:37:19 +02:00
c9bf26d8c4 EntryID finished and passes unit test 2010-06-03 04:37:19 +02:00
2131488afb test-driven brainstorming: simplified asset-like ID 2010-06-03 04:37:17 +02:00
c93dfc4f29 partially refactor into library 2010-06-03 04:37:16 +02:00
479bbbb6c7 clarify how deregistration works 2010-06-03 04:37:16 +02:00
dd3d22f950 implement registry for element-tracking. passes unit test 2010-06-03 04:37:16 +02:00
9ec865c3ab Stubbing and definitions to get element-tracking to compile 2010-06-03 04:37:16 +02:00
55df5205a4 draft a mixin for adding element-tracking functionality 2010-06-03 04:37:15 +02:00
bfc18dfb94 consider using RefArray for the Session API 2010-06-03 04:37:14 +02:00
Odin Hørthe Omdal
792a595041 Fix for old GAVL versions (missing uint64_t) 2010-05-15 02:20:07 +02:00
Christian Thaeter
9d99300841 FIX: #619, New Nobug required! version 201005.1
add the 'extra' argument to mpool dumps.
Solves Linking problems on some distros.
2010-05-12 00:46:39 +02:00
5b9aa5deb2 landing the new threadpool implementation 2010-02-15 00:48:52 +01:00
1c63a02e23 augment and round up the C++ thread wrapper 2010-02-14 23:39:15 +01:00
90d311dc1d Error integration: error::Flag as subclass of State. Wrapped throw 2010-02-13 20:56:41 +01:00
dc991ca563 valgrind suppression: add some more cases to be filtered 2010-02-13 06:00:38 +01:00
b41bd20de4 push accessing the DiagnosticContext down one layer
accessing the DiagnosticContext now inline when
providing the paramters for calling the C-functions.
No change in functionality, but saves us a lot of
syntactic noise.
2010-02-13 05:33:08 +01:00
3466793976 repackage as a more general facility (DiagnosticContext)
implementation unaltered (just managing the NoBug handle)
2010-02-13 04:54:59 +01:00
4dfd7266b9 draft solution to factor out management of the resource handle
based on the idea of a diagnostic context stack
2010-02-13 04:03:27 +01:00
763f86fe0e back out changes I do not want in lib/sync.hpp
especially, I do not want to pass a resource handle
through all locking function APIs; the memory
management of the resource tracker should better
be kept separate and not mixed with the monitor.

Also, I am rather reluctand regarding any extended
functionality for the monitor, like timed locks
or trylocks or read/write monitors. I think, the
monitor pattern is only beneficial when it is kept
fairly simple, advanced thread programming should
be pushed out into lib functions in the backend.
2010-02-12 05:22:17 +01:00
Christian Thaeter
80e2db4800 hook the resourcecollector into safeclib on backend startup 2010-02-08 17:47:26 +01:00
Christian Thaeter
d103346482 hook mpool into the resourcecollector and using safeclib allocations 2010-02-08 14:28:54 +01:00
Christian Thaeter
9feb01e4fe add hooks for malloc/free to mpool, add (no-op) purge function
We will need this to hook the resourcecollector in
2010-02-07 20:53:51 +01:00
Christian Thaeter
b60d8aa907 FIX: error.c memory leak when destroying threads
the error context is dynamically allocated and must be freed, forgotten
this as errors originated from static strings initially.
2010-02-07 20:25:09 +01:00
Christian Thaeter
d350a250fa Move the resourcecollector to the backend, closes #521 2010-02-05 08:58:19 +01:00
Christian Thaeter
01839d4e48 update for nobug-201002.1 2010-02-03 10:38:12 +01:00
Christian Thaeter
014c83ff5a PTHREAD_ONCE_INIT can be a macro, fast init trick doesn't work then 2010-01-30 08:40:38 +01:00
Christian Thaeter
87465ff69b little test-helper cosmetics 2010-01-30 07:20:09 +01:00
9a6f9b2ba5 PlacementIndex: possibly retaining type information on insert 2010-01-23 15:50:46 +01:00
Christian Thaeter
9fc68c9d32 Merge remote branch 'public/nobug201001.2' into backend_devel
* public/nobug201001.2:
  integrating nobug context passing
  updates for nobug 201001.2

Conflicts:
	configure.ac
	src/lib/condition.h
	src/lib/reccondition.h
	tests/backend/test-threads.c
2010-01-23 06:56:39 +01:00
Christian Thaeter
c15f2247d7 integrating nobug context passing
Somewhat more intrusive than the previous patch,
adds contexts everywhere except for sync.hpp where only default ctors
are used.
2010-01-23 01:40:27 +01:00
Christian Thaeter
8254b3fbda updates for nobug 201001.2
dumping got a new api, surprisingly everything else works...
2010-01-22 23:21:48 +01:00
Christian Thaeter
e2c5aceec4 FIX: off by one error in time normalization
"The value of the nanoseconds field must be in the range 0 to 999999999."
2010-01-18 18:45:02 +01:00
Christian Thaeter
87918c657c check wait condition before loop body 2010-01-18 14:23:23 +01:00
Christian Thaeter
b8336879f7 autoconf/automake cleanup
* refactor configure.ac to have distinct sections to configure each
   subsystem.
 * Dedicated LUMIERA_<subsys>_CFLAGS|_LIBS vars
 * Fix Makefile.am's to use them, remove unnecessary dependencies

Stray dependencies to be refacored:
 * tests/Makefile.am has dependencies on proc and backend
  - should be moved to tests/library/Makefile.am etc anyways
 * tests/lib/Makefile.am has dependency on GUI left


 * src/tool/Makefile.am links GUI stuff generally, thats ok

 * one threading test is broken, we don't care, merging new threadpool in
   next.
2010-01-17 15:48:30 +01:00
Christian Thaeter
aea546554b reworked sync.hpp using libraries locking functions 2010-01-14 21:15:13 +01:00
Christian Thaeter
dbb3b2e2e7 FIX: uhm .. forgotten to fix some stuff 2010-01-14 13:22:19 +01:00
Christian Thaeter
3e8d8590e9 C lumiera_error to C++ exception bridge
* error::Runtime exception class which transports the C error code
 * lumiera::throwOnError() which throws when there is a pending
   lumiera error, otherwise it does nothing
2010-01-13 20:30:10 +01:00
Christian Thaeter
c29ea07138 lumiera_error_expect() lets one easily handle expected errors
This is a convenience function which clears the error state when some
expected error occurred and lets one branch on this.
2010-01-13 17:41:26 +01:00
Christian Thaeter
f0483b1d8b FIX: few glitches using nobug flags 2010-01-13 14:22:08 +01:00
Christian Thaeter
a287b13481 remove the LUMIERA_RESTRICT macro
all functions using restrict are inline and can be properly optimized by
the compiler, no restrcit necessary
2010-01-13 13:00:13 +01:00
Christian Thaeter
f78ec3b0ef undo -Werror which slipped into the CXXFLAGS for the lib 2010-01-13 09:23:19 +01:00
Christian Thaeter
9c9161ef65 reccondition refactoring 2010-01-13 00:19:20 +01:00
Christian Thaeter
f1cf5aee60 condition var refactoring 2010-01-13 00:19:00 +01:00
Christian Thaeter
6816766182 rwlock refactoring 2010-01-13 00:18:48 +01:00
Christian Thaeter
059f086b4f recmutex refactoring 2010-01-13 00:18:32 +01:00
Christian Thaeter
e7e9394f9b refactor locking macros to functions, simpler macros 2010-01-13 00:16:43 +01:00
Christian Thaeter
b232a4f9f0 errors for locking
* add a 'unknown' error to the error system as fallback
 * lockerror.c|h define all errors which can happen due locking
 * lumiera_lockerror_set() translates posix errors to lumiera errors
 * remove stale errors from sectionlock.h
2010-01-13 00:10:33 +01:00
Christian Thaeter
7b014012e8 WIP: refactor locks once again, new nobug, little simpler 2010-01-10 10:36:24 +01:00
Christian Thaeter
7fea4f79be Sectionlock needs a 'user' handle with new nobug 2010-01-10 10:36:24 +01:00
Christian Thaeter
799fe34980 Fix: race conditions with the nobug resource tracker
* requires new nobug version
* 40components.test "Type-based contexts" TypedCounter_test hangs
  for unknown reason, temporary disabled
2010-01-10 10:36:24 +01:00
8c7894943c add equality comparison to the HashIndexed (mixin base) 2010-01-08 03:56:21 +01:00
5cc3af3009 document the changed/new behaviour by unit test 2010-01-07 04:40:10 +01:00
3525b77126 somewhat tricky modification of for-each, allowing inline calls 2010-01-07 03:10:02 +01:00
665bd19f8a use this to get the distinct keys of a multimap 2010-01-06 06:53:29 +01:00
ff2113e61f implement an duplicate-value filtering iterator 2010-01-06 06:19:30 +01:00
0081b36793 Itertools: add caching to FilterIter
filter predicate is now evaluated at most once
2010-01-06 06:16:30 +01:00
2ad85dbb07 bugfix and test coverage 2010-01-06 04:14:16 +01:00
2a5b080dd7 implement IterSource adapter for STL map and hashmap 2010-01-06 03:38:02 +01:00
030a7d3813 basic IterSource implementation passes unit test (#490) 2010-01-05 05:21:13 +01:00
16962ae714 IterSource implementation draft 2010-01-05 04:10:23 +01:00
ea5668c5e3 WIP define expected usage of IterSouce 2010-01-05 02:53:20 +01:00
330eb2c243 extended for-each looping helpers. Closes #479 2010-01-04 14:48:00 +01:00
cd3a77649e use the (new) iterable classification to mask for_each overloads 2010-01-04 11:19:01 +01:00
7d913dc558 start moving some metaprogramming helpers to lib::meta 2010-01-04 10:08:14 +01:00
64cedb6345 implemented compile-time detection of STL or Lumiera iterator
closes #482
2010-01-03 05:43:33 +01:00
e838d46336 Fix: operator++ needs to return the actual target type
see Ticket #486
2010-01-03 05:42:35 +01:00
e27d03c501 simple duck detecor components pass unit test 2010-01-02 09:07:10 +01:00
8777aa585a duck detector (lib helpers): initial implementation draft 2010-01-02 08:09:40 +01:00
e94927d5a3 standard case (using STL container) solved, incl. binding arguments and member functions 2009-12-31 03:25:25 +01:00
2b46574da3 move the for_each helpers into a separate header
(because util.hpp is used pervasively, and I don't want
<tr1/functional> in such a widely used header...
2009-12-29 04:39:27 +01:00
7b7e9096a3 Hook up scope contents iterator in PlacementIndex (closes #343) 2009-12-27 06:25:34 +01:00
26c506c0d6 rewrite TransformIter, allowing to return references (closes #475) 2009-12-27 04:03:00 +01:00
534ae16605 implemented this FunctionResult template, needed for Ticket #175 2009-12-23 04:46:09 +01:00
97faf3dcb8 ItemWrapper unit test pass. Closes #476 2009-12-21 07:52:58 +01:00
e5ab9d73eb add specialisation to deal with wrapping a reference... 2009-12-21 06:19:56 +01:00
6a7f325ecf static assert to protect against misguided equality comparison 2009-12-21 05:45:02 +01:00
3db676fa32 base implementation fo the ItemWrapper 2009-12-21 05:44:29 +01:00
83eb6976cd draft an universal val/ref wrapper, needed by TransformIter.
Seemingly I've hit a nasty problem here, because PlacementIndex
should return an Placement&, but this is being fetched
after-the fact from within the iterator.
2009-12-20 04:33:24 +01:00
4773305853 Fix itertools: allow TransformIter to return an reference 2009-12-19 03:55:02 +01:00
b74a505c44 change implementation of "bottom" PlacementRef to 0-LUID 2009-12-13 05:48:05 +01:00
451253ae8a utility to append elements from an Lumiera Forward Iterator until exhaustion 2009-11-22 01:14:27 +01:00
b7987cf3ce define iteration on ScopePath as reverse iteration on the contained Scopes 2009-11-21 04:48:29 +01:00
09c0cacee2 add comparison to c-string for Literal 2009-11-15 16:27:56 +01:00
981ea94708 finished the PlacementIndex API. 2009-11-13 04:52:48 +01:00
d0c905b5c9 add an transforming iterator to the itertools 2009-11-13 03:26:20 +01:00
a86517bd4f extend the protocol of the itertools core, abstracting the increment 2009-11-13 01:02:31 +01:00
043d4f42fa working example implementation of the access mechanism to session internal APIs 2009-11-09 02:08:37 +01:00
6dbbc54247 document better how SingletonRef works 2009-11-07 17:37:37 +01:00
8c7727704c Finish ContentQuery definition; relying on PlacementIndex 2009-11-02 07:37:15 +01:00
1c72cbb599 Iterator tools: (1) a filtering iterator 2009-11-02 06:06:43 +01:00
2620c38ed9 documentation, close some tickets... 2009-11-01 02:02:21 +01:00
f35b422316 SubID: add (preliminary) hash impl; unit test pass 2009-10-30 06:50:26 +01:00
df562a186f oops... fix a bug in Literal's hash function 2009-10-30 05:15:26 +01:00
006392f6ea yet another random test helper 2009-10-30 03:53:51 +01:00
ceb4d4b5ea reworked MultiFact passes unit test. Closes Ticket #376 2009-10-30 00:32:26 +01:00
1dccd37c70 re-order MultiFact implementation to get it to compile 2009-10-29 22:00:17 +01:00
54aa7b4afe WIP fixes and stubbing to get at compiling the MultiFact 2009-10-29 04:32:00 +01:00
3145064a21 change IterAdapter iteration control API to use free functions 2009-10-29 04:31:16 +01:00
0cef067c11 WIP adapt unit test and the argument-accepting MultiFact specialisation 2009-10-28 04:45:17 +01:00
2530e8c1a1 WIP try to create an extension point to MultiFact, allowing to accept argument(s)
sketch of an idea how to add an extension possibility
without messing up the basic MultiFact template
2009-10-27 05:13:38 +01:00
5d9671cb2c WIP place a ref-count into the result iterator 2009-10-25 16:18:53 +01:00
c3441ac26a WIP Query<TY> implementation draft... 2009-10-24 00:23:22 +02:00
2e62a3b01b WIP continue design how to discover session contents 2009-10-17 21:31:03 +02:00
b03577ea3f document the stipulations lib::IterAdapter puts on his parameter types 2009-10-17 15:40:37 +02:00
7812792f75 unit test showing current malfunction of UNDO state due to cloning 2009-10-11 05:57:45 +02:00
c8e049cdea Command system basic unit test pass 2009-10-11 05:57:44 +02:00
07de2a767b implement equality comparison on CommandImpl level 2009-10-11 05:57:44 +02:00
fea85acd0e equality comparisons on function erasure objects covered
...well, as good as possible, as boost refuses to implement this feature
2009-10-11 05:57:43 +02:00
231278bafe implemented comparison on function erasure, pending test 2009-10-11 05:57:43 +02:00
5068016805 WIP draft how the equality comparison on a function erasure could work 2009-10-11 05:57:43 +02:00
abd23ae399 TypedAllocationManager (frontend) now in lib:: -- unit test pass 2009-10-11 05:57:43 +02:00
7bac890790 Test suite runner: pass exit code = 5 when having caught an exception 2009-10-11 05:57:42 +02:00
3835399c5f Testsuite: catch exceptions at the level of invoking individual tests 2009-10-11 05:57:42 +02:00
c3d767b444 try out a recursive approach for the extensible ID
more of a general feasability study... to be continued later
2009-10-11 05:57:42 +02:00
455ee34344 start brainstorming on #279 (extensible ID) 2009-10-11 05:57:42 +02:00
7e4a984ed4 Finish MultiFact for now; use it to set up a table of HandlingPatterns 2009-10-11 05:57:41 +02:00
b7204e05ed removed all the magic and made it simply instance based 2009-10-11 05:57:41 +02:00
bc6f8eebda basically working draft; convoluted and with a lot of static magic 2009-10-11 05:57:41 +02:00
5910f21383 first draft impl regarding automatic installation of a singleton facotry into MultiFact 2009-10-11 05:57:41 +02:00
8ee76b1bfd configurable factory? test-driven brainstorming 2009-10-11 05:57:41 +02:00
8c21f21acc namespace cleanup: bring Singleton and Factory into lib:: 2009-10-11 05:57:41 +02:00
777e80dd64 use BoolCheckable instead of explicit operator bool() 2009-10-11 05:57:40 +02:00
f6397ef11c implemented TypedCounter and TypedContext.
Test basically pass, but shows an interesting
deadlock from time to time
2009-10-11 05:57:39 +02:00
373f9a5724 fix Ticket #272 (synchronisation from const methods) 2009-10-11 05:57:39 +02:00
517fb8b200 multithreaded torture test for the (planned) TypedCounter 2009-10-11 05:57:39 +02:00
83cd7fd830 Extract the type-based counting into a separate facility 2009-10-11 05:57:39 +02:00
6a77bebb6a fix type for search in map 2009-10-11 05:57:39 +02:00
7fccecacce WIP using the reverse index to find out the Command-ID
this includes using a Command* as key within a std::map
2009-10-11 05:57:39 +02:00
109cc4701c unit test to verify building a hashtable with Symbol keys 2009-10-11 05:57:38 +02:00
18c357eb4a start using Symbol datatype instead of a disguised char* 2009-10-11 05:57:38 +02:00
f278d4521c WIP: to make the ID type usable as hashtable key 2009-10-11 05:51:31 +02:00
4517766517 integrating branches
Merge commit '7f09f57cbde4932269c390da70c42a622cd1275f'
2009-10-11 05:50:27 +02:00
3b1e2f00a8 rewrite simulated "subsystem". Hopefully closes Ticket #253
- clarify the meaning of run(true), run(fail), run(throw)
- do a real handshake between start() and the subsystem thread
- avoid accessing the SubsystenRunner after signalling termination
2009-09-29 02:38:07 +02:00
f21366833d Merge latest work on the builder interface + NoBug adaptations
Merge commit 'bb8eb4055020c609245fe35a369c70e2acb1daf6' into session
2009-09-07 01:25:28 +02:00
6fc7aedd95 Merge NoBug-release related additions
Merge branch 'master' into builder
2009-09-05 19:16:13 +02:00
1969adaf02 Integration of Builder/NodeFactory implementation draft. Stubbed to pass compiler 2009-09-05 18:15:58 +02:00
Christian Thaeter
f73cc47da6 Fix all things which broke compilation with NoBug 200909.1 2009-09-04 08:53:03 +02:00
Christian Thaeter
d50d9a30f2 FIX: compiler warnings in mpool.c
Some gcc versions warn about type aliasing errors here, by using char*
this is fixed (and actually the right type here).
2009-09-04 08:02:16 +02:00
83067aa318 WIP: ...to do so, some considerations regarding the entrance point.. 2009-08-31 12:16:47 +02:00
209765def5 WIP: correct indentation, add some comments... 2009-08-30 14:11:14 +02:00
4214284d35 accessing the frameID from within the pull() call 2009-08-29 12:26:47 +02:00
06000769e2 re-read the code concerning the pull()-call, fix obvious mismatches, comment, plan... 2009-08-29 12:23:41 +02:00
ba05a6b135 test coverage for the more exotic RefArray impls 2009-08-29 12:23:41 +02:00
8c6b6c5192 WIP further RefArray implementations 2009-08-29 12:23:40 +02:00
1c388287c9 simple vector wrapping implementation of the RefArray interface 2009-08-29 12:23:40 +02:00
1b4aa98cdf use the new stream type definitions to get ahead with the builder work 2009-08-29 12:19:26 +02:00
45c04b4463 re-visit the command impl allocation; add a quick-n-dirty implementation based on heap allocation 2009-08-29 02:16:28 +02:00
1533e5bd0d fix a problem with formatting arbitrary types; reneable the broken tests 2009-08-28 20:33:20 +02:00
08d4be3149 Fixes for building on 32bit system 2009-08-21 02:42:11 +02:00
4acb42d272 autotools fixes... 2009-08-19 15:36:03 +02:00
9f40e4af9c implemented definition and access of handling patterns 2009-08-09 21:55:47 +02:00
ba2d4dc761 a handle may also be activated by sharing ownership with a manager 2009-08-09 03:38:44 +02:00
59f42c28ef get type-id string 2009-08-03 18:15:08 +02:00
853aff1228 fixed and stubbed until it passes compiler again 2009-08-02 20:57:04 +02:00
4236d0649a WIP: implement the basic operation of execution pattern 2009-08-02 18:00:03 +02:00
f2126c0764 WIP partially get new proc-layer command impl through the compiler 2009-08-01 23:57:12 +02:00
8971d667cf WIP more implementation... 2009-08-01 17:14:27 +02:00
eaa4adddde WIP more implementation drafting... 2009-07-29 16:55:15 +02:00
1db718c2b3 WIP more stubbing... 2009-07-25 19:21:50 +02:00
299c316ad4 Fix: containment check should take const args 2009-07-25 19:20:21 +02:00
76b6f5d374 ooops, forgot some copy-n-pastes 2009-07-25 17:51:59 +02:00
c85d1d3cd8 ArgumentHolder finished, low-level integration test pass 2009-07-20 07:03:18 +02:00
33757bbac3 why the hell doesn't boost provide functor comparison operators..
(yes I know why: it can't be implemented 100% correctly)
2009-07-20 04:21:24 +02:00
e879e0c81b implemented argument and memento comparisons (doesn't pass test yet) 2009-07-19 19:13:25 +02:00
f73c938850 ArgumentHolder reworked to use InPlaceBuffer; now passes basic tests 2009-07-19 08:32:49 +02:00
7f44de24d7 collecting some formatting & diagnostics utils here... 2009-07-19 08:03:54 +02:00
5784bd2819 Fix: use boost::operator! for binding expr. to avoid infinite recursion 2009-07-19 06:24:36 +02:00
5f0c9e209e remove any use of boost::function in favour of <tr1/functional>
this resolves some long standing problems with ambiguous placeholders
closes Ticket #161
2009-07-19 05:47:36 +02:00
3ecd8047df assertion to guard buffer size limit 2009-07-19 00:41:37 +02:00
584878e0f8 yet another variation of managing an object in-place 2009-07-18 22:07:46 +02:00
3f8d82a13f Victory! bashed the iter-adapters and the ScopedPtrVect into submission, finally. 2009-07-17 20:22:48 +02:00
165cfc7fcd WIP allow some conversions, attempt to define the const_iterator properly 2009-07-17 04:13:14 +02:00
4f5fca6858 now able to implement ScopedPtrVect iteration properly 2009-07-16 19:36:01 +02:00
a0187847da reworked IterAdapter, added RangeIter for STL ranges. Should do for now 2009-07-15 07:26:49 +02:00
b2f72ef0fc IterAdapter now passes test, but is still rather uggly... 2009-07-14 06:29:04 +02:00
e2cd4aba8a fix name, add test for postfix increment 2009-07-13 01:25:24 +02:00
1a69026acb spelling fix 2009-07-13 01:16:40 +02:00
60cf9e8c9e trying to implement a simple iterator adapter working
(oops, didn't expect this to be so difficult...)
2009-07-13 01:16:30 +02:00
30db042b16 add component access to the time wrapper (quick'n dirty) 2009-07-12 22:51:04 +02:00
6ef1aca3a4 test driven brainstorming 2009-07-11 20:06:35 +02:00
892f382f0f Ticket #182 2009-07-11 19:23:20 +02:00
9aa5ba560c finish and tidy up control::Mutation, unit test pass 2009-07-10 19:04:01 +02:00
6bd1e8e179 tidy up and finish the MementoTie + unit test 2009-07-09 20:47:21 +02:00
2eb8b763d6 got the helper working (prepending a binder to an argument position) 2009-07-09 04:41:44 +02:00
c7b6165c6c WIP resolved the simple mismatches, but still... 2009-07-08 05:36:02 +02:00
c8c577c4cc WIP factored out another helper, not yet tested... 2009-07-06 05:25:33 +02:00
2462dee5ca issue resolved, tests pass, finally (whew) 2009-07-06 02:25:19 +02:00
c3b8d39507 refactoring into two distinct concepts. maybe solution? 2009-07-05 22:05:11 +02:00
e2bb2c440c use OpaqueHolder to solve the problem with the function type erasure...
...tried to use 2 policies, but doesn't work correct (and is uggly)
2009-07-05 03:38:33 +02:00
4d1f45fc43 activate the new test, some comments 2009-07-05 02:26:59 +02:00
6e3bfb08e6 OpaqueHolder implemented and passes unit test 2009-07-04 19:30:54 +02:00
077d3d176e WIP implementation draft 2009-07-04 04:35:17 +02:00
3cc49d0f68 need to factor out a special holder class to solve the problem with the empty check 2009-07-04 03:32:15 +02:00
c48f9086b7 extract util: isSameObject (bare ptr comparison) 2009-07-04 02:43:49 +02:00
98510cc943 rename and clean up some headers 2009-07-04 00:24:55 +02:00
b65658c10d try to fix a failing test (not really fixed yet) 2009-07-04 00:22:16 +02:00
d13d461a9c revamp namespace func. Finish excursion on function handling 2009-07-03 14:31:52 +02:00
b7be61c4e6 composition now working 2009-07-03 13:49:12 +02:00
31e9d59d80 WIP draft solution for next task 2009-07-01 04:47:52 +02:00
8d8f184ede check more cases, incl. function pointers 2009-07-01 03:23:26 +02:00
67e5779d24 now also able to close the last function argument 2009-07-01 02:29:11 +02:00
81d0e133c8 new additions in this area now reasonable covered (closes #142) 2009-07-01 00:43:19 +02:00
ca807205f9 cleanup/refactor simple type seq handling, fix broken Split template 2009-06-30 04:54:50 +02:00
320f984270 got partial application working, at least in the "front" case 2009-06-29 06:34:20 +02:00
6029c2c4e2 better name it Splice, and extend the capabilities a bit 2009-06-29 03:05:50 +02:00
03c9edce49 factored out yet another little helper, incl unit test 2009-06-29 02:03:30 +02:00
14f3641f9b helper: initialise a tuple from an existing sub-tuple 2009-06-28 20:41:33 +02:00
8ea07bda7a use the new bool conversion mixin to implement check for valid functor 2009-06-26 19:04:22 +02:00
b45cd49c8b separate header + unit test for this bool check mixin 2009-06-26 18:50:30 +02:00
5291f6e41a move the member pointer to the current stack frame...
hopefully the optimiser will remove it completely ;-)
2009-06-26 17:13:36 +02:00
a30461780b this way it works, but would cost additional storage.... 2009-06-26 16:38:37 +02:00
daeff6f5fd WIP: how to define the bool conversion / validity check for the function holders? 2009-06-26 05:27:54 +02:00
61f8c1814d tuple test pass 2009-06-22 06:05:32 +02:00
db9ef808a5 refactoring to solve consistency problems uncovered by the tests 2009-06-21 19:52:33 +02:00
c3768b93a1 function closure utils finished and pass test 2009-06-21 08:38:24 +02:00
231834d2e9 basic tuple creation and outline of the remainder of the test 2009-06-21 02:03:22 +02:00
ad7c326c9c got basic diagnostics for type tuples working 2009-06-20 23:18:02 +02:00
294c254f29 Fix instantiation of Tuple datastructs 2009-06-20 23:17:22 +02:00
95f0b26e38 start a type tuple unit test... 2009-06-20 18:06:07 +02:00
1620b8dcef WIP fixes to Apply<N>, but yet doesn't work... 2009-06-20 09:32:22 +02:00
a28c05877f test pass (resolves Ticket #174) 2009-06-20 06:11:09 +02:00
079030818d draft a test to sharpen the idea of the function holder (erasure) 2009-06-20 04:43:52 +02:00
a565bfef73 some header-renaming 2009-06-20 01:28:47 +02:00
006c29c625 Idea how to store an unspecified functor to be used later as Command implementation 2009-06-20 00:00:29 +02:00
f358f548d1 draft version of CmdClosure and Mutation interface now passing compiler 2009-06-19 19:11:33 +02:00
4307191369 merging latest bugfixes
Merge branch 'master' into session
2009-06-19 14:36:22 +02:00
Christian Thaeter
52ac7bdc5e FIX: bogus pointer dereference causing gcc to barf
gcc (GCC) 4.2.4 (Ubuntu 4.2.4-1ubuntu3) reported:

./src/lib/mpool.c: In function ‘bitmap_bit_get_nth’:
./src/lib/mpool.c:119: warning: dereferencing type-punned
 pointer will break strict-aliasing rules
2009-06-19 04:22:29 +02:00
fba135c746 Merge backend and testsuite improvements 2009-06-19 01:19:20 +02:00
d1b425aba9 finish and tidy the extracted headers 2009-06-17 06:55:18 +02:00
9d04f48c51 WIP: further split the headers 2009-06-16 12:07:49 +02:00
ab4b4c71e6 WIP: start extacting new headers 2009-06-16 11:39:36 +02:00
441cb6b9e2 WIP try to solve the problem of closing a function with arbitrary args 2009-06-15 03:47:05 +02:00
7741b50b91 WIP rewrote the Sub-Tuple extractor into a simplistic Tuple type 2009-06-14 19:40:35 +02:00
b937bd08ae WIP: parameter closure brainstorming 2009-06-14 05:38:35 +02:00
246529bae9 concpet draft of parameter type extraction and checking works (i.e. compiles) 2009-06-10 05:00:01 +02:00
102e96891b fixing, stubbing, and some chainsaw surgery to get half-finished code through the compiler 2009-06-09 09:05:19 +02:00
f1827ea753 WIP: test support macro for exception check 2009-06-07 03:22:08 +02:00
Christian Thaeter
64c1238445 FIX: mpool: macro for constants depending on host wordsize
This might fix http://issues.lumiera.org/ticket/136 I have no 32bit
system to validate this.
2009-06-06 16:05:34 +02:00
90dffdc9d2 some cleanup and renaming 2009-06-06 06:55:13 +02:00
b6d22bb2e0 fix: condition for signalling thread termination is optional 2009-06-05 05:04:45 +02:00
e0ff915987 adapt thread-wrapper.hpp to backend thread API change 2009-06-05 05:00:53 +02:00
Christian Thaeter
58f1fbe3a8 mpool: completion
fix tests, add some benchmarks
finished documentation, cosmetics, cleanup
2009-06-04 18:11:45 +02:00
Christian Thaeter
92271ba1c1 mpool: add an alloc_near() function which takes a explicit hint for locality 2009-06-04 18:11:44 +02:00
Christian Thaeter
0dc0d18703 mpool: ldiv() division bites the dust in favor of some bitops
before:
 1,747,160,336  PROGRAM TOTALS
after:
 1,371,806,087  PROGRAM TOTALS
2009-06-04 18:11:44 +02:00
Christian Thaeter
9ed817df97 mpool: precalculate cluster size to avoid excess recalculations
Callgrind before:
 1,963,501,246  PROGRAM TOTALS
After:
 1,747,160,336  PROGRAM TOTALS
2009-06-04 18:11:44 +02:00
Christian Thaeter
29a1a6a7a0 mpool: some pending cosmetics an trace points 2009-06-04 18:11:27 +02:00
Christian Thaeter
2a9d59ccd0 WIP: pooled allocator, initial version
* creating and allocating, freeing elements
 * live objects will be destructed when a mpool gets destroyed and a
   destructor was set up
2009-06-04 18:10:25 +02:00
Christian Thaeter
062dbfe82f Merge commit '99b5f8'
* commit '99b5f8':
  adapt the Sync template
  Add reccondition to threads, make its functionality complete
  fix some includes for new mutex/recmutex headers
  weed out reccondition bugs/typos
  New condition and reccondition implementation
  split mutex.h again into mutex.h and recmutex.h
  typo fix in mutex.h
  rename casing of RecMutex to Recmutex to be consistent
  store lumiera_rwlock in sectionlock
  store a lumiera_mutex in a sectionlock, looks cleaner
  add check to chained locking validating that the parent lock is held
  rwlock makeover, locksections etc...
  error code changed to LOCK_DESTROY
  fix: forgotten backcasts in mutex.h
  new mutex and recmutex implementation (breaks sync.hpp for now)
2009-06-03 20:20:41 +02:00
Christian Thaeter
8f2333a786 Merge commit '59de53b25a78cd330c0c6e0f637e8cf7618da4'
* commit '59de53b25a78cd330c0c6e0f637e8cf7618da4':
  llist: add an generic void* to the compare, sort and search functions
  let llist_init return the initialized node
2009-06-03 18:47:56 +02:00
99b5f8d44d adapt the Sync template 2009-06-03 18:22:11 +02:00
Christian Thaeter
7758d76c7b weed out reccondition bugs/typos 2009-06-03 18:22:10 +02:00
Christian Thaeter
d91620a60f New condition and reccondition implementation
Should be working but not thoroughly tested still, docs not complete
2009-06-03 18:22:10 +02:00
Christian Thaeter
4f29f302b2 split mutex.h again into mutex.h and recmutex.h 2009-06-03 18:22:10 +02:00
Christian Thaeter
ec62ca073b typo fix in mutex.h 2009-06-03 18:22:09 +02:00
Christian Thaeter
30a117c1d8 rename casing of RecMutex to Recmutex to be consistent 2009-06-03 18:22:09 +02:00
Christian Thaeter
93abe657c8 store lumiera_rwlock in sectionlock 2009-06-03 18:22:09 +02:00
Christian Thaeter
5b82f3355b store a lumiera_mutex in a sectionlock, looks cleaner 2009-06-03 18:22:09 +02:00
Christian Thaeter
cafcffd4b1 add check to chained locking validating that the parent lock is held 2009-06-03 18:22:08 +02:00
Christian Thaeter
5c2ac96f35 rwlock makeover, locksections etc...
The CHAINED variant is not tested, what could go wrong anyways :)
2009-06-03 18:22:08 +02:00
Christian Thaeter
ca0250c018 error code changed to LOCK_DESTROY 2009-06-03 18:22:08 +02:00
Christian Thaeter
cf664ca970 fix: forgotten backcasts in mutex.h 2009-06-03 18:22:07 +02:00
Christian Thaeter
a115759128 new mutex and recmutex implementation (breaks sync.hpp for now)
prepares that chained sections if different kinds can be mixed
makes recmutexes typesafe
improves nobug tracking
2009-06-03 18:22:07 +02:00
Christian Thaeter
59de53b25a llist: add an generic void* to the compare, sort and search functions
This allows the user to pass some extra data along, which improves the
usefulness in certain cases.
2009-06-03 18:22:01 +02:00
Christian Thaeter
85b1297b4a let llist_init return the initialized node
This makes it possible to use the init without a temporary variable:
 llist_insert_next (llist_init (foo), llist_init (bar));
2009-06-03 18:19:56 +02:00
Anton Yakovlev
87e528bd58 Cyclic L1-list. Implements almost the same set of operations as for L2-list
(except those, which reverse enumeration of elements).
2009-06-03 18:12:35 +04:00
e8c25fca0a supply test definition 2009-05-31 02:41:00 +02:00
e0ad992f30 spinn-off: collecting some frequently used bits to support unit testing 2009-05-30 23:49:02 +02:00
014b6c0b49 intend to use the time wrapper 2009-05-29 19:03:34 +02:00
940d63a9fa time wrapper minimal test coverage 2009-05-29 18:36:37 +02:00
dedb70aac9 @Joel: a simple convenience wrapper for gavl_time_t 2009-05-29 18:36:37 +02:00
efa7b4717c rework placement to contain a LUID, and to deal with inheritance according to the concept draft 2009-05-29 07:10:54 +02:00
85a9c99e52 hash ID: add trivial implementation + impl based on LUID 2009-05-24 05:14:11 +02:00
3b8a851722 add equality 2009-05-24 01:46:00 +02:00
2bb64a23fa augment test, rework access to the hashID, template on hash impl 2009-05-23 05:13:51 +02:00
e5d2042190 WIP rename and reorganise hash ID, now focussing on the Mixin 2009-05-23 03:43:39 +02:00
bac5da777b WIP document the concept of the hash ID, get rid of the uggly cast 2009-05-22 03:41:58 +02:00
020636b90a WIP extract the hash ID draft into separate header & test 2009-05-22 02:40:20 +02:00
8f8831c8b3 planning index structure.. 2009-05-09 17:32:29 +02:00
9b3ca200e7 considering new facilities for referring to placements 2009-05-09 03:08:38 +02:00
0e4df5611a time wrapper minimal test coverage 2009-04-24 21:48:38 +02:00
3ae3e36f3f @Joel: a simple convenience wrapper for gavl_time_t 2009-04-24 21:48:38 +02:00
Christian Thaeter
b8d3e841d0 forgot new llist.h 2009-02-15 19:29:10 +01:00
b0e6468293 some testing and debugging 2009-02-08 04:10:37 +01:00
e435822de6 Ouch.. boost::ptr_vector depends on boost-serialisation. Write a simple replacement... 2009-02-08 01:31:01 +01:00
8e5097cbe0 cleanup, fixes, comments... 2009-02-06 22:51:39 +01:00
ee950d6255 some cleanup and re-ordering 2009-01-31 23:42:56 +01:00
19e85a95d4 fix: better make the shared_ptr a member of the Handle class
this change circumvents compiler uncertainities with the operator bool()
and actually seems to be better design too...
2009-01-31 23:28:09 +01:00
8419534f49 A generic opaque Handle type built on top of shared_ptr, for managing lifecycle 2009-01-28 02:44:59 +01:00
aa7fe2591c use a dedicated header to pull up early NoBug init 2009-01-26 01:09:49 +01:00
50625039d0 merge NoBug changes from master to bring this devel branch up-to-date
Next things to do will be reworking the draft/dummy to support multiple playback processes and a display callback
2009-01-25 02:10:03 +01:00
5eea58986f merge: ... bring in latest GUI additions from joel 2009-01-25 00:54:12 +01:00
10597beeba mass rename: relocate basic Logging conf. from liblumieracommon to liblumiera 2009-01-25 00:24:42 +01:00
Christian Thaeter
b9fc2d6522 WIP: deploy new logging flags in lib 2009-01-24 22:30:25 +01:00
Christian Thaeter
16ebdd65b1 some more logging flags, little cleanup, fix to Makefile.am 2009-01-24 22:30:25 +01:00
Christian Thaeter
ef6344057c first attempt to organize the nobug flags for review
I grepped out all flags which are actually defined/used in lumiera and
refactored them into one big tree here. There are some annotations and
issues which shall be finally resolved. Please check if the intended
hierarchy looks OK this way and add more flags when you think some are
missing. I chosen to make a quite verbose hierarchy, this doesnt cost much
in nobug and adds some flexibility. The Documentation at the head needs to
be reviewed. Many flags which are collected here need to be brought back
into the subsystems which use them, this is only to get a big picture for
now.
2009-01-24 22:30:25 +01:00
Joel Holdsworth
51f05ebb3e Merge branch 'guistart' of git://git.lumiera.org/lumiera/ichthyo into gui 2009-01-24 21:28:45 +00:00
Joel Holdsworth
0355c83f0e Added handling for when the user drags beyond the end of the tree 2009-01-24 17:50:18 +00:00
Joel Holdsworth
262ee3655b Added is_descendant_of method to tree 2009-01-24 17:19:10 +00:00
Joel Holdsworth
41f394a57b Excised ObservableList::to_list 2009-01-24 12:18:12 +00:00
49a865fa57 merge latest GUI additions (and fixes from master) for colaboration on the Player mockup
this branch still corresponds to joel/gui
2009-01-22 23:26:08 +01:00
3dae60f559 add missing stubs to make it pass the compiler 2009-01-22 17:29:17 +01:00
Joel Holdsworth
cb13f5f74c Merge branch 'master' of git.lumiera.org:/git/LUMIERA into gui 2009-01-21 18:21:08 +00:00
974e83676a Further ClassLock refactoring; added linkonce assertion check 2009-01-21 13:04:28 +01:00
801f070a7d Fix for broken logic of the ClassLock (showed up on Ubuntu Hardy)
this was nice copy-n-paster error, of course the implementation
namespace was never intended to be anonymous.
2009-01-21 12:19:02 +01:00
Joel Holdsworth
d42bc4ea90 Fixed a bug in tree 2009-01-20 23:17:40 +00:00
c6bc14375c write a draft how I'd like to deal with joining threads. 2009-01-18 22:14:56 +01:00
054c652571 improve error handling when starting the GUI thread 2009-01-17 14:31:40 +01:00
Christian Thaeter
bb8ad9fbd5 move threads back into the backend 2009-01-16 02:18:58 +01:00
Christian Thaeter
a78ec21fea ERROR_SET_* macros for different logging levels 2009-01-15 01:05:07 +01:00
aa8896a79f merge resolution of some build/dependency problems 2009-01-14 12:31:20 +01:00
e8469d5552 chaninsaw surgery to resolve the most urgent dependency problems with lib 2009-01-14 12:15:13 +01:00
Christian Thaeter
d37bb17566 Add a context string to the error system
lumiera_error_set() now takes an optional extra string which can be used
to pass context relevant data along. This string gets copied into the
error state so one can easily create it by the tmpbuf_snprintf() facility.

Also a lot of places which define errors get fixed according to this.
2009-01-13 21:23:37 +01:00
5b68a39cc4 move threads from backend to liblumiera
otherwise lib and common would depend on backend
2009-01-10 21:50:03 +01:00
e64e9a19b6 Merge GUI loading and startup, incl opening of facade interface 2009-01-10 19:12:48 +01:00
b6fb135398 change error notification at subsystem shutdown to use just a string*
(this allows to memoize the error message and call the termination
handler outside the catch block)
2009-01-10 16:15:17 +01:00
3da9586824 Rewrite the GuiNotification service to operate in sync with bringing up the GUI 2009-01-10 15:29:11 +01:00
Joel Holdsworth
22c9e8b082 Merge branch 'master' of git.lumiera.org:/git/LUMIERA into gui 2009-01-05 17:59:23 +00:00
8d4bc62fbe WIP start drafting a better InterfaceProxy handling 2009-01-04 15:21:04 +01:00
edb01ec8c6 Integration: Thread/sync, GUI-Plugin invoked in separate thread 2009-01-03 16:05:04 +01:00
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
Christian Thaeter
47b5a2667c add LOCKED_SECTION macros to rwlock, fix bug in rwlockacquirer 2008-08-10 12:19:08 +02:00
Christian Thaeter
12feb6e7b8 add 'lumiera_free' as replacement for 'free'
lumiera_free() is for now just a static inline wraper around free()
Later this makes it easier to hook in some resource managing functions
or a Garbage Collector in.

Replaced all current uses of free()
2008-08-10 12:19:08 +02:00
Christian Thaeter
f5df65b0a1 add a translation function to tmpbuf
tmpbuf_tr takes an input string and 2 sets of characters plus a
default character. It produces a output string with all
characters from the first set translated to the correspondending
character in the 2nd set, similar to the shell 'tr' util.
2008-08-10 12:19:08 +02:00
Christian Thaeter
93e126f5ab add a 'lumiera_err' typedef 2008-08-10 12:19:08 +02:00
Christian Thaeter
9826fd180d renamed the uuid to luid
uuid's are somewhat standardized, we use our uid's slightly differently,
so change the name not to be confused with standards.
 * Small fix for luid generation
 * build a 'luidgen' tool which will be used by the interface gen later
 * add emacs vars
 * include the luidgen tool in automake
2008-08-10 12:18:20 +02:00
Mano Stienen
163ba179ed moved documentation from error.c to .h 2008-07-20 16:11:08 +02:00
Mano Stienen
14b9847a69 moved documentation from plugin.c to .h
and
cleaned documentation from safelib.c that already existed in .h
2008-07-19 14:47:03 +02:00
Mano Stienen
1cabeff7bf Merge branch 'HEAD' of git://git.lumiera.org/LUMIERA into doxygen_fixes 2008-07-14 22:42:59 +02:00
Mano Stienen
6838dbe12a documentation from condition.c and reference.c moved to .h 2008-07-11 08:15:08 +02:00
Mano Stienen
1d8bc98429 moved documentation from mutex.c to .h 2008-07-11 06:32:56 +02:00
Mano Stienen
7f1987666f moved documentation from rwlock.c to .h 2008-07-11 05:02:47 +02:00
a46bfd2bf6 integrate the GTK-Gui (draft) in the SCons build 2008-07-11 03:51:37 +02:00
7c56c71d00 Documentation Update, including info about ongoing builder work 2008-07-07 23:56:34 +02:00
98a542f920 WIP drafting how to build all possible operation configs 2008-07-05 18:50:54 +02:00
Joel Holdsworth
3cc0f72389 Trivial timeline now works - more work coming 2008-06-18 23:57:47 +01:00
Christian Thaeter
00b9dff106 Doxygen config update
* set EXPORT_ALL=NO to leave out undcoumented entities.
* Fix a lot @file directives
2008-05-19 16:27:29 +02:00
Christian Thaeter
94e075d2c2 fix: mrucache_drop() must call the element destructor 2008-05-19 16:23:16 +02:00
Christian Thaeter
03ed87051d fix missing declaration of lumiera_calloc() in safeclib.h 2008-05-19 16:23:16 +02:00
Christian Thaeter
63c07d1274 doxydocing mrucache 2008-05-19 16:23:15 +02:00
Christian Thaeter
dc0cbf0ad8 Fix: off by one allocation error in tmpbuf_snprintf() 2008-05-19 16:23:15 +02:00
Christian Thaeter
ff6ce603a4 tmpbuf_sprintf renamed to tmpbuf_snprintf 2008-05-19 16:23:15 +02:00
Christian Thaeter
0996c386bb Mrucache update
* Fix: unlinking at destroy
* rename add/remove to checkin/checkout
* add a drop function which moves a node to the end for fast reuse
2008-05-19 16:23:15 +02:00
Christian Thaeter
b909c2247d add a cuckoo_nelements function
Query the number of elements stored in a hash, useful for debugging.
2008-05-19 16:23:15 +02:00
Christian Thaeter
293b872b5d extend the MUTEX_SECTION macro with NoBug resource tracking
LUMIERA_MUTEX_SECTION takes now a nobug flag as first argument and
a nobug resource-handle as second argument.

This change works forward for the NoBug resource tracker and
deadlock detector.
2008-05-19 16:23:15 +02:00
Christian Thaeter
b4183ed444 safeclib improvements
* add lumiera_calloc()
 * improve cleanup functions for tmpbuf
2008-05-19 16:23:15 +02:00
Christian Thaeter
5ae909e2a0 add C++ parts to lib build 2008-05-19 01:51:34 +02:00
Christian Thaeter
249c6d5eda Remove _GNU_SOURCE from certain files
GNU_SOURCE is globally activated in configure.ac
2008-05-17 23:33:21 +02:00
Christian Thaeter
2cbfeda4df correct return types in condition.h 2008-05-17 23:25:50 +02:00
Christian Thaeter
a9cf2c719d Fix: uuid includes 2008-05-13 21:42:51 +02:00
Christian Thaeter
380c1d2c47 dropped the pre-gavl framerate sources out of lib 2008-05-13 21:31:30 +02:00
Christian Thaeter
b41115d1b2 Add cuckoo hashing to the library
This implementation of cuckoo hashing gives guaranteed O(1)
lookup complexity and amortized O(1) insert and remove complexity.
Hash tables by default grow and shrink automatically.
It is posible to preallocate entries and turn automatic shrinking off,
taking out the memory management factors for insert and remove operations.
2008-05-13 20:57:20 +02:00
Christian Thaeter
3a8b3feb96 add string creating functions to tmpbuf
* lumiera_tmpbuf_strndup() duplicates a string
 * lumiera_tmpbuf_sprintf() creates a formatted string
2008-05-13 20:57:20 +02:00
Christian Thaeter
d32c74361b Fix: typo in mrucache_age() 2008-05-13 20:57:19 +02:00
Christian Thaeter
69ba3b389c LUMIERA_MUTEX_SECTION(mutex) macro for sections of mutex protected code 2008-05-13 20:57:19 +02:00
Christian Thaeter
eab6b64f6d let mrucache age return how much elements it couldn't purge 2008-05-13 20:57:19 +02:00
Christian Thaeter
328127980a a small most-recent-used cache implementation 2008-05-13 20:57:19 +02:00
Christian Thaeter
7686a2ec56 Renamed the temporary 'buffer' functions to 'tmpbuf' 2008-05-13 20:57:18 +02:00
Christian Thaeter
0b8b5bf507 uuid functions 2008-05-13 20:54:05 +02:00
Christian Thaeter
27ca8a7362 let LUMIERA_DIE take an error identifier as parameter 2008-05-13 20:54:05 +02:00
Christian Thaeter
8b162cada4 llist update 2008-05-13 20:54:04 +02:00
Christian Thaeter
19ee8afa08 safeclib wraps some common c library functions and adds some tools
* lumiera_malloc which succeeds or dies
 * some safe string functions
 * Thread local round robin buffers for temporary data
2008-05-13 20:54:04 +02:00
3e8996005e start using the new lifecycle hooks. remove global nobugcfg.h
Now using proc/lumiera.hpp and proc/nobugcfg.hpp (i.e. only for the proc-Layer). Using ON_BASIC_INIT to
pull up NoBug automatically and for installing the unknown-exception handler. Add calls for
ON_GLOBAL_INIT and ON_GLOBAL_SHUTDOWN hooks to main() and to the testrunner
2008-04-14 05:15:16 +02:00
a03e3c5e73 Merge from backend: wikis, admin-scrits, test.sh
(dont merge any srcfiles)
2008-04-12 02:07:16 +02:00
Christian Thaeter
15bab21da8 Merged the timestuff removal, done by simeon
(cherry picked from commit bc5a301d01ac323bafcc434e33f6043678749f14)
2008-04-12 01:12:18 +02:00
e737b9ef1b Lumiera renaming -- source code 2008-03-10 06:09:44 +01:00
fbacb4cdb1 Lumiera renaming -- build system 2008-03-10 05:07:21 +01:00
0baf15ca94 Cinelerra-3 renamed to Lumiera -- copyright and documentation 2008-03-10 04:25:03 +01:00
7aca8cdf86 fix test-references 2007-11-27 00:52:26 +01:00
Christian Thaeter
4af35786d7 Merge branch 'velmont' of git://git.pipapo.org/cinelerra3/mob 2007-10-20 18:21:14 +02:00
Odin Omdal Hørthe
c2f5665e56 More doxygen documenting in src/lib/. Some name fixes, some new docs. 2007-10-20 18:10:35 +02:00
Odin Omdal Hørthe
9952aa33a4 Updated function docs to use the actual variables and cut textwidth at 105 2007-10-20 17:50:42 +02:00
Odin Omdal Hørthe
8afd4e1b8d Documented cinelerra_plugin_lookup in plugin.c 2007-10-20 17:38:03 +02:00
Odin Omdal Hørthe
74a7bf4493 Made a @file-skeleton for doxygen for the files in src/lib/ 2007-10-20 17:27:27 +02:00
Odin Omdal Hørthe
d9c9b4e15e Moved function doc from rwlock.h to rwlock.c 2007-10-20 17:08:12 +02:00
Odin Omdal Hørthe
e628110d45 Moved function doc from plugin.h to plugin.c 2007-10-20 17:03:59 +02:00
Christian Thaeter
b67af669ee removed check for list=!NULL which barfs on gcc 4.2 2007-10-20 17:00:53 +02:00
Odin Omdal Hørthe
9bf36e1eb4 Moved function doc from mutex.h to mutex.c 2007-10-20 16:57:39 +02:00
Odin Omdal Hørthe
6eea8a60e0 Moved function doc from error.h to error.c 2007-10-20 16:52:59 +02:00
Odin Omdal Hørthe
4b406b2a99 Moved function doc from condition.h to condition.c 2007-10-20 16:31:24 +02:00
Christian Thaeter
d5fe116941 add 'references' to lib 2007-09-19 08:44:58 +02:00
Christian Thaeter
ba716dbda4 better smart references, still raw meat 2007-09-19 07:01:12 +02:00
Christian Thaeter
96b9f65e6f some unmmerged changes? 2007-09-19 06:58:54 +02:00
Christian Thaeter
38ce0afec4 smartref.h WIP 2007-09-13 20:24:18 +02:00
Christian Thaeter
2aaad10bbd fixed typos and added some basic tests for the llist.h 2007-09-05 07:07:52 +02:00
Christian Thaeter
3ce5d3cedd revived, beefed up and documented a old linked list implementation, UNTESTED 2007-09-05 02:44:23 +02:00
Christian Thaeter
f1aba12af8 renamed *lock to *acquirer 2007-09-03 06:40:44 +02:00
Christian Thaeter
d508f7cb7a rwlock first implementation 2007-09-03 06:35:13 +02:00
Christian Thaeter
04f9424ad8 forgotten to commit the Makefile.am with the last commit 2007-09-02 23:25:38 +02:00
Christian Thaeter
0a31c7d2db mutex implementation 2007-09-02 17:52:30 +02:00
Christian Thaeter
d50ab9fe21 cosmetic fixes 2007-09-02 17:51:55 +02:00
Christian Thaeter
7445c1798d generic locking.h for shared declarations 2007-09-02 16:19:50 +02:00
Christian Thaeter
0d1097315c renamed locking.* to condition.* 2007-09-02 13:56:33 +02:00
Christian Thaeter
754b9cc24e C wraper for condition variables 2007-09-02 00:52:40 +02:00
Christian Thaeter
194d7810f4 add a cinelerra error which can be used to forward standard C errors from errno 2007-08-31 01:21:44 +02:00