Commit graph

2443 commits

Author SHA1 Message Date
faf579c4c5 enforce generally imutable time values 2011-01-22 23:20:12 +01:00
69eb659d4e refactor to extract a special "flip representation" operation 2011-01-22 18:33:15 +01:00
acc7a19fbd Fix: now able to handle negative extended SMPTE
changed the order of propagation when wrapping
the individual digxels of the SMPTE Timecode
2011-01-22 14:41:58 +01:00
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
c3d0fda495 remove superfluous type qualifier 2011-01-19 11:32:38 +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
aa5c78a30f TimeGridBasics_test pass 2011-01-15 15:04:23 +01:00
240c5ac232 extract asset iostream display into separate header 2011-01-15 14:43:50 +01:00
a70376dc4b grid asset passes first basic unit test! 2011-01-15 14:07:25 +01:00
8bc5bf88c9 fill in the missing parts to create a grid asset 2011-01-15 13:10:02 +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
2fba7aba2c Move draw functionality to timeline::Entity base class 2011-01-14 18:46:41 +01:00
Stefan Kangas
1c284fb497 remove three unnecessary #includes 2011-01-14 18:36:26 +01:00
Stefan Kangas
a127ec7873 fix three #include paths for cairomm 2011-01-14 16:57:34 +01:00
Stefan Kangas
e947d6f053 Add DrawStrategy object for timeline entities 2011-01-14 16:57:34 +01:00
Stefan Kangas
944406f4a3 Remove redundant '*' in many doxygen style comments 2011-01-14 16:57:34 +01:00
Stefan Kangas
62a05d003c add new baseclass Entity for things placed on timeline 2011-01-14 16:57:34 +01:00
Stefan Kangas
7f615d734f WIP: make clips selectable in timeline 2011-01-14 16:57:34 +01:00
Stefan Kangas
5c4992310e several style fixes, underscore to camel case 2011-01-14 16:57:34 +01:00
Stefan Kangas
7500732976 Move Clips for ClipTracks to the GUI model. 2011-01-14 16:57:33 +01:00
Stefan Kangas
3f4c7a5e46 Spelling and style fixes 2011-01-14 16:57:33 +01:00
Stefan Kangas
aed9193cfa Move clip name and duration to GUI model. 2011-01-14 16:57:33 +01:00
Stefan Kangas
c01d6dbd0b Move Track enabled/locked state to GUI model. 2011-01-14 16:57:33 +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
f798428428 WIP start a unit test to cover simple time grids 2011-01-13 03:36:08 +01:00
04db5655f1 Implementation: building a simple time grid 2011-01-13 03:36:08 +01:00
640d061de6 Meta Assets as a framework for specifiyng a TimeGrid 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
ebd93b0f12 fix inclue path error pointed out by "esevece" 2011-01-13 03:35:22 +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
Stefan Kangas
7a5ed1220d Replace relative #include paths with absolute paths. 2010-12-27 05:50:40 +01:00
784b094fa7 fix compilation problems with draft code 2010-12-26 23:00:34 +01:00
c1be39eacb Merge recent time quantisation analysis
Merge branch 'timequant' into proc
2010-12-26 22:30:28 +01:00
Stefan Kangas
bdb9832f29 Rename "Resources" to "Assets" 2010-12-26 22:30:07 +01:00
Stefan Kangas
86c7003d6d Commit CairoUtil class forgotten in commit 60ccdd. 2010-12-26 22:19:09 +01:00
Stefan Kangas
fffb1b89da Fix compilation problems on the buildserver, cont. (Ticket #735) 2010-12-26 09:55:34 +01:00
Stefan Kangas
60ccdda018 Replace several uses of GdkColor with Cairo::SolidPattern. 2010-12-25 21:29:53 +01:00
Stefan Kangas
063e5887b4 Fix Ardour Timecode widget: compilation problems on the buildserver. (Ticket #735) 2010-12-25 04:39:30 +01:00
Stefan Kangas
87ad80f17e Fix typos. 2010-12-24 23:19:04 +01:00
Stefan Kangas
e0da4c2378 Make Timeline default to Arrow Tool instead of Ibeamer Tool. 2010-12-24 23:10:00 +01:00
Stefan Kangas
0594ea26ad Make Timeline Arrow Tool use the standard left cursor. 2010-12-24 22:46:22 +01:00
Stefan Kangas
1166339387 Use Time instead of gavl_time_t in the timecode widget. 2010-12-24 19:39:12 +01:00
Stefan Kangas
799a8188de First implementation of track visible in timeline. 2010-12-24 19:34:25 +01:00
Stefan Kangas
74fce587bd Fix several incorrect comments (refering to the wrong file). 2010-12-24 19:34:25 +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
Stefan Kangas
a6fd1ec6fd Give names to the default ClipTracks in the GUI test code. 2010-12-21 09:52: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
e1708f33b9 Merge testsuite and builder changes from Lumiera master 2010-12-18 02:30:02 +01:00
459b1a061f Autotools fixes 2010-12-18 02:22:25 +01:00
2c992a1a4d Fix a printf warning in GUI 2010-12-18 01:01:27 +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
Stefan Kangas
46d4b4ac66 First version of timecode widget adapted from Ardour. 2010-12-17 19:28:10 +01:00
e7191ed3c6 Planning Fixure: Segmentation datastructure (#726) 2010-12-13 03:22:11 +01:00
c4282560ce fix two regressions 2010-12-12 01:53:23 +01:00
8a54e00b6b ModelPort registry unit test pass (closes #727) 2010-12-11 23:40:12 +01:00
be6f555e04 Builder: registry for model ports coded up
passes compiler, but not yet unit test....
Needed to change asset::ID to encapsulate the embedded hash value
2010-12-11 01:52:02 +01:00
0464ca965c fill in ModelPort and ModelPortRegistry definition stubs
making test pass the compiler
2010-12-10 18:12:56 +01:00
7043db90ee introduce an explicit StreamType::ID 2010-12-10 17:39:39 +01:00
9c86deb18c augment asset ID: automatic conversion, typed NIL ID constants 2010-12-10 15:29:43 +01:00
2827961385 WIP: test driven brainstorming about model port registry 2010-12-10 01:27:17 +01:00
8802beb753 rereading (and rewrapping) the builder/engine code...
started this a long time ago, then got sidelined....
2010-12-09 22:43:32 +01:00
Stefan Kangas
41e6750163 Move time conversion logic from lumitime.cpp to time.c 2010-12-06 16:18:54 +01:00
Stefan Kangas
cc95c0df97 Fix two minor typos 2010-12-06 13:46:50 +01:00
Stefan Kangas
2909804538 Add preliminary implementation of a menu option Window/Close Window 2010-12-06 13:40:32 +01:00
Stefan Kangas
df15c3d654 Change format of placeholder in About/Credits to stop it from being a clickable link 2010-12-06 03:41:07 +01:00
Stefan Kangas
9a881c95df Enable lock/unlock and disable/enable individual tracks in the GUI 2010-12-06 03:40:15 +01:00
ee56ab36a0 Definition of ModelPort, model port reference and -table (#718) 2010-12-05 02:46:37 +01:00
145ad6c3a5 more (trivial) cleanup and renaming 2010-12-05 02:46:37 +01:00
828206e6b1 OutputMapping unit test pass (closes #651 and #716) 2010-11-28 05:18:57 +01:00
c7794e7cbf rewrite to retrieve default-pipe query from the defintion context 2010-11-28 02:16:39 +01:00
5ba7468f41 OutputMapping implementation complete, pending unit test 2010-11-28 01:43:55 +01:00
fc051dfcba OutputMapping implementation draft
coded up the easy part, omitting the actual resolution
based on an configuration query
2010-11-27 06:01:31 +01:00
1e2d4d90f6 start using a typedef HashVal instead of size_t (#722) 2010-11-27 05:11:02 +01:00
f9bc292ac3 better use boost::operators for full equality comparison support 2010-11-27 04:21:39 +01:00
c3d29d1eb3 OutputMapping: interface refactorings to yield a cleaner structure 2010-11-27 03:59:07 +01:00
56c1387cd5 OutputMapping: finish interface draft (stubbed) 2010-11-25 05:35:50 +01:00
645ddd284c WIP Solution draft for defining an output mapping type 2010-11-25 04:52:49 +01:00
a7ec680955 WIP chewing on the problem how to define a output mapping type 2010-11-24 06:21:32 +01:00
0866d2c191 convenience lookup function for pipes 2010-11-24 06:20:53 +01:00
b42e5c859f Test-driven brainstorming: how should output mapping be used? 2010-11-23 03:40:11 +01:00
5ae1f819f2 Finished the design of global pipes 2010-11-21 02:29:26 +01:00
272f3d75ff finish OutputDesignation definition and outline. (closes #312) 2010-11-19 19:10:24 +01:00
9473fd3d67 OutputDesignation implementation draft 2010-11-19 05:01:43 +01:00
71f1dfede8 WIP output mapping draft (#716) 2010-11-17 04:49:21 +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
1b95a02f14 Autotools fixes 2010-11-06 18:17:25 +01:00
40627b1c12 fix a regression, caused by removing the special Struct-ID handling 2010-11-05 04:32: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
1f511c327a try to get rid of the query functions on asset::Struct (#706) 2010-10-31 02:02:31 +01:00
7a53f65508 remove the separate pipeID field, because now the asset name is sufficient 2010-10-29 06:09:06 +02:00
de54e46a12 remove the encoded capabilities from Struct asset ID (#565) 2010-10-29 06:04:03 +02:00
08d90be1b6 get the sesison element-tracker integration test to pass 2010-10-29 05:24:19 +02:00
7c758b04db rename Struct-Asset factory function to better reflect the semantics 2010-10-29 04:28:46 +02:00
da04e13213 re-thinking the pattern of the fake implementation 2010-10-28 03:57:12 +02:00
61a2e26bc8 rework fake-resolution, now searching the session
this whole creation-logic seems to be somewhat broken
2010-10-27 07:26:33 +02:00
fcbd18621e session: attaching and detaching objects 2010-10-26 05:37:14 +02:00
0733b0c39b add a faked query resolution, creating new Timelines and Sequences on demand 2010-10-26 04:54:51 +02:00
987026f4c8 implement creation of "default" Timeline 2010-10-25 06:08:36 +02:00
13e1a3a943 mostly unimplemented... referring the relevant tickets 2010-10-25 03:08:52 +02:00
9fc366bd25 session lifecycle implementation.. 2010-10-24 06:50:00 +02:00
85b62d99dc stubbed the lifecycle operations 2010-10-24 02:48:00 +02:00
9bdfface63 implementation draft of session lifecycle 2010-10-24 02:27:38 +02:00
796c4488a5 planning session lifecycle implementation 2010-10-23 05:58:14 +02:00
ad452a9dd4 activate complete SessionElementTracker_test
(doesn't pass yet -- missing sesison initialisation)
2010-10-20 05:12:13 +02:00
d1dd3e2677 saveguard against deregistering from an alredy destroyed session 2010-10-20 04:42:22 +02:00
da45bb06f7 connect Timeline/Sequence tracking to current session on initialisation 2010-10-20 04:08:58 +02:00
6cda74c31e connect element-tracking to the asset unlink mechanism 2010-10-20 04:00:05 +02:00
83ea56e3ec hook automatic element-tracking into Sequence asset 2010-10-19 04:29:05 +02:00
b35c4b4871 hook automatic element-tracking into Timeline asset 2010-10-19 04:19:38 +02:00
fc0cefcadc review the asset dependency handling in AssetManager 2010-10-19 03:53:36 +02:00
3e9c337ac0 review and verify lib::ElementTracker 2010-10-18 05:33:46 +02:00
884e3600bd experimental: allow implicit converisons to/from Placement-ID 2010-10-17 06:30:56 +02:00
120973311a Session ElementQuery unit test pass (closes #639) 2010-10-17 05:54:21 +02:00
da994cf9fd draft a test to cover ElementQuery (Session API)
trying to get #639 closed...
discovered, that I had already implemented this
filtering query in 6/2010
2010-10-17 05:08:47 +02:00
d8c06fac1e add diagnostic self display to QueryFocus 2010-10-16 02:21:20 +02:00
c772359440 add diagnostic self display to ScopePath 2010-10-16 02:21:20 +02:00
e48a9fb811 add diagnostic self display to placement-Scope 2010-10-16 02:21:20 +02:00
48605827a6 Add test to cover the very basic MObject interface 2010-10-16 02:21:20 +02:00
b9e99a2be2 add ability to generate a short-ID to MObject hierarchy 2010-10-16 02:21:20 +02:00
b15a1c2d3c changed wording of the error message 2010-10-16 02:21:20 +02:00
73a1adcdf5 QueryFocus_test working now (still without diagnostic output) 2010-10-16 02:21:19 +02:00
a0234ecc38 get QueryFocus_test to compile with the (now existing) implementation 2010-10-16 02:21:19 +02:00
64f017da43 QueryFocusStack_test pass 2010-10-16 02:21:19 +02:00
46597009f9 get the basic ScopePath_test to pass 2010-10-16 02:21:19 +02:00
5c28b5d46e re-read, verify and finish off the Scope, ScopeLocator and QueryFocus implementation 2010-10-16 02:21:19 +02:00
119f7be36c define copy operations explicitly (closes #662)
ScopePath and Scope implementation should be roughly complete
2010-10-16 02:21:19 +02:00
bba9ce2570 code up the remaining Scope operations. Closes #430 2010-10-16 02:21:18 +02:00
6dd18f96c6 extend the session services API to support scope discovery
This allows the implementation of the Scope class to access
the current Session / PlacementIndex behind the scenes
2010-10-16 02:21:18 +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
9593d388cc back out that caching query, it's nonsense
defeating the whole purpose of that interface
2010-10-16 02:21:18 +02:00
001a45f64a WIP implementation idea how to get both iterations unified 2010-10-16 02:21:18 +02:00
e14aba833e remove the parent-iteration capability from Scope
its not needed yet, and would be surprisingly tricky
to implement, so lets get rid of it!
Use QueryFocus or ScopeLocator instead
2010-10-16 02:21:17 +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
088922a790 remove obsolete helper
seems to be a leftover, obsoleted by the simplifications done this june
in c80b1894e6 Ticket #641
2010-10-16 02:21:17 +02:00
58757281b0 rearrange the query functions to suit the changed ScopePath internals 2010-10-16 02:21:17 +02:00
1fe76e33a2 WIP: move the (planned) logic for virtual paths to ScopePath::navigate() 2010-10-16 02:21:17 +02:00
d1d7f3bc58 decided on an extension point to add virtual/effective paths
we need that later to get full meta-clip functionality
2010-10-16 02:21:17 +02:00
8078357e3c revisiting the binding scope problem 2010-10-16 02:21:17 +02:00
a29591c299 SCons: several small improvements, e.g. valgrind-suppressionfile 2010-07-26 03:24:15 +02:00
Christian Thaeter
c66b71deb2 extend fileheader with some flags and endianess mark 2010-07-21 06:13:59 +02:00
Christian Thaeter
c908cf4807 Start of 'fileheader' implementation
Lumiera will create and use some files on its own (caches, indices). This
lies the foundation for identifying this files.
2010-07-21 06:13:59 +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
25c3b04ec8 FIX: tmpbuf.h include for tools 2010-07-21 05:05:33 +02:00
Christian Thaeter
c34e6d547e FIX: tmpbuf.h for lib/time 2010-07-21 05:05:33 +02:00
Christian Thaeter
3c338d1b19 FIX: tmpbuf.h include for common/plugin 2010-07-21 05:05:33 +02:00
Christian Thaeter
2f92a958a8 FIX: tmpbuf.h includes in common/config 2010-07-21 05:05:33 +02:00
Christian Thaeter
f967f9427b FIX: tmpbuf.h includes in backend 2010-07-21 05:05:32 +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
Christian Thaeter
81da2ebc5d Small fix in nobug assertions for mmap_address() 2010-07-21 04:50:04 +02:00
Christian Thaeter
677f8712ee FIX: glitch in filehandle cache refcounters 2010-07-21 04:50:03 +02:00
Christian Thaeter
da23204bf3 Exclusive file locking
This adds global exclusive advisory file locks on a per-thread basis.
Only exclusive locking for a whole file is supported to setup headers etc.
Finer grained locking will be handled somewhere else.
2010-07-21 04:49:51 +02:00
Christian Thaeter
2dfef6cac4 add nobug flag to FILE_MMAP_SECTION() macro 2010-07-21 04:49:50 +02:00
Christian Thaeter
a8339fb5d0 add mmaping of exact blocks
namely file headers needs to be accessed unaligned and exactly as given,
this adds mmap functions to create mmap objects to do this.
2010-07-21 04:49:50 +02:00
Christian Thaeter
c4cbde9853 add a 'bias' to offset mmaped clusters
We will need cluster/page aligned access for certain files (indices),
this files will contain an initial header describing the contents. A bias
is used to step over this header and align the following data.
2010-07-21 04:49:40 +02:00
Christian Thaeter
84ec2b6a77 FIX: small refcounter glitch on mmap
freshly created mmaps have a refcounter set to 1 now, acquire a new
mmap only increments the refcounter when its checked out from cache.
2010-07-21 04:49:40 +02:00
Christian Thaeter
cd0cd341c0 Remove 'self' parameter from mmapcache calls, make it proper singleton 2010-07-21 04:49:40 +02:00
Christian Thaeter
3201ae5d8c remove acquirer list for mmap regions in use, refcount is enough 2010-07-21 04:28:42 +02:00
Christian Thaeter
e0939e9469 improve the mmap handling
* add frontend interfaces to file to get a mmaping
 * SECTION macro to encapsulate mmap access
 * mmap_address() translating an actual offset to address
 * add some tests
 * some test cosmetics
2010-07-21 04:28:42 +02:00
Christian Thaeter
f887ee81ff fix a small memory leak
forgot to delete the filedescriptorregistry tree, destroyed it only.
2010-07-21 04:28:42 +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
Christian Thaeter
d6a18ed9a7 post-merge autotools fixup 2010-07-16 05:39:01 +02:00
adba17472e Merge recent small GUI fixes by S.Kangas
Merge commit 'skangas/minor-fixes'
2010-07-14 04:46:51 +02:00
e16ca49894 Merge in new (experimental) 'advice' concept 2010-07-14 04:33:42 +02:00
Stefan Kangas
a0804920bd Fix several minor typos 2010-07-11 19:59:08 +02:00
Stefan Kangas
fe87453441 Add tooltips to timeline panel buttons 2010-07-07 04:07:39 +02:00
Stefan Kangas
204f3c7ee9 add http:// to website, making link in about window clickable 2010-07-05 05:01:06 +02:00
5c6a6c150f clean up any remaining use of wstring
I consider wstring a deprecated technology
UTF-8 is all we need
2010-06-27 03:48:00 +02:00
562e571624 Purge Track-Asset from codebase (Ticket #581)
From now on EntryID<mobject::session::Track> will play this role
2010-06-21 03:43:25 +02:00
b7353c6368 indentation 2010-06-20 05:23:08 +02:00
1089b339d0 code up querying for specific track, as used in the StructFactory 2010-06-20 05:19:47 +02:00
edbb2410a0 factor out a new session API sub-module for the global query functions 2010-06-20 04:30:42 +02:00
daba3f2a09 fix some namespace doxygen descriptions 2010-06-20 01:53:21 +02:00
5e104b633a querying for specific objects (automatically pick target type) 2010-06-19 08:47:28 +02:00
c1cb5320e0 factor the specific query into separate header 2010-06-19 05:37:39 +02:00
c80b1894e6 Clean up design of ScopeQuery, throw out Iterator mixin (closes #641) 2010-06-19 05:20:34 +02:00
4f6fa69f2b investigate the design problems (issuing scope exploartion queries) 2010-06-19 03:36:46 +02:00
8f0dd93308 try to reorganise confusing API arrangement. leads to discovering Bug #641 2010-06-18 03:12:59 +02:00
fab1c699ea draft test to verify behaviour
but doesn't work; somehow the filterfunciton of the baseclass
gets installed
2010-06-16 06:45:38 +02:00
a8dcd9f494 idea how to implement searching for objects with specific properties 2010-06-16 05:56:44 +02:00
a1f3ad835b investigating the problem of finding an object with given conditions 2010-06-15 05:24:05 +02:00
c6c7214826 try to break the design deadlock with sequence / track creation 2010-06-14 02:08:45 +02:00
fc3e43bb19 re-reading my design and plannings from March, identiyfying next steps to take 2010-06-13 03:34:12 +02:00
e574fdf702 fix a regression regarding struct-asset naming scheme 2010-06-13 00:31:41 +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
5b48b9f864 fix a regression regarding struct-asset naming scheme 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
560612d467 check out how to use the GDB Python pretty-printers
Yes, it works with GDB 7.1 from Debian/Squeeze
2010-06-03 04:37:22 +02:00
b998935d6f fix linking problem with the asset::Struct naming scheme 2010-06-03 04:37:22 +02:00
1f988e17cd unfinished code commented out 2010-06-03 04:37:22 +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
debba6f769 Fix PlacementIndex corruption while deleting recursively 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
fc44e522e0 improve PlacementIndex self-verification 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
c691213003 EntryID: fix symbol generation and improve ordering 2010-06-03 04:37:19 +02:00
b21db07aff implement generic object attach-to-model and purge 2010-06-03 04:37:18 +02:00
c43040985c more stubbing and compilation fixes 2010-06-03 04:37:18 +02:00
8a2515c0b0 stubbing and compilation fixes 2010-06-03 04:37:18 +02:00
474b1af82a add catch-all defaults for asset::struct naming 2010-06-03 04:37:18 +02:00
e4f015d622 WIP remaining parts of the EntryID implementation, untested 2010-06-03 04:37:18 +02:00
07146ad373 WIP parts of the EntryID implementation, refactor struct asset name generation 2010-06-03 04:37:18 +02:00
2131488afb test-driven brainstorming: simplified asset-like ID 2010-06-03 04:37:17 +02:00
39355713fd cleanup 2010-06-03 04:37:17 +02:00
1119b917a9 planning general refactoring to allow intended binding/sequence handling 2010-06-03 04:37:17 +02:00
4bf9a36f2e Start working on timeline-sequence binding. 2010-06-03 04:37:16 +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
cdaff1566f Template instantiations for the new asset types Timeline and Sequence 2010-06-03 04:37:15 +02:00
55df5205a4 draft a mixin for adding element-tracking functionality 2010-06-03 04:37:15 +02:00
bdb21c4aa8 draft required functionality for the element-tracker 2010-06-03 04:37:15 +02:00
c7a9b04fba refactor SessionImpl to support nested interface modules on the API 2010-06-03 04:37:15 +02:00
fa0482fab4 WIP add sub-interfaces to the session API 2010-06-03 04:37:15 +02:00
bfc18dfb94 consider using RefArray for the Session API 2010-06-03 04:37:14 +02:00
ea538d962f test-driven brainstorming: adding and removing session parts 2010-06-03 04:37:14 +02:00
baff536731 placement and pointee equivalence tests 2010-06-03 04:37:14 +02:00
11c5d55b73 draft: run self-check on MObject creation 2010-06-03 04:37:14 +02:00
8f34129f60 planning: structural assets and the track-ID 2010-06-03 04:37:14 +02:00
8eb0a16134 cast the new spec regarding timeline/session into unit test code 2010-06-03 04:37:14 +02:00
4594ddde3a WIP: test driven brainstorming regarding sequence/timeline handling 2010-06-03 04:37:13 +02:00
c2cbe4c9e8 change Timeline and Sequence to be structural assets 2010-06-03 04:37:13 +02:00
092ea07b76 kill "the EDL" 2010-06-03 04:37:12 +02:00
f0aed2c2cc fix dummy compilation/tests 2010-05-21 03:50:41 +02:00
86bc30a10a Merge Ubuntu/Lucid adjustments. Drop pre 1.0 compatibility 2010-05-21 03:43:09 +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