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