7000a40602
WIP: stubbed factory functions
2013-10-18 02:49:37 +02:00
319da4bff6
WIP: improve the API
2013-10-18 01:10:03 +02:00
f93c7f8930
WIP: draft internal structure of dependency factory
2013-10-16 04:46:20 +02:00
567ab3819b
WIP: draft an improved version of the Singleton factory
...
...this would both improve our general design and circumvent
the problems with Clang and static variables
2013-10-14 01:18:56 +02:00
08cae2617d
fix insideous problem with mutex initialisation
...
explanation: we use pthread_once to define a mutex type descriptor,
used to define some of our mutexes as recursive mutexes. Now,
pthread_once relies on a counter stored in a given location;
we used a non-exported global var for this counter.
Unfortunately this ties the mutex initialisation to the static
initialisation of the compilation unit holding this counter variable.
Theoretically it would be possible (we never observed such an incident)
that, during static initialisation, a singleton was brought up,
which requires a class-scoped lock, implemented as recursive mutex.
And it would be possible for this singleton locking to happen prior
to initialisation of the mentioned counter variable.
As a fix, I've moved the counter varialbe into a function scoped
static variable, since that is guaranteed by the C++ runtime system
to be initialised at first usage of the function, irrespective of the
initialisation order of the enclosing compilation units
2013-10-13 01:48:27 +02:00
67523269fc
clean-up and comments for the singleton factory
2013-10-07 01:58:13 +02:00
66b62e2146
remove superfluous template parameter dependency
2013-10-07 01:58:13 +02:00
6d064cb7b7
Clang( #928 ): clarify instantiation of dependent template
...
clang-3.2 requires a clarification here (while previous versions
of clang and GCC automatically resolved the ambiguity by assuming
use of a nested, dependent template).
2013-10-06 23:15:49 +02:00
961936ce9d
Clang-3.0( #932 ): workaround for a known problem of Clang-3.0 (Debian/stable)
...
http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20121203/069267.html
http://stackoverflow.com/questions/13521163/variadic-template-as-template-parameter-deduction-works-with-gcc-but-not-with-c
Clang aborts the template type deduction due to different size of the argument lists;
in fact the missmatching arguments can be filled in perfectly from the default template arguments.
As a workaround, we'll include an unused placeholder type parameter into the templated function,
to make the match succeed.
2013-09-27 23:28:29 +02:00
cb80d4001a
Clang( #928 ): refactor OutputSlot implementation to resolve a scoping problem
...
Clang is more insistent when it comes to enforcing 'protected' visibility.
Since in this case the basic design can be considered sane and optimal, the
only (and obvious) solution is to nest the PIMPL into a default base class
for implementation; this mirrors the structure of the interface.
2013-09-27 23:25:51 +02:00
4ea20f0e74
Clang( #928 ): fix inconsistencies and compilation problems
...
Compilation with Clang 3.0 (which is available in Debian/stable) fails,
mostly due to some scoping and naming inconsistencies which weren't detected
by GCC. At some instances, Clang seems to have problems to figure out a
perfectly valid type definition; these can be resolved by more explicit
typing (which is preferrable anyway)
2013-09-27 23:23:13 +02:00
7f68bc9020
integrate priority queue: lumiera namespace prefix; unit test pass
2013-09-13 05:44:58 +02:00
fc3cc1bc98
integrate priority queue: adjust imports and doxygen comments
2013-09-13 04:18:16 +02:00
87a84a931f
Import priority queue implementation from Cehteh's library
2013-09-13 03:28:50 +02:00
Christian Thaeter
df749271d0
cleanup in the priqueue test-code
2013-09-13 02:57:26 +02:00
Christian Thaeter
ff51ea54e6
Add a copy function to the priqueue
...
by providing a custom copy function one can adjust otherwise non-copyable
elements. This should be used cautionary because dereferencing elements may
poison the cache and thus have some considerable performance impact
(profile this)
2013-09-13 02:57:26 +02:00
Christian Thaeter
98d6ba3967
priqueue implementation
...
this adds a minimalistic priority queue based on a binary heap
2013-09-13 02:57:26 +02:00
bcfc1ed783
some bits to round up the job descriptor API
2013-09-08 19:19:02 +02:00
2b8ac2d071
render job dummy passes unit test
...
the basic job and job closure interface is mostly settled now.
We can define and invoke render jobs, and distinguish jobs
through a hash ID
2013-09-07 02:37:17 +02:00
7ba10619aa
draft unit test to cover the basic render job properties
2013-09-02 00:57:33 +02:00
ef535d9897
provide a dummy job for unit testing
2013-09-02 00:26:04 +02:00
7ba0ef92c8
stubs to complete the scheduler interface draft
2013-09-01 23:29:57 +02:00
3688cbe9a5
WIP: draft scheduler interface and diagnostics
2013-09-01 19:48:17 +02:00
bcbd05d7eb
reorganise some boost::format usage
...
using our util::_Fmt front-end helps to reduce the code size,
since all usages rely on a single inclusion of boost::format
including boost::format via header can cause quite some code bloat
NOTE: partial solution, still some further includes to reorganise
2013-09-01 17:36:05 +02:00
febce1282c
standard hash value for jobs (prerequisite for #786 )
...
this is mostly a diagnostic facility; the actual scheduling
of jobs doesn't rely on hash values.
2013-09-01 02:30:14 +02:00
bb0b4578ec
move job planning implementation to separate compilation unit
2013-09-01 02:26:46 +02:00
3932a820a3
Job and JobClosure now located in the backend
...
- adjust namespaces
- fix imports
- forward the failure reason to the JobClosure implementation
2013-08-30 02:00:35 +02:00
488efdf783
WIP: relocate job descriptor into backend (Ticket #926 )
2013-08-30 01:23:07 +02:00
79370ad494
FrOSCon: review of job and job definition
2013-08-24 15:53:05 +01:00
ecf65a70fb
start a draft to shape the high-level interface for the Scheduler
2013-08-19 04:12:03 +02:00
f9cd80560c
complilation fixes
2013-08-18 03:16:49 +02:00
86e76bf7fe
define setup and chaining of render planning chunks ( #920 )
2013-08-17 03:37:36 +02:00
d192c42faa
fill in the definition how a job can be created
2013-08-17 01:35:07 +02:00
2488478a12
file-level comment for time values
...
a recent discussion showed that it is rather likely
for a reader new to the whole time handling framework
to encounter this header first....
2013-08-13 01:27:37 +02:00
160dafebdb
WIP re-read the code, try to understand the problem to be solved
...
unfortunately there was an interruption of more than a month
since my last Lumiera contribution
2013-08-13 01:16:29 +02:00
1f1d478da2
WIP: move building of the follow-up anchor into the new closure
2013-06-16 04:36:32 +02:00
84281d5b60
WIP: CalcStream initialisation
...
especially: where to establish the effective Timings.
also fixed several compilation errors
2013-06-15 04:02:48 +02:00
77066ee3ce
WIP: how to start the actual calculation streams within EngineService
...
this draft fills in the structure how to get from an invocation
of the engine service to the starting of actual CalcStream instances.
Basically the EngineService implementation is repsonsile to
instruct the Segmentation to provide a suitable Dispatcher.
2013-06-03 05:25:13 +02:00
723096d3f2
WIP introduce a new kind of job closure to perform the planning
...
this might help solving that gordian knot related to the TimeAnchor,
the Dispatcher and the introduction of a possible playback strategy
2013-06-02 03:09:18 +02:00
082822fde8
relocate the JobClosure interface to be defined alongside of Job
...
This is necessary since the implementation of the job functions
calls through the VTable of the interface JobClosure. Thus this
interface (and the VTable definition) needs to reside within
some compilation unit linked together with the basic job class.
TODO: move class Job entirely into the Backend
2013-05-31 02:59:32 +02:00
56be672358
WIP: reworking the dispatcher interface
...
the goal is still how to introduce a playback strategy
2013-05-30 02:10:56 +02:00
8982223a4d
pondering about a suitable definition of a planning chunk ( #920 )
...
mostly this seems to be a matter of getting the terms
and meaning of the involved entities straight
2013-05-21 04:35:25 +02:00
9cfbc7bbe6
GCC 4.7 compilation fix
...
now builds for me on Debian-7 Wheezy 64bit
unqualified member functions in dependent base classes not found anymore.
Need to qualify either the class or the instance.
2013-05-10 00:48:25 +02:00
d512267575
navigation orientation indicator done ( closes #918 )
2013-04-30 02:40:21 +02:00
e0c5b18740
draft indicator (helper) to support tree navigation
2013-04-29 01:36:32 +02:00
3ef3886395
reduce log level of config system startup message
2013-04-15 03:43:42 +02:00
d953d4e6af
Library: convenience function to take addresses
...
just a wrapper based on 5749a621
While implementing this, also simplified the way
a const iterator can be defined for taking addresses
2013-04-15 03:07:15 +02:00
346acb1fec
WIP continue debugging this test...
...
Problem with the visitation is solved now.
But the tree is still not rebuilt properly
2013-04-13 04:30:04 +02:00
5749a6216c
Library: iterator wrapper to expose the address
...
...for the very specific situation when we want
to explore an existing data structure, and the
exploration assumes value semantics.
The workaround then is to use pointers as values.
2013-04-08 02:03:43 +02:00
8353ebf7d2
WIP drafting cointinued...
...
now drafting the call structure
which might be used for adding jobs
to the scheduler.
Passes compiler
2013-03-31 01:13:13 +01:00
4c312e2299
WIP reworked idea for this test
...
...attempt to build it based on the monadic iterator primitives.
Only problem is: need to find out relation between nodes
after the fact. In the real usage situation, this
is not a problem, since we have a state object
there, which can track the relation as it is established
2013-03-23 01:17:23 +01:00
16c9f5fd36
WIP musing about re-creation of tree visitation order
2013-03-17 03:14:05 +01:00
25be40bb4a
change PlanningStepGenerator end-of-sequence logic
...
basically I've changed my mind to prefer an
infinite JobPlanningSequence, which is just
evaluated partially. This removes the need to
embody the logic of planning chunk generation,
which really is a different concern.
2013-02-11 03:23:10 +01:00
7ada9ff291
consider how to integrate a playback mode strategy
2013-02-11 03:19:24 +01:00
30409e66bd
WIP: considering how to support non-linear playback modes
2013-01-13 23:20:20 +01:00
727fdd8691
add convenience shortcut to access a collection's last element
...
actually two accessor functinons first() and last(),
which automatically pick a proper implementation,
either by iteration or by direct access
2013-01-13 16:49:20 +01:00
740f3d0211
add detection for STL-like back iteration
2013-01-13 16:39:43 +01:00
aca90f7ce8
DONE: mechanics of job planning
2013-01-12 14:36:01 +01:00
2b0e6d63c9
stop condition for chunk wise job planning
2013-01-12 12:49:26 +01:00
a4411d00b1
DONE: time anchor and latency handling for job planning
2013-01-12 12:38:33 +01:00
e40f3fe97f
introduce a render engine configuration facade
2013-01-12 11:17:29 +01:00
18605b0c19
handling of real time start offset
...
decision: the base for any deadline calculations
is the expected real time corresponding to the grid origin.
This value is contained in the Timings record.
2013-01-12 08:36:35 +01:00
72e5557d1e
locate the real time / nominal within engine::TimeAnchor
...
this clarifies the relation of TimeAnchor and Timings,
the latter act as a general spec and abstracted grid,
while the latter actually performs the conversion and
deadline checking
2013-01-11 18:12:40 +01:00
d18e36708d
re-read the code
...
OMG....
2013-01-11 16:48:28 +01:00
a2e4a23b30
bugfix
2013-01-11 14:11:51 +01:00
8e57bbacf1
Rename the "Library" into liblumierasupport.so
...
Rationale: this is the *support* Library.
The real "Lumiera-Library" does not exist yet.
liblumiera.so will be the *interface* every external
module / plug-in uses to get Lumiera functionality.
Especially the work on Library dependency clean-up
made outright clear, that this interface library
needs to be a separate piece of software, which is
carefully crafted, and more-or-less depends on the
whole application.
2013-01-08 03:00:50 +01:00
ada5cefaaf
re-arrange tests according to layer structure
...
the buildsystem will now pick up and link
all test cases according to the layer, e.g.
backend tests will automatically be linked
against the backend + library solely.
2013-01-07 05:43:01 +01:00
8d88ffcdff
SCons: rework test definition to link according to layer
...
tests used to be defined ad hoc and test definitions
are scattered confusingly over various directories.
Now built some simple rules into the buildsystem
to allow organising the tests into layers and
linking them accordingly.
Note: this switches to building shared objects
for the test classes too, which effectively speeds up
both re-building and re-running of test cases
2013-01-07 02:15:05 +01:00
0710d51aaf
SCons: fix the remaining shared linking problems on Ubuntu-Precise
...
Our libraries constitute a clear dependency hierarchy,
we do not want circular dependencies. Declaring these
dependencies while creating the shared libraries would
allow strict checking by the linker; but unfortunately
this also creates transitive depdendencies stored as
DT_NEEDED tags.
While basically this would be just fine, the resolution of $ORIGIN
on gets confused in case of transitively defined library dependencies
over multiple hops, especially in case when actually no symbol of this
transitive dependency is used. Since these newer systems set the
--as-needed switch for linking by default, these unnecessary
DT_NEEDED entries will be purged from the executable, but of course
not from the shared library causing the transitive dependencies.
As a consequence, when loading the executable, the $ORIGIN resolution
mechanism doesn't act on the dependencies recorded in the library,
causing the shared loader to abort with an "unresolved dependency"
So the resolution for these problems is not to use transitive
dependencies on libraries intended to be found via $ORIGIN
2013-01-05 04:50:59 +01:00
56d42e9b04
comments and tidying within BasicStetup and AppState
2013-01-05 04:50:59 +01:00
1c5ceaef15
Boost filesystem Ver 2/3 transition
...
This is kind of a workaround to avoid having to maintain two variants.
Explanation: between Boost 1.42 and 1.52 there was the transition to a
reworked version of the filesystem library, itroducing some breaking changes
The new version distinguishes much clearer between the native and the
generic representation of paths -- which becomes relevant when porting
to non-POXIX operating systems.
Actually the intention was to use the generic path representation in all
configuration; currently this distinction is moot, since we're caring
only for POSIX systems.
So the workaround is to use the fsys::path::string() function, which
is available in both versions, but changed meaning to yield the native
string. Later, when able to deprecate older Boost versions, we should
switch to generic_string()
Note: an alternative solution was found by Mike Fisher in 3b39f35
using the compiletime define BOOST_FILESYSTEM_VERSION=2
See also ticket #896
2013-01-05 04:50:29 +01:00
4ede0453be
resolve the remaining liblumieracommon.so dependency problems
...
now this library doesn't refer to any symbols from
Proc-Layer anymore. Resolving these problems
highlighted IMHO a serious shortcomming of our
interface system, which hinders the building
of abstractions at interface level
2013-01-04 07:45:18 +01:00
ef9a6e6f11
note some unresolved problems with our DummyPlayer
2013-01-04 06:00:35 +01:00
3d628b6eee
fix ill-guided linking of the DummyPlayer facade object type info
...
DummyPlayer is experimental code,
but actually we've established the convention
to linke the facade-proxies into common/interfaceproxy.cpp
2013-01-04 04:34:01 +01:00
1328ef4aa6
solution: how to retrieve syntactic representation
...
there is now a mechanism to allow sprcialised queries
to generate this syntactic representation only on demand
The actual concrete representation e.g. for scope queries
still remains TODO, but this won't really change
until we target the integration of a real resoloution engine
2013-01-02 04:18:05 +01:00
65feeb83fd
supply some documentation about lumiera::Query
2013-01-02 03:32:49 +01:00
e902757a14
(DRAFT) refactor the way how to retrieve the syntactic query representation
...
there can't be a callback from the base ctor;
instead the subclass must pass a QueryText definition
2012-12-29 00:31:24 +01:00
6a3d4777be
supplement special format handling for Symbol datatype
2012-12-27 22:32:55 +01:00
a1d98eb457
restore and fix some broken tests
...
..more to come, especially several of the
QueryResolver based tests are still broken
2012-12-27 03:31:09 +01:00
933e486cf9
clarify some aspects of Session lifecycle
...
- consider especially where the reset of internal indices happens
- actively purge the Assets, the ConfigRules and Defaults
2012-12-27 02:31:58 +01:00
aadc7ec7f8
allow to clear the session wide registration for defaults
2012-12-27 02:10:38 +01:00
41f2820781
allow to clear the global Asset registration ( #154 )
2012-12-27 01:45:52 +01:00
384ee68129
allow simple query-for-pipe again (revert)
...
while refactoring, I thought it might be a good idea
only to use Query objects. But in this special case,
most often you'd just want to pass in a simple query
with a literal query string. So this convenience shortcut
indeed makes sense.
2012-12-26 02:20:11 +01:00
873d6c3d5c
re-activate some tests
2012-12-26 02:01:26 +01:00
1f6e71272a
simplify fake config rules table access
...
- since std::map is itself a smart-ptr, there is no need for an indirection
- directly use QueryKey as table key
2012-12-26 01:13:36 +01:00
01792739f3
change Query ordering and hash to include the type information
2012-12-26 01:11:57 +01:00
d73c2fa842
adapt the fake-config-rules to use the new Query::Builder
2012-12-25 01:16:19 +01:00
9369709a46
fix breakage uncovered by unit-test
2012-12-24 03:20:52 +01:00
bccb7a11b5
restore defs-registry Unit test
2012-12-22 22:01:51 +01:00
a9600387ba
refactor defaults-manager to use the reworked query interface
2012-12-22 00:39:23 +01:00
5cddc57932
WIP extend query with a warpper for indexing and ordering
...
...to extract the syntetic ordering from
DefsRegistry and make that a responsibility
of the (internal) syntactic representation
of the query.
doesn't pass the compiler yet
2012-12-17 23:17:32 +01:00
1bde72cccf
implement another builder function; adapt OutputDesignation
2012-12-11 04:45:18 +01:00
602a04c4b5
factor out fequently used functions for ordinal numbers
2012-12-11 04:07:06 +01:00
08ff817afd
implement builder/accesor function; adapt StructFactory
2012-12-09 02:42:36 +01:00
8630e888a5
integrate (placeholder) query definition
...
effectively this joins the two existing lines
of "Query" classes into one systematic representation
Next step would be to move all mutation operations
over to the Query::Builder
2012-12-07 01:49:35 +01:00
5b2668a17c
generic query representation (placeholder)
...
...planned to be replaced later by a real
AST based implementation, which acutally
parses the query definitions
2012-12-03 00:41:57 +01:00
d306bb3cdf
fix includes
2012-12-03 00:18:18 +01:00
6c8bf1f9e4
bring the plain query utilities back into lib
2012-12-02 23:32:30 +01:00
a79ba2c507
refactor use of HashVal typedef ( #722 )
2012-12-02 23:03:37 +01:00
5292b19dd6
clean-up and finalise time::Mutation
2012-12-02 01:54:02 +01:00
3852c8f8e8
provide a time mutation for nudging based on symbolic grid reference
...
time handling is part of the library, while this
convenience shortcut relies on the Advice system,
which resides in the application lib.
To allow this kind of symbolic acces to a grid
entity defined "elesewhere", client code needs
to be linked against liblumieracore.so
2012-12-02 01:17:02 +01:00
5dfe5e099f
refactor namespaces for query and defaults manager
2012-12-01 08:44:07 +01:00
8ee8eb1e73
create a new integration point for using application services
...
especially this allows to use the Advice system
or the query resolvers from within library facilities
to refer to other implementation level services by name
2012-12-01 07:46:49 +01:00
626b1d4356
re-arrange query- rules- and resolver facilities within Core
...
the rules-based configuration and query system
will be located within the core application,
while the concrete implementation facilities
are expected to reside within the session or
maybe also the GUI.
This is kind of a 'rochade' refactoring to resolve
circular library dependencies and confine the parts
dependant on the session and MObjects to the Proc-Layer
And while we're in the middle of chainsaw surgery,
we'll concentrate further query-based facilities
alongside the config-rules within the App core.
2012-11-27 02:17:21 +01:00
dd8a88d095
adjustments and stubbing to get it past the compiler
2012-11-26 01:22:01 +01:00
b5a7055f29
move Query interface to Lib
2012-11-25 02:29:52 +01:00
baefd74ae7
prepare refactoring of the Query interface
2012-11-25 02:04:19 +01:00
62bfccd67b
cleanup: remove the old factory template
...
This template was a leftover from the early days
of Lumiera development and doesn't provide any
substantial value as an abstraction.
For the more intricate cases, we're using the
lib::MultiFact template, which allows to install
several "fabrication" functions at runtime
2012-10-14 01:30:08 +02:00
23cac22a9f
Sync Documentation
2012-10-10 06:14:58 +02:00
Michael Fisher
f7a7c1c416
GCC 4.7 compilation fixes. Now builds on debian wheezy beta2
2012-10-10 05:29:54 +02:00
Michael Fisher
e267e0ad0b
GCC 4.7 compilation fixes
...
clarify binding of function (by specifying 'this')
2012-10-10 05:25:42 +02:00
954ebefc4c
draft implementation of the PlanningStepGenerator
2012-10-10 05:20:24 +02:00
44435fd1db
clarify and settle the relation between Dispatcher and PlanningStepGenerator
...
the solution is to introduce a superinterface
and let Dispatcher augment that with the specific parts.
This way, the Job planning only has to rely on the
rather generic stuff (TimeAnchor, FrameCoord)
NOTE: this commit makes the whole JobPlanning machinery
compilable for the first time!
2012-10-10 05:20:23 +02:00
3300d00cc8
WIP working towards a solution for generating frame location sequences
...
..the Idea is to rely on some kind of service,
to break the cyclic dependency with the Dispatcher.
But I seem unable to find a natural location or
concept to house that service.
2012-10-10 05:20:23 +02:00
ce5b940d39
WIP consider how to seed the evaluation of a JobTicket
2012-10-10 05:20:23 +02:00
14e6086488
better do initialisation by ctor
2012-10-10 05:20:22 +02:00
30cf0b5718
implementation of JobTicket::ExplorationState
2012-10-10 05:20:22 +02:00
062e1bbdc1
explicate the JobPlanningSequence definition
...
..causing the compiler to instantiate the
involved templates, i.e. get the complete
pipeline definition through the compiler
2012-10-10 05:20:22 +02:00
b52a1a8366
refactor JobTicket to remove the double layering
...
basically we had two lines of doubly nested capsules, due to
using the IterAdaptor template. Actually, the evaluation stack
within JobTicket can be considered an implementation detail and
thus doesn't require an iterator interface; the intention is to
use this through JobPlanning solely.
Thus this reworking removes the special iterator within JobTicket,
but retains the idea of exposing the "current" JobTicket through
a smart pointer or operator->()
work done during the FrOSCon travel
2012-10-10 05:20:21 +02:00
66defdc0cb
refactor JobPlanning to encapsulate all state mechanics into a "state core"
...
especially the exploration stack is pushed down
first successful definition of all the JobPlanning classes
just the framework of classes necessary to pass the compiler;
all implementation is still stubbed
2012-10-10 05:20:21 +02:00
a3bc69cc77
maybe a breakthrough on the job planning design quest?
...
why the hell is getting this design about right
such a chellenging task. Anyway, seems to be the
first step ahead after numerous failed attempts
2012-10-10 05:20:21 +02:00
88f433f433
successfully implemented another combinator strategy
...
DOH!
this thime hopefully I've actually succeedd to
created what is actually required in the Dispatcher
2012-10-10 05:20:20 +02:00
e073d05f58
new header to define some class partially noncopyable
2012-10-10 05:20:20 +02:00
016a739a5c
WIP back to the original problem: how to dispatch jobs...
...
brainstorming how to implement the job planning stage
the idea is to built on top of the IterExplorer,
but have the "stack" of re-evaluation integrated
into a custom type, which exploits the static
node network structure to avoid heap allocations
solution idea: again use a builder function?
2012-10-10 05:20:20 +02:00
0e3821abeb
refatcor function meta programming headers
...
the template _Fun started as an internal helper
for function-closure, but seems to be of
general use. Thus move it into meta/function.hpp
(function-closure.hpp is heavyweight)
2012-10-10 05:20:19 +02:00
e6a105fbc1
iterator exploring monad finished, passes unit test
2012-10-10 05:20:19 +02:00
3d0d599158
get the depth-first exploration test to work
...
...using the IterQueue for intermediary results
2012-10-10 05:20:18 +02:00
2c33000346
complement IterStack by a similar wrapper for queue-like access
2012-10-10 05:20:18 +02:00
8ced6758fb
initial draft for recursive evaluating iterator monad
...
tricky design problem, because nothing is known about
the source and result sequences to be built.
2012-10-10 05:20:18 +02:00
59c5627bbe
change Implementation class for IterStack
...
now using a std::deque directly; this allows
for a later extension for queue-like behaviour
2012-10-10 05:20:18 +02:00
41180eb99c
rework to allow for recursive evaluation
...
this enables expansion of a (functional) data structure
until exhaustion -- which is what we need to
build job functors by traversing and expanding
an arbitrarily nested job definition structure
2012-10-10 05:20:17 +02:00
697924925c
pragmatic fix for the long-standing problem of detecting increment operator
...
our duck-detector had a shortcoming here and failed
to detect iterators, in case the increment operator
was inherited from a mix-in
2012-10-10 05:20:17 +02:00
8db5413199
implemented chained-iterators
...
...using the IterExplorer building blocks
2012-10-10 05:20:17 +02:00
d14b37a71d
utility class factored out and covered by test
...
...a stack which can be Lumiera-iterated
2012-10-10 05:20:16 +02:00
da4a343e9e
refactor IterExplorer to allow for more flexible strategy definition
2012-10-10 05:20:16 +02:00
dc3ebd4a8f
first working concept for an "iterator monad"
...
the intention is to use this to simplify
generating render jobs based on the elaborated
dependency network of the render nodes. The key
challenge is to overcome the necessity to
store partially done evaluations as
continuation
2012-10-10 05:20:16 +02:00
eedcd69941
draft the IterExplorer design
...
the tricky part seems to be how to combine the
source iterators into a new monad instance, while
keeping this "Combinator" Strategy configurable
...just passes the compiler, while still lacking
even the generic implementation of joining
together the source iterators
2012-10-10 05:20:16 +02:00
45f4c96c6f
change LinkedElements to us a more space efficient iterator
...
Actually we don't need any backreference to the
container for iterating a singly linked list
2012-10-10 05:20:15 +02:00
378ebe21f0
Fix naming of Iteration control API functions ( closes #410 )
...
comes in handy now, since IterStateWrapper uses a similar API
2012-10-10 05:20:15 +02:00
83a0f4b41f
Implementation (I) : IterStateWrapper as foundation (passing test)
2012-10-10 05:20:15 +02:00
ab2a6b2fce
WIP brainstorming about a monadic iterator
...
The idea is to avoid building a data structure
for intermediary results, while still being able
to process a variably sized and arbitrary shaped
set of source data
2012-10-10 05:20:15 +02:00
fa15a38016
draft JobTicket implementation datastructure
...
...but need an extension on our iterator helpers
to build a suitable functional datastructure
for generating Jobs.
2012-10-10 05:20:15 +02:00
3ef1fb7697
linked list helper template finished and passes test
2012-10-10 05:20:14 +02:00
c33fcf9797
WIP draft a linked list helper template
2012-10-10 05:20:14 +02:00
ddff8b654b
WIP investigating the relation of Jobs, JobTicket and Closure in detail
2012-10-10 05:20:14 +02:00
4ceec90b9e
design decision how to invoke a job
...
without any trickery, we'll always get two indirections.
Thus, the decision is to turn the 2nd indirection
into a VTable call; this way, basically the JobClosure
also acts as job functor itself.
2012-10-10 05:20:13 +02:00
0320bc4b2c
considering the relation of Job and JobClosure
2012-10-10 05:20:13 +02:00
bb43c03ef9
stub all the job generating functions required for the dispatcher interface
2012-10-10 05:20:13 +02:00
0ab773ab7c
helper to pull all elements from an iterator, yielding the last one
2012-10-10 05:20:13 +02:00
5222384f8b
try to circumvent ambiguity in overload resolution
...
we want to support various integral and rational factors
for linear chaining of time offsets
2012-10-10 05:20:13 +02:00
79bd8b71e3
better treat the building of a continuation job separately
2012-10-10 05:20:13 +02:00
08d266819d
re-read my own code and pick up the design work
...
..next question is: how to shape the dispatcher interface,
in order to support ongoing chunk wise planning
of new jobs, including a continuation
2012-10-10 05:20:13 +02:00
080d6913c6
fix a type converison problem
...
...better state explicitly we're requiring
a rational factor
2012-10-10 05:20:12 +02:00
7941865d5d
implement anchor against current system time
...
using CLOCK_REALTIME for now
2012-10-10 05:20:12 +02:00
9aec2a9806
allow for fractional scaling of time durations
...
implemented as extension to the linear combinations.
I decided to use the same "always floor" rule
as employed for time quantisation. Moreover,
we don't support floating point, only rationals
2012-10-10 05:20:12 +02:00
22322dfec4
refactor the division/quantisation helpers
...
...no need to keep them in util.hpp, as they
are used rather occasionally, while util.hpp
is used pervasively.
2012-10-10 05:20:12 +02:00
882bcf07ae
define stubs for accessing the wall clock time (->Backend)
2012-10-10 05:20:12 +02:00
aa01813f52
TimeAnchor: draft calculating the start delay for rendering
2012-10-10 05:20:12 +02:00
ee1450a81a
rectify frame dispatch invocation
2012-10-10 05:20:12 +02:00
393a447861
test setup: simulated build proecss results, mock model port
2012-10-10 05:20:12 +02:00
f8f011bb44
rework Job representation
...
make class Job a real subclass of the
job definition struct and turn the
JobClosure into a trampoline
2012-10-10 05:20:12 +02:00
0b25c2e08d
Fix: missing sanity check in ScopedCollection
...
funny enough this possible memory corruption
didn't happen in the unit test, because my
compiler optimised the additional int field
of class SubDummy, making it the same size
of the baseclass. Now matters should be safe.
2012-10-10 05:20:12 +02:00
1e54b5d3e6
stubbing some job functions
2012-10-10 05:20:11 +02:00
db68577b4a
clarify relation of Job, JobTicket and channel number
2012-10-10 05:20:11 +02:00
875342fa40
initial draft for the job representation
...
this draft is based on
- Cehteh's draft for the scheduler
- my plannings about segmentation and JobTicket
it defines "Job" as a closure which can be invoked
from plain-C, using the information in the
job descriptor datastructure
2012-10-10 05:20:11 +02:00
e9dbb3bdb1
stubs for some important components of play/engine (JobTicket...)
...
also touches the question how to represent the job
descriptor datastructure. @Cehteh: I've just pasted
in your preliminary data struct definitinons
from the relevant mailing list discussions.
2012-10-10 05:20:11 +02:00
568fadd526
draft some steps of the dispatch operation
2012-10-10 05:20:10 +02:00
6772e94994
implement simple constant frame timings descriptor
2012-10-10 05:20:10 +02:00
157e3b6867
test-driven brainstorming: define default timings...
2012-10-10 05:20:10 +02:00
2cb254365c
some musing about timing constraints and quantisation
2012-10-10 05:20:10 +02:00
a4e3383367
turn Dispatcher into an interface
2012-10-10 05:20:09 +02:00
e581246f63
forming some entities to support the dispatch step
2012-10-10 05:19:56 +02:00
3768791c76
considerations how to connect exit nodes to external outputs
2012-10-10 05:18:58 +02:00
288b737718
dummy playback: stub the required operations
2012-10-10 05:18:58 +02:00
2eb39704fc
test-driven brainstorming: how to use the dummy playback?
...
this is an idea how to test a test setup :)
2012-10-10 05:18:58 +02:00
7e7ecc5d51
draft: integrating an engine mock implementation
2012-10-10 05:18:58 +02:00
ec659b7141
a better way to inject the Render-Engine Mock
...
instead of (ab)using the Timings spect for a
runtime switch, better use the existing
MockInjector facility and thus turn the
mock engine mode into a global switch
2012-10-10 05:18:57 +02:00
24911dc990
solution to integrate an Engine Mock implementation
2012-10-10 05:18:57 +02:00
687102feb3
planning next steps: how to transform DummyPlayer into a real player
2012-10-10 05:18:57 +02:00
a8e4b57548
Comments and Doxygen improved
2012-08-25 19:20:05 +02:00
aa1eb2d7fc
integrate Odin's ALSA experiments into the Lumiera build
...
requires ALSA as build dependency
note: Debian package is libasound2-dev
2012-01-11 07:59:16 +01:00
d2f83523ca
join recent player subsystem work, SCons overhaul and documentation
2012-01-11 07:54:43 +01:00
Odin Omdal Hørthe
29394345af
ALSA audio output experiment
...
I think it's smart to rather use ALSA directly instead of PortAudio.
ALSA is push AFAIK, and talking about it here at the hackspace, seems
like the better choice. It's a bit lower level, but anyway everything
speaks ALSA anyway. It's not like there's any reason to use PortAudio
at all. It's just an extra abstraction.
Coding for ALSA it'll also work with Pulseaudio and esd. Do people
really use other sound systems than Pulseaudio, esd or plain ALSA?
I can't think of it.
I really the idea about building a small tool first. I'll do that.
Also thought about making a small blikning cursor/text output, and
syncing a BEEP-sound to that, so that I can test around with throwing
in lots and lots of latency between "me" and the video, and try to
sync it anyway.
I should be able to read back from the sound card (or pulse audio
underneath, it will just work with alsa as the abstraction) how long
it takes for the bytes I'm pushing to reach the speakers, and do some
buffer tuning on that.
2012-01-11 07:12:32 +01:00
56ac1afe18
move Icon building down into separate SConscript
2012-01-11 07:05:01 +01:00
27db94a64c
adjust code / indentation style
...
no functional change
2012-01-11 07:05:01 +01:00
e64a17d1ba
SConstruct: reduce the remaining defs
...
no need to use functions anymore, since
only the clean and phony targets are left
2012-01-11 07:05:00 +01:00
f84da63e11
use import/export instead of passing an artefacts map
2012-01-11 07:05:00 +01:00
25b21fe575
reorder building/installing of Icons
...
no need to define them together with the source.
SCons is able to work out the real dependencies
just fine. Thus, Icons remain in Main SConstruct
2012-01-11 07:05:00 +01:00
c62eccd25f
SCons overhaul/clean-up: disentangle main build
...
The goal is to make the build scrips more clear
at first sight. So move the main build targets
into a separate SConscript, to make them similar
to the tests, research and tools.
The final goal of this makeover is to reduce
the main SConstruct as much as possible
2012-01-11 07:05:00 +01:00
f5290a99a3
OutputSlot : simulated usage protocol passes unit test
...
OutputSlotProtocol_test
Some parts are still missing
- timings
_ initialisation
2012-01-08 03:06:32 +01:00
d732e7e211
Lumiera Forward Iterators: remove support for post-increment
2012-01-08 01:14:36 +01:00
8de4ecc8ac
add diagnostic messages showing each connection access
...
currently the problem seems to be we're
accessing the wrong connection...
2012-01-07 21:22:35 +01:00
73cfef69c8
fix some problems with OutputSlotProtocol_test
...
still WIP...
- there is a logical contradiction with the frame numbers
- somehow, in diagnostics, we access the wrong sequence instance
2012-01-07 06:40:21 +01:00
5cc034d26b
refactor ScopedCollection to use an init() function
2012-01-07 04:44:48 +01:00
e6888f7b83
supplement direct support for populating by member function
...
this turns out to be the typical usage scenario
for ScopedCollection: a manager object owning
the collection will populate it with specially
crafted components and invoke a member function
for creating the individual components.
This shortcut avoids using tr1::bind alltogether
2012-01-07 04:11:39 +01:00
9bba366763
investigate partial application of member functions
2012-01-07 03:28:12 +01:00
feff7537ef
reduce memory requirements for this test
...
...it caused out of memory frequently.
2012-01-07 03:27:31 +01:00
90e6dae2d5
add includes missing in some metaprogramming headers
...
types uint and string
2012-01-07 03:11:51 +01:00
00c08bd27b
fix helper functions not declared as inline
2012-01-07 03:11:02 +01:00
b64dff1ad8
spelling and comments
2012-01-07 00:02:03 +01:00
e41065101a
switch OutputSlot to use the ScopedCollection
...
..hehe, makes the code way more sane
2012-01-06 03:16:22 +01:00
e5c42e05e6
finish ScopedCollection ( closes #877 )
2012-01-05 23:17:16 +01:00
72e8d22454
implement the RAII-style collection ctor. test pass
2012-01-05 03:40:04 +01:00
434a371c33
take ctor args by value; test attaching sub-types passes
2012-01-04 04:28:14 +01:00
690304f9bc
get the simple and iteration unit tests to pass
2012-01-04 04:05:03 +01:00
fa5e7db2d3
WIP rewrite iteration-control logic...
2012-01-03 02:50:22 +01:00
6c01579a26
WIP draft implementation of ScopedCollection
2012-01-02 06:11:27 +01:00
e63fa6d646
Test-driven brainstorming: draft a ScopedCollection #877
2012-01-01 06:20:42 +01:00
f047069284
rearrange OutputSlot ConnectionStateManager
...
... shape the various APIs more clearly,
make most functions protected
2011-12-31 20:33:50 +01:00
06c7c27252
merge diagnostic facilities
2011-12-31 06:49:31 +01:00
37384f1b68
formatting wrapper/frontend: unit test pass.
...
Closes #166
2011-12-31 06:48:26 +01:00
e1b9b5b135
rewrite type selection logic to handle ptrs in the front-end
...
whew, quite a heavy rewrite, but greatly
simplifies the code and removes the necessity
to declare explicit specialisations of pointers
2011-12-31 06:48:11 +01:00
c8f46f47c9
handling of ptrs, first attempt
2011-12-31 06:47:58 +01:00
35ed2dcf5c
add more robust error handling
...
...incl handling of secondary errors
2011-12-31 06:47:38 +01:00
e838fb9799
document and cover various formatting special cases
2011-12-31 06:47:30 +01:00
0d136e2703
define explicit specialisations for primitive types
2011-12-31 06:47:03 +01:00
e054c272b6
research: detecting the possibility of a string conversion
...
find out about the corner cases of this
simplistic implementation
2011-12-31 06:46:50 +01:00
6c95c1b0e4
format-frontend: fill in missing bits of the implementation
2011-12-28 06:42:30 +01:00
dbb63ffc08
perfer STATIC_ASSERT to check for suitable placement-New buffer size
...
Still incomplete, but already this small change
detected an error in the output-designation. Cough.
2011-12-28 06:42:18 +01:00
cd3c633fc0
STATIC_ASSERT to verify guessed size
...
... and we indeed had an error: vector<bool>
is way larger than normal vectors!
2011-12-28 06:41:47 +01:00
962c789a05
a horrible hack to guess the size of boost::format
...
...without actually including the boost/format.hpp
This saves us a lot of compilation time and debug code size
2011-12-28 06:41:37 +01:00
ce6fbe5f0f
define how to pick the correct specialisation
...
some basic types are passed on directly;
for those, we use explicit specialisations
in the implementation file, and a traits template
to mark those cases in the header.
custom types with custom string conversion will
be converted to string; everything else
just becomes a type id
2011-12-27 07:45:25 +01:00
6e4883bcf1
add stub definitions to pass compilation
2011-12-27 07:45:16 +01:00
545d9ea82b
WIP draft frontend for diagnostic output ( #166 )
2011-12-27 07:45:07 +01:00
89928bc447
refactor format-util: simplify picking the right specialisation
2011-12-27 07:44:59 +01:00
50885a065b
move asside lib/format.hpp
...
...to make room for a new more specialised header
2011-12-27 07:44:49 +01:00
24a8d6a926
generalised diagnostic context passes unit test
2011-12-24 05:57:28 +01:00
5498ace9fc
WIP define a unit-test for diagnostic context stack
2011-12-24 05:57:11 +01:00
87f7a8f6e8
unit test to cover thread-local helper
2011-12-24 05:55:31 +01:00
2bdf06829a
make thread(pool) less chatty
2011-12-24 05:48:51 +01:00
451b0abec5
spelling and typos
2011-12-24 05:48:31 +01:00
d27e3b15a9
clarify the handling of specific output operation modes (e.g. number of channels)
2011-12-23 02:22:38 +01:00
7fc8473337
fix some size_t printf specs (32/64bit problem)
2011-12-19 03:02:48 +01:00
fa0588b584
refactor to simplify generating a PlayProcess
2011-12-18 02:02:55 +01:00
c4bc53b6f6
how to pass a render configuration strategy when creating a new play process
2011-12-17 22:37:53 +01:00
6852a6feff
WIP refactor building of the active render feeds
...
RenderConfigurator becomes an internal strategy
controlled by the PlayService
2011-12-17 04:45:42 +01:00
bda0dea990
clarify the relation of PlayProcess, CalcStream and EngineFacade
2011-12-17 02:20:48 +01:00
76b24ce50d
WIP draft the building of a render CalculationStream
2011-12-10 03:18:48 +01:00
8362145039
spelling and comments
2011-12-10 03:13:45 +01:00
477b443191
implement diagnostic OutputSlot simple frame tracking
...
...should be enough to run tests against the OutputSlot interface
2011-12-09 01:03:02 +01:00
e7ae9a3082
introduce marker time values to designate corner cases
2011-12-09 01:00:50 +01:00
aef3d50ffd
implement basics of the diagnostic OutputSlot
...
...specific diagnostic facilities still lacking
2011-12-08 23:02:19 +01:00
07002ab3af
SCons: new build target for experimental code
2011-12-03 06:10:12 +01:00
34f2de641f
Remove Debian/Lenny workarounds
...
definitively requiring Squeeze now
2011-12-03 03:18:15 +01:00
77548e74c6
document a weakness of boost::hash for strings
2011-12-03 03:18:03 +01:00
7fd28e23eb
cleanup configflags to use uint instead of char
...
using char for those flag template parameters
was never a good idea. It won't save us any space
and makes debugging harder
2011-12-03 03:16:08 +01:00
d9f84a9bfd
clean up lib/meta namespaces
2011-12-03 03:15:59 +01:00
b2d6074097
cleanup test includes
2011-12-02 21:34:29 +01:00
b9d1899486
cleanup: rectify Proc-Layer namespaces (II)
2011-12-02 17:50:44 +01:00
eb79a00cf4
cleanup: rectify Proc-Layer namespaces (I)
2011-12-02 16:10:03 +01:00
89a9202c6c
cleanup: remove precompiled headers
...
we don't need them and they even tend to
increase build times due to unnecessary
compound-includes at some core headers
2011-12-01 23:32:34 +01:00
c7d4412cec
integrate recent GUI / timeline and work done on the player subsystem
2011-11-27 02:15:11 +01:00
d6fa67f2b8
refactor zoom smothing into TimelineViewWindow
2011-11-27 01:28:48 +01:00
a6392f5d14
review and annotate design aspects regarding zoom handling
2011-11-27 00:52:10 +01:00
d58fa9129c
clean-up: remove direct access to the selection value
2011-11-26 23:32:56 +01:00
177b85ecf2
Integrate timeline work: zooming and scaling
2011-11-26 18:39:26 +01:00
7ba8ff432f
BufferProvider interface finished thus far.
...
simulated lifecycle passes unit test
2011-11-26 00:09:59 +01:00
2fce2b1c8d
make ctor-tracking test::Dummy more widely usable
2011-11-25 22:05:12 +01:00
55a77bdd73
factor out and treat the attaching of objects separately
...
this is an advanced feature not required
in the standard buffer usage cycle
2011-11-25 20:23:31 +01:00
ce25be6fa3
refactor relation of BuffHandle and BufferDescriptor
...
they are now tightly coupled and assumed to
work together; there is no need to relay half
of BuffHandle's interface through BufferDescriptor
2011-11-25 18:20:01 +01:00
d6b069fbbd
clean-up after refactoring
2011-11-25 17:29:06 +01:00
eed6d8cd1e
split out obsolete ChannelDescriptor for later refactoring
...
Meanwhile, BuffHanle became way more concrete,
making the separation of any kind of buffer or channel
type management concievable.
Thus: extract the obsolete ChannelDescriptor
and use switch at any location where the old
(superseeded) buffer handle is still referred
2011-11-25 17:16:33 +01:00
74702ebecd
address the next test...
2011-11-24 03:33:23 +01:00
2ae1e3c8f9
test/dummy buffer provider finished and passes test
2011-11-21 03:26:08 +01:00
d6de8c8d1a
implement some missing nits and bits
2011-11-21 02:28:44 +01:00
91b74ad7bd
implement missing parts of test/dummy buffer provider
2011-11-20 01:35:52 +01:00
0a1256f4e3
cover and verify detaching from ScopedPtrVect
2011-11-19 21:41:50 +01:00
13b795016b
comment rewording
2011-11-19 18:01:48 +01:00
3830ff7ce1
refactor the test/dummy provider, based on ScopedPtrVect solely
...
instead of using a vector directy, move the
additionally required functinoality in the
utility class. This forced me to adjust
the IterAdapter, to allow working with
STL algorithms
2011-11-19 17:51:08 +01:00
5947e0e3e1
allow to detach an object managed by ScopedPtrVect
2011-11-19 17:48:04 +01:00
1f966a02ec
some rather tricky adjustments to PtrDerefIter
...
...allowing to use that custom iterator together
with STL algorithms
2011-11-19 17:46:24 +01:00
ca689ae5e0
WIP some musing about building an option monad
2011-11-18 01:24:43 +01:00
27449c1438
implementation details of a test/dummy provider
2011-11-18 01:23:50 +01:00
623bb401af
clarify implementation extension points of BufferProvider
...
decide especially how to pass on the implementation
defined data like e.g. pointers to storage extents
2011-11-15 04:47:31 +01:00
d1d0f66fa8
allow LocalKey to carry arbitrary pointers or hashes as payload
...
...used to piggyback opaque implementation data,
deliberately no typecheck here
2011-11-15 04:46:00 +01:00
6bc94cccb5
WIP refactor BufferProvider public and protected API
2011-11-14 01:43:29 +01:00
890b6e8366
WIP implementation details of diagnostic BufferProvider
2011-11-13 04:20:14 +01:00
ca0aa23479
BufferProvider default impl: attaching a type
2011-11-12 00:36:53 +01:00
fd94367b9e
stubs and changes to make the test compile
2011-11-11 23:33:59 +01:00
fe1ae51b49
WIP draft test for internal test buffer provider
...
a test to cover a helper for writing tests ;-)
2011-11-11 01:44:01 +01:00
f75e55a060
nail down a lot of OutputSlot implementation details
2011-11-08 02:59:56 +01:00
59dfb7c660
start drafting a (dummy) output slot implementation
...
this implicates a first attempt to build a
dummy buffer provider implementation.
Mostly just defining stubs here....
2011-11-07 01:57:33 +01:00
c8458ab397
improved diagnostics
2011-11-07 00:50:03 +01:00
a88ccd219d
extract the diagnostic BufferProvider into separate header
2011-11-07 00:07:53 +01:00
7ab7c8073d
remold OutputSlot implementation structure
...
Better solution where to place the extension points
to be implemented by concrete output systems
2011-11-06 02:37:22 +01:00
63dbc89b6f
draft implementation setup for OutputSlot baseclass
2011-11-05 16:51:24 +01:00
d6e88c85e0
finish buffer metadata; cover state transitions
...
BufferMetadata complete and working for now
2011-11-02 01:34:05 +01:00
db3ea6638d
use boost::random to ensure distinct test frame contents
2011-11-01 03:11:43 +01:00
931dc3f883
draft: automatically invoke an attached ctor/dtor functor
2011-10-30 05:35:36 +01:00
ccd130966b
finish and pass the first round of tests
...
still missing:
- implementation of a Mock frame
- automatical invocation of the TypeHandler
2011-10-30 02:19:10 +02:00
e7f0211711
better solution for calculating the Key for a concrete Entry
2011-10-30 01:17:31 +02:00
f849ca62d9
implement metadata storage (hash)table
...
not passing all tests yet
2011-10-29 02:41:56 +02:00
c91e703682
rename the core type BufferMetadata
...
makes the purpose more clear, and moreover
it matches the header filename
2011-10-28 01:18:22 +02:00
c8cdf914eb
review metadata storage, stub the actual access operations
2011-10-28 01:11:39 +02:00
9af0fb096f
WIP draft implementation of buffer metadata creation/storage
2011-10-24 02:14:08 +02:00
c4ff87c3a8
decide about the basic way to implement concrete buffer metadata
2011-10-24 01:03:56 +02:00
76a6407a5e
better formulation for the buffer metadata state machine
2011-10-23 22:07:39 +02:00
Michael R. Fisher
65a29244af
The tool also needs updated on TimelineState Change
2011-10-23 09:52:12 -05:00
Michael R. Fisher
1bb584f895
Removed some TODO's
2011-10-23 04:52:30 -05:00
Michael R. Fisher
0aa3ca76d1
Created and Applied TimelineWidget::ZoomSmoothing
2011-10-23 04:45:10 -05:00
Michael R. Fisher
6c17d06e66
Timeline is no longer zoomed in to far on startup. See timline-view-window.hpp int64_t timeScale for explanation
2011-10-23 04:20:39 -05:00
Michael R. Fisher
b87b6078ad
Adding TimeSpan param to SelectionListener's signal
2011-10-23 00:20:48 -05:00
Michael R. Fisher
3811183546
Added SelectionListener handling selection changing events
2011-10-22 21:53:23 -05:00
Michael R. Fisher
8ff36fc209
Timeline selection is now controlled by lib::time::Control
2011-10-22 20:27:29 -05:00
9c04637aea
fix misspelling in library
2011-10-23 02:44:52 +02:00
0378f9266e
fix misspelling in library
2011-10-23 02:42:25 +02:00
4acc9d247a
maybe fix: try to connect the selection control the other way round
2011-10-23 02:41:57 +02:00
Michael R. Fisher
c9671b654e
time::Control Integration First Commit
2011-10-22 19:03:17 -05:00
Michael R. Fisher
ca634bdd9c
House Cleaning
2011-10-22 22:14:48 +02:00
Michael R. Fisher
6046749f19
Integrating time::Control into ibeam tool.
2011-10-22 21:48:57 +02:00
b39edad306
clean-up some additional mentions of boost::ref
2011-10-22 21:45:59 +02:00
4f1d7e1d3f
clean-up GUI includes. Solving problems with tr1::ref vs. boost::ref
2011-10-22 21:45:52 +02:00
606251749e
fix time::Control should properly include <tr1/functional>
2011-10-22 21:45:40 +02:00
2730fa8d7a
a bit of stylistic cleanup
...
- using std::tr1::shared_ptr in namespace gui
- thus removing a lot of std::tr1 qualifications
- fix some includes. Should be relative to 'src'
- interface classes should declare a virtual dtor!
2011-10-22 02:49:30 +02:00
Michael R. Fisher
c9a0209a0b
Fix ParentTrack: using std::tr1::enable_shared_from_this
2011-10-22 01:35:45 +02:00
Michael R. Fisher
9a1987ba24
Ticket #796 : Switch GUI from boost::shared_ptr to std::tr1::shared_ptr.
...
ParentTrack and TimelineLayoutHelper need to be fixed
2011-10-22 01:26:24 +02:00
d48dc3b025
fix glitch in test definition
...
uncovered since rand() is now properly seeded
prior to each testsuite run
2011-10-21 02:41:20 +02:00
65b309e5cb
Testsuite: automatically seed the random number generator
2011-10-21 01:09:12 +02:00
f1a4489470
Fix minor problems after merge
2011-10-21 00:58:15 +02:00
c06c49e782
Join latest GUI addions (zoom slider) and player design/implementation work
2011-10-20 04:29:14 +02:00
ca0ae9c120
stubbed relevant parts of BufferProvider and OutputSlot
2011-10-19 02:47:11 +02:00
991eec8185
draft test to simulate a complete buffer metadata usage cycle
2011-10-17 02:00:48 +02:00
1772659a00
start implementing buffer metadata records
2011-10-16 00:06:57 +02:00
011afa4be8
fix: ubiquitous constant defined in header
...
..resulting in that global constant being allocated a gazillion times
2011-10-15 23:41:31 +02:00
3d859c8b53
buffer metadata hash keys implemented and tested thus far
2011-10-15 22:46:08 +02:00
28c555aac7
define a type handler for attach an object to a buffer
2011-10-15 05:05:30 +02:00
2c380b5f99
draft a dedicated test for buffer metadata keys
2011-10-15 04:12:51 +02:00
1627698911
implement hash function for functor obejects. Unit-test pass
2011-10-14 14:49:55 +02:00
6baadbaef0
draft a workaround for hashing functor objects
2011-10-14 03:54:22 +02:00
3256b7fe11
implementing the hash functions for the buffer metadata content fields
2011-10-12 03:47:34 +02:00
Michael R. Fisher
f851c875ed
Zoom Slider Position remains after a sequence change
2011-10-11 14:39:20 -05:00
63ba43d446
fix: TimelineBody not zooming was due to this omission in my change
...
silly me!
2011-10-11 01:24:39 +02:00
Michael R. Fisher
d1f07d7088
TimelineBody Is Zooming again now
2011-10-10 18:01:10 -05:00
Michael R. Fisher
540357de9f
Comments added
2011-10-09 21:00:31 -05:00
Michael R. Fisher
91cc3f90a0
TimelineZoomScale::on_timeline_state_changed method implemented. Other timeline components need fixing now (seems only the ruler is zooming now)
2011-10-09 20:54:55 -05:00
fb28592082
more cleanup: use the propagated timelineState directly
2011-10-10 01:42:03 +02:00
5fe1debd5b
ZoomScale: rely on the state change signal for the view window
2011-10-10 01:07:10 +02:00
5905fdf0cb
change definition of TimelineStateChangeSignal
...
the timeline-state-change signal now delivers
the new TimelineState object immediately, instead
of requiring the listeners to pick it up
2011-10-10 00:08:50 +02:00
Michael R. Fisher
357bfaa674
Added pointer to TimelineViewWindow in TimelineZoomScroll
2011-10-09 15:34:21 -05:00
2477f2e682
outline of building a hierarchy of hash keys for buffer metadata
2011-10-09 16:03:51 +02:00
d9f64c94bf
simple demo using a pointer and a struct
2011-10-09 14:52:58 +02:00
7ea9afd1bb
first attempt to implement buffer metadata...
...
...leading to refactoring
2011-10-09 04:20:56 +02:00
3acf804988
flesh out the buffer metadata API
...
functionality just stubbed still
2011-10-08 02:21:29 +02:00
caace00dd5
Review the new TimelineZoomScale widget code
2011-10-07 03:49:51 +02:00
Michael R. Fisher
e0463da204
Added TimelineZoomScale widget
2011-10-06 22:58:50 +02:00
Michael R. Fisher
c79b28fe7c
Replacing zoomIn and zoomOut buttons in the TimelinePanel with a new TimelineZoomScale widget
2011-10-06 22:49:20 +02:00
4df45c44e9
BufferMetadata: some musing about how to access the Allocator
2011-10-06 21:55:00 +02:00
7459c0a41f
(cont) buffer metadate implementation
...
state transitions etc
2011-09-26 02:19:31 +02:00
f505c46d1d
finish simple allocator frontend. Unit-test pass
2011-09-25 19:26:12 +02:00
5350ef6dbe
split off and test-cover simple typelist utils
...
these simple utils (length of typelist, maximum size
containment test) are mostly not used in conjunction
with the more elaborate typelist manipulatino utils.
Moreover, we lacked a dedicated unit test
2011-09-25 19:26:11 +02:00
057f32e15b
rename the typelist-manipulation header
2011-09-25 19:26:09 +02:00
db2b02f0c5
define a front-end for explicit allocations
...
...currently just defined by forwarding
to std::allocator
2011-09-25 19:26:09 +02:00
bc756e42d9
rewrite (planned) test to reflect the new metadata design
2011-09-25 19:26:09 +02:00
1ea3cba2f5
remold the buffer metadata into a PImple used by BufferProvider
2011-09-25 19:26:08 +02:00
8a2c94014c
extract buffer metadata handling into separate entity
2011-09-25 19:26:08 +02:00
7ef85065ba
impl: buffer provider metadata...
2011-09-25 19:26:08 +02:00
5b6ecbab1c
start diagnostic buffer provider implementation
2011-09-25 19:26:07 +02:00
cafe271830
stubbing of basic buffer provider functionality
2011-09-25 19:26:07 +02:00
ca615b9933
start stubbing some of the functionality planned thus far
2011-09-25 19:26:07 +02:00
32f71cba6d
more test-driven brainstorming
2011-09-25 19:26:06 +02:00
e1248d195a
move asside obsoleted code
...
...will be removed soon, when reworking ProcNode
2011-09-25 19:26:05 +02:00
1f13931640
test driven brainstorming: using a BufferProvider
2011-09-25 19:26:05 +02:00
8016547d9c
rework and clarify node invocation sequence
...
while passing by, identified quite some
node invocation code to be rewritten
2011-09-25 19:26:05 +02:00
95bb5e64aa
WIP desiging the interplay of BufferProvider and BuffHandle
2011-09-25 19:26:05 +02:00
0706b83a46
fix a warning
2011-09-25 19:26:04 +02:00
d1a5b9a914
main: temporarily disable dependencies...
...
disable dependency declarations for subsystems
not yet implemented, to allow the lumiera executable
to start up
2011-09-25 19:26:04 +02:00
7efde06569
some stubs to make it compile...
2011-09-25 19:26:03 +02:00
737765260d
Test-driven brainstorming: diagnostic adaptor for the engine
2011-09-25 19:26:03 +02:00
3125d1c573
a first draft for the Engine Interface
2011-09-25 19:26:03 +02:00
d1b6f7a57b
polymorphic value builder functions: how to take arguments
...
Previously, I've added an additional '&' to be able
to pass references without much ado. This turned out
to be problematic when using constant values at the
invocation site. Well. C++ has really a fixation
ont passing things by value. This is fine, but
doesn't play so well at times when passing smart-ptrs
or similar ref-counting stuff, especially when we just
want to *use* the handle, not store it away.
Essentially the same situation as with for_each
Bottom line: from now on, we need to state the
template parameter for such arguments explicitly,
or just accept the overhead of creating an additional
transient copy of the smart-ptr.
2011-09-25 19:26:03 +02:00
1e7da409bb
Fix logic error uncovered by GCC 4.4
...
benefits of using a newer compiler, yay!
Explanation: the Link<...> template combines
various policy templates and exposes a set
of functions, which can be bound as functor
into an concrete time::Control instance.
Actually, we need to mix in only the Mutation
baseclass, because we just want to inherit
the privilege to change time values, which
are otherwise immutable. We don't need to
mix in the Mutator template anymore (this
was a leftover from an earlier design)
2011-09-25 19:26:02 +02:00
4a62444ad4
WIP pick up on the design work regarding Engine, OutputSlot and Player
2011-09-25 19:26:02 +02:00
f8842c75ed
WIP draft OutputSlot internal transitions
2011-09-25 19:26:01 +02:00
7adb8149db
back to test-driven brainstorming again
2011-09-25 19:26:00 +02:00
a199bff92b
BufferProvider as a frontend to buffer management
2011-09-25 19:26:00 +02:00
650e73c454
OutputSlot: draft buffer handover protocol, remove the diferent models
2011-09-25 19:25:59 +02:00
f46cc26851
factor out convenience shortcut
...
transform iterator and wrap result into IterSource
2011-09-25 19:25:59 +02:00
585adb88b6
Refactoring: use the output Feed as intermediary construction step
2011-09-25 19:25:58 +02:00
511d08adad
WIP: bilding a PlayProcess...
2011-09-25 19:25:58 +02:00
9e53053944
WIP: draft building a PlayProcess
2011-09-25 19:25:58 +02:00
dea1fa57a2
draft play process structure; clarify handling of multiple channels
2011-09-25 19:25:58 +02:00
a19562942c
further considerations regarding output and output slots
2011-09-25 19:25:57 +02:00
4ece135257
cont.. drafting OutputSlot
2011-09-25 19:25:56 +02:00
ce6a917b59
first draft spec for the OutputSlot
2011-09-25 19:25:56 +02:00
a379476414
create outline of PlayService, add stubs for Play::Controller
2011-09-25 19:25:56 +02:00
1b0cb56dcc
implement PlayOut subsystem and draft OutputDirector
2011-09-25 19:25:55 +02:00
971dea6f6a
PlayService: basic definition and link to facade
2011-09-25 19:25:55 +02:00
2099ecbcac
finish and comment the new time::Control facility
2011-09-25 19:25:55 +02:00
f4d0d23e48
clean up leftovers from the first implementation attempts
2011-09-25 19:25:54 +02:00
fec2d25b52
additional quantisation and duration canges covered and passing test
2011-09-25 19:25:54 +02:00
15a3694cca
more complete unit test pass
2011-09-25 19:25:54 +02:00
b54cd2c722
cont. defining time::Control special cases
...
the refactoring seems to work out OK, was able
to cover all the cases defined thus far....
2011-09-25 19:25:53 +02:00
9bd96a1b19
time-entities refactoring: Duration isn't an Offset
...
removed that inheritance relation; it was a typical
example of abusing inheritance and violated the
Liscov substitution principle. It is sufficient
to allow promotion of an offset into a Duration.
Note: Duration is the time metric
2011-09-25 19:25:53 +02:00
7c5f18643b
cont. reworking based on that idea; refactor mutation base cases
2011-09-25 19:25:53 +02:00
d39ae8afc6
idea for better organisation of the template specialisations
2011-09-25 19:25:53 +02:00
a8fd0bf7c5
better avoid throwing and use a default time grid in some cases
2011-09-25 19:25:53 +02:00
47afbbeab0
first attempt towards covering the various special cases
...
the intention is to generate most combinations from
generic template cases, but to define the difficult
cases by explicit specialisation
2011-09-25 19:25:53 +02:00
eed2b0f320
time::Control simple unit test pass
2011-09-25 19:25:52 +02:00
c96cd66688
draft implementation for time change and propagation
2011-09-25 19:25:52 +02:00
27533c3bb9
WIP darft usage for the new time::Control (life change) element
2011-09-25 19:25:52 +02:00
5e8a9b50d1
define asset::Viewer
2011-09-25 19:25:52 +02:00
b25d85e1dd
ProcNode hierarchy cleanup
2011-09-25 19:25:52 +02:00
ae36b2d941
stubs and adjustments to get it through the compiler
2011-09-25 19:25:52 +02:00
786ecbe829
WIP draft test helper for generating test cases (Cartesian product)
2011-09-25 19:25:51 +02:00
eb5e0ab9ff
WIP: start building a Test for time::Control. Need Cartesian product of cases...
2011-09-25 19:25:51 +02:00
9004818d63
further planning the features of time::Change
2011-09-25 19:25:51 +02:00
4731afefb8
continue drafting the Player control elements -- life timevalue changes
2011-09-25 19:25:50 +02:00
c091b8e260
define Player / Output subsystem stub
2011-09-25 19:25:50 +02:00
20f95ca26f
draft the player facade interface
2011-09-25 19:25:50 +02:00
cb6453afe1
detailed planning how to build the player subsystem
...
key idea is to grow and rework the design of the
DummyPlayer to yield the full featured Player
2011-09-25 19:25:49 +02:00
899ffa60ca
WIP create (planned) new entities for the player subsystem
2011-09-25 19:25:49 +02:00
4a53ef4cd0
Clean-up: change some long standing TODOs into tickets
...
makes the test logs way more readable
Believe me: no one will ever notice a "TODO"
entry in the logs, when it showed up for
more than some months.
Thus I've created some new tickets, mostly
tagged as "QA" and placed the ticket number
at the corresponding locations in the source
2011-09-25 19:16:33 +02:00
Stefan Kangas
e34bb5ead1
Fix autotool build again, still fails on setup.ini
2011-09-15 04:35:08 +02:00
e103b4d8aa
SCons: fix error in linking executables
...
a long standing error, uncovered recently due to more stringent
checks of the linker on newer platforms, not picking up direct
dependencies of an executable transitively from the linked-to
dynamic libs (which is fine).
The error was to *overwrite* the LIBS construction variable
in the definition of the executable to link, instead of just
adding our dynamic links to the sources to be linked.
2011-07-25 00:36:53 +02:00
49d5a9592a
Fix drop-frame: remove float framerate
2011-05-21 07:09:22 +02:00
36cfaaa14d
REVERT tmpbuf implementation to the state of July.2010 ( bc989dab)
...
The new implementation provides differentiated buffers,
but is still buggy and causes double free alarms on shutdown
See Ticket #683
2011-05-21 06:52:39 +02:00
2dde33ec42
remove unecessary double calls to lumiera_config_destroy()
...
config system is initialised and closed automatically
2011-05-21 06:52:25 +02:00
1aafb07a43
fix remaining issues turned up by switching the time handling
2011-05-20 03:39:07 +02:00
51fa9fe735
MediaFactory now using MediaAccessFacade to determine media Duration
2011-05-20 02:59:29 +02:00
12f43078a2
fix some names
2011-05-20 02:17:20 +02:00
4b4fcb0c80
use (and verify) this with the MediaAccessMock_test
2011-05-20 02:02:14 +02:00
e5e6264493
technique to install a mock service temporarily
2011-05-19 23:21:50 +02:00
a207a9f003
adapt Media-Access (+Mock) to include an overall Duration
2011-05-18 01:37:33 +02:00
7656e5d500
adapt GUI to use the new Time framework
2011-05-16 08:38:01 +02:00
042598f04c
adapt Core + Proc to use the new Time framework
2011-05-16 08:37:36 +02:00
ef126283eb
add symbolic constant for "neutral" time.
...
Note: it's rather arbitrary choosen,
because any time grid can define its own origin.
You must not assume that the origin of any time axis
is located at Time::ZERO !!
2011-05-16 04:37:03 +02:00
481875a78a
add check for time point contained in TimeSpan
2011-05-16 04:02:26 +02:00
b9861ef88f
WIP completely remove the old Time wrapper
2011-05-15 22:51:02 +02:00
ee5c9910e1
dry-run: switch the lumitime-test.cpp to use the new Time framework
2011-05-15 22:10:26 +02:00
99bf3c6d81
join with latest work on timecodes and frame quantisation
...
Merge branch 'timequant' into gui
2011-05-15 04:28:20 +02:00
4bf53bba0f
code unit test to demonstrate full time/timecode usage cycle
2011-05-15 04:19:27 +02:00
f85c86d6c8
parsing fractional seconds: unit test pass
2011-05-15 04:19:27 +02:00
c7bb7154a7
draft a test to cover parsing of timecode values
2011-05-15 04:19:27 +02:00
6b1b6cb805
draft how to integrate parsing of timecode formats
2011-05-15 04:19:27 +02:00
3139fb7f1e
more 64/32bit fun
2011-05-15 04:19:27 +02:00
10215948a5
Fix another 64/32bit loss-of-precision problem
2011-05-15 04:19:26 +02:00
ccd40c3fee
better use a dedicated 'materialise' operation on the Quantiser
2011-05-15 04:19:26 +02:00
80f7dba334
WIP some comments and considerations
2011-05-15 04:19:26 +02:00
11137f7634
provide implementation of the nudge-Mutation
2011-05-15 04:19:26 +02:00
af1561068e
definitions and stubs to make it compile
2011-05-15 04:19:26 +02:00
bf61ff7248
WIP test-driven brainstorming: nudge by grid
2011-05-15 04:19:26 +02:00
2035405251
add time Mutation to adjust by offset
2011-05-15 04:19:26 +02:00
baf601c16b
first time mutation test cases pass
2011-05-15 04:19:25 +02:00
5851332628
back to business: now able to implement time mutation messages
2011-05-15 04:19:25 +02:00
6fa11ffcf6
special case: support cloning, but not copy
...
needed to add yet another policy template,
so PolymorphicValue doesn't invoke the
assignment operator in such cases
2011-05-15 04:19:25 +02:00
6daf14211b
Finish the PolymorphicValue support template
2011-05-15 04:19:25 +02:00
710ae8fa0f
Allow for improved performance in special cases
...
Using a policy based switch in case the client
interface collaborates and provides copy operations;
in this case, a direct static downcast instead of
the expensive indirect (dynamic) cast to the
management interface can be employed.
2011-05-15 04:19:25 +02:00
9aa601d004
WIP first implementation version of PolymorphicValue holder template
2011-05-15 04:19:25 +02:00
eb733df1bb
proof-of-concept: implement simple mutation
2011-05-15 04:19:24 +02:00
4d6bb3d54c
design outline for a limited time::Mutation capability
2011-05-15 04:19:24 +02:00
9364d717b0
implement total order on time intervals
2011-05-15 04:19:24 +02:00
9eb4f66372
draft more convenience handling for TimeSpan
2011-05-15 04:19:24 +02:00
eafbd4b1cb
fix a comment
2011-05-15 04:19:22 +02:00
Christian Thaeter
d4bb6cc906
fnv hash functions and tools
2011-04-29 04:04:01 +02:00
Christian Thaeter
e6cc7d3f99
WIP: autotools catchup, make it build again
...
Lumiera builds again, but some tests are missing and the new setup.ini
isn't loaded correctly which makes the plugin loader fail.
2011-04-28 13:14:29 +02:00
1e1c3706dc
update some DIR_INFO entries
2011-04-05 00:44:30 +02:00
b843546922
cumulated build/release fixes
...
up to corresponding debian/0.pre.01-3
- compile issue (digxel.hpp)
- SCons missing config dependency on test-only
- 32/64bit fixes
2011-03-31 18:43:50 +02:00
dca5b81710
Fix: problems whith bare $ORIGIN without relative dir
...
actually the iterator was written quite contrieved;
now doing the token replacement as a separate first
step -- makes matters way simpler
2011-02-15 00:16:50 +01:00
aef929b3d9
better install the setup.ini direcly into $ORIGIN
...
seems to be the most obvious location to install it
2011-02-14 23:54:31 +01:00
cef1ff3dcc
Fix: extract empty path relative to $ORIGIN
2011-02-14 23:54:30 +01:00
65d28b4018
Gui: rework resource loading to make the application fully relocatable
2011-02-07 09:56:27 +01:00
87c70d0b1f
Gui: some typedefs for Glib::ustring
...
...helps to write way shorter signatures
2011-02-07 09:56:08 +01:00
421a81b25b
Gui: WindowManager and GtkLumiera refactoring
...
- split off the tricky basic GTKmm includes
- reduce the clutter in the gtk-lumiera.header
- make GtkLumiera a singleton, placed into static memory
- remove all static functions from WindowManager
2011-02-07 09:55:57 +01:00
29e67e828d
remove NoBug resourcetracker and switch back to plain pthreads
...
due to desing shortcomings, the resourcetracker
produces lots of false positives and inhibits
any further diagnostics regarding GUI startup.
2011-02-07 09:55:39 +01:00
88678209bc
use setup.ini to retrieve the modulepath and configpath
...
connect config-facade with the new BasicSetup implementation
to fetch values from setup.ini, instead of the (not implemented)
Config-system. Hook this new lookup mechanism into the
plugin loader to retrieve the search path from there
2011-02-06 05:06:16 +01:00
87475fa3c1
Fix usage of field named "new" in configitem.h
...
This prevents including config.h into C++ code
2011-02-06 02:39:34 +01:00
11d709b85e
incorporate basic setup.ini into the AppState object
2011-02-06 02:12:00 +01:00
e84ceec9b5
refactor some lib facilities
...
- Cmdline into namespace lib
- test coverage for the SearchPath iterator
2011-02-05 23:53:37 +01:00
e73bea379c
Adjust some Copyright headers
...
List of years instead of a range is better
2011-02-05 20:56:51 +01:00
ad246ad31d
Merge Buildsystem adaptations for installing Lumiera
...
- use custom builders
- clean up specification of target paths
- generated executable is fully relocatable
- read a bootstrap INI instead of compiled in searchpath
2011-02-05 15:54:24 +01:00
51ef755a4f
Merge Timehandling draft and GUI DrawStrategy and TimelineEntiy refactorings
...
Merge branch 'gui' into install
2011-02-05 14:30:11 +01:00
babbe33d1d
Demonstration of complete bootstrap, loading INI and resolving GUI module path
2011-02-04 16:10:59 +01:00
a42e6a5a8f
draft solution loading an INI file for module path resolution
...
this would remove the need to compile any path into the EXE
2011-02-03 17:34:24 +01:00
208b552955
Demonstration how the application could resolve the module loading location
...
The real application likely will consult the configuration file
to search alternative module installation locations.
2011-02-01 05:10:45 +01:00
29e2233e6a
an exercise: how to get the path of the current executable
...
Note: this is a non-portable Linux solution
2011-01-31 05:35:43 +01:00
abf1bc776b
SCons: remove all explicit target and install specifications
...
now superfluous, because our custom builder handles that automatically
2011-01-30 18:56:51 +01:00
609873d90b
switch to use the new (better) builder implementation
...
especially this means to use the common well-known names again,
like "Program" "SharedLibrary". The customisation now happens
invisible in LumieraEnvironment.
2011-01-30 17:00:15 +01:00
014c22b40a
SCons: rework build directory configuration. All customisations to LuimieraEnvironment
2011-01-30 15:27:21 +01:00
35953b335b
SCons: rearrange output directory to target/modules
2011-01-29 02:06:21 +01:00
764a38abe6
SCons: experimental support for some library lookup concerns
...
- setting -rpath with $ORIGIN to build a relocatable package
- fix missing DT_SONAME (likely just a problem of very old SCons version)
2011-01-28 23:31:00 +01:00
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