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