Commit graph

2813 commits

Author SHA1 Message Date
51b81640eb first round of style porting: basic background colours 2014-10-07 04:56:05 +02:00
1c01192872 load a CSS style sheet and install it globally
verified: basically works
todo: better handling of parse errors.
Currently this is treated as an unexpected exception and just
terminates the whole application, without any suitable diagnostics.
This makes working on the stylesheet somewhat brittle. GTK-3 actually
offers a signal to be invoked in case of CSS parsing errors

(see #953)
2014-10-07 03:13:58 +02:00
f5a995514f publish the new GTK-3 style under a GPL 2+ or CC-By-SA dual license 2014-10-07 01:19:50 +02:00
38bc139778 GTK-stylesheet: change name to gtk-lumiera.css
the mechanism for configuring and locating this file is just fine
and can be retained. Of course, the content of the stylesheet
remains to be ported
2014-10-07 00:59:03 +02:00
8a817f1ab7 Make Video Widget NOP; GDK Drawing no longer supported (#950)
Comment out the active part of the GdkDisplayer implementation,
but retain the class, to make compilation pass.

With the Switch to GTK-3, only Cairo drawing is supported.
We need a new solution for video display...
2014-10-05 09:32:06 +02:00
Michael Fisher
ea8358c661 is_visible to get_visible (gtkmm3) 2014-10-05 08:40:55 +02:00
Michael Fisher
ac3ef9f469 Project: join GTK-3 and GDLmm port 2014-10-05 08:38:38 +02:00
Michael Fisher
c63e7f9b6e Adapt Pannel Button
Panel Button implementing the MenuButton::get() API
to retrieve MenuItems.

Fixed broken Panel Menu's 'Lock' ability due to GTK move
2014-10-05 08:16:59 +02:00
Michael Fisher
a86f3bf497 Adding support to append Separator Items for MenuButton
Updated PanelBar to use this API
2014-10-05 08:16:59 +02:00
Michael Fisher
00f29ea3d5 Aggressive code pruning in the ButtonBar.
Again, default event handlers appear to be working better
than the previous overrides. Subject to re-implementation
2014-10-05 08:16:59 +02:00
Michael Fisher
cf3a0b49ce Commenting test code 2014-10-05 08:16:59 +02:00
Michael Fisher
0315931eba Upgrade the MenuBar
Implement new MenuBar::append API (partial).
Also adding if 0's and Gtk3 FIXME annotations
2014-10-05 08:16:59 +02:00
Michael Fisher
0c03e01ce6 Updating MenuButton to use Gtk::UIManager for menu creation 2014-10-05 08:16:59 +02:00
Michael Fisher
ed86ab0807 Aggressive code pruning.
Note: Default event handlers for Gtk::Box appear to be working better
than our previous overrides. Subject to re-implementation
2014-10-05 07:49:57 +02:00
Michael Fisher
53124624f0 PanelBar Gtk3 maybe update. GtkRequisition related 2014-10-05 07:49:57 +02:00
Michael Fisher
a629d8a9f1 Button Bar Gtk3 fixes (round 1). 2014-10-05 07:49:57 +02:00
Michael Fisher
f365791047 Annotating for removal. No Gtk3 support 2014-10-05 07:49:57 +02:00
Michael Fisher
7e6eff9e6a gtk3: timeline widget uses 'get_visible' instead of 'is_visible' 2014-10-05 07:49:57 +02:00
Michael Fisher
b1293b130f Updating legacy functions to GTK-3
Updating legacy Gtkmm 'set_flags(Gtk::NO_WINDOW)' calls
to use set_has_window(bool) in timeline custom widgets
2014-10-05 07:49:57 +02:00
Michael Fisher
c64de14fbf Changes to allow the gtk3 GUI to at least build.
Lots off commented out blocks of code
but most issues are related to simple function name changes,
set/get_flags calls, anything that has to do with a Gtk::Style...

Plan of attack from here is to go one-by one of each commented-out or code and update to gtk3 specs.
2014-10-05 07:49:57 +02:00
Michael Fisher
af5a44997b Project: switch GUI environment to GTK-3 / gtkmm-3.0 2014-10-05 07:49:53 +02:00
Michael Fisher
fd95c74bb8 Assertion to investigate GLib warnings
trying to track down where these messages

  GLib-GObject-CRITICAL **: g_object_unref: assertion G_IS_OBJECT (object) failed

are coming from.  These appear when iconifying panels.
2014-10-05 05:34:25 +02:00
Michael Fisher
708c977d57 Remove unused GDL headers 2014-10-05 05:34:19 +02:00
Michael R. Fisher
13a27a8fd8 Comment problematic code 2014-10-05 04:37:34 +02:00
Michael R. Fisher
d42d917b4c House Cleaning 2014-10-05 04:37:34 +02:00
Michael R. Fisher
2d8805c554 Gdlmm port nuances. Signals/Containers etc... 2014-10-05 04:37:34 +02:00
Michael R. Fisher
68c6cef003 Individual Panels initial Gdlmm port 2014-10-05 04:37:34 +02:00
Michael R. Fisher
eb4cdcd975 Panel Manager ported to Gdlmm-1.0 2014-10-05 04:37:30 +02:00
30686fdf82 fix argument passing for MultiFact(#388)
as always, it turned out that the alledged "compiler bug"
rather was my own sloppyness: I forgot properly to undo a change
I made while fighting with compilation problems: the wrapper in
the factory didn't use std::forward, resulting in a plain flat
slicing copy. This, rightfully, triggered the assertion in the
session query resolver (since a sliced Goal can not be dynamic cast
to a specific Query subclass).
2014-09-23 03:37:28 +02:00
059dbd8c75 fix and finish the diagnostics helper
there was still a subtle bug in this helper.
testing your own test fixture is sometimes a good idea ;-)
2014-09-23 03:37:28 +02:00
4145452397 factor out a diagnostics helper for variadic templates
a nice offspring of this investigation
2014-09-22 03:37:07 +02:00
9dfd3fc981 phase out some use of auto_ptr
TODO: the toolfactory needs a redesign anyway,
this was just placeholder code added in a very early
state of the Lumiera project. We have way better memory
managing facilities at hand now
2014-09-15 02:03:10 +02:00
d064623bab Reworked MultiFact(#388): switch in the new implementation 2014-09-14 23:58:05 +02:00
9a5d9873c8 WIP: prepare switch to the reworked MultiFac implementation #388 2014-09-14 22:38:58 +02:00
591e6d9775 MultiFact: implement the last and most complex usage case
the use of a custom finisihing functor, which is applied
to any generated product. This can be used for registration,
memory management or similar framework aspects
2014-09-14 22:25:12 +02:00
932d49fd95 MultiFact: how I learned to love the Bomb
C++11 is just incredibly cool. It is so easy to
support a flexible yet specific set of arguments
2014-09-14 02:06:58 +02:00
372edbfc85 MultiFact: implement second use case (smart pointers) 2014-09-14 00:36:36 +02:00
0ff5c50030 MultiFact: implement simple usage pattern. NOTE: breaks CLang 3.0
Implement the first simple usage scenario for the
unified MultiFact template, using variadic templates.

NOTE:
 - the obvious solution based on std::forward
   triggers strange behaviour in GCC-4.7
 - the inline lambda in the test case traps the
   CLang-3.0 parster with a segfault. Horay!
2014-09-13 02:50:14 +02:00
a1bb9178f5 Ticket #388: start investigation of MultiFact design
needs overhaul, since current design leads to problems
with GCC 4.8 onwards (and is messed up anyway)
2014-09-11 00:10:59 +02:00
b2b75fbe43 attempt to make factory invocation more evident in the code
...but the whole design looks still overengineered. See #388

- should get rid of the explicit specialisation
- always use a function signature and thus have arguments?
- why inheriting from the wrapper?
2014-09-08 03:37:41 +02:00
21079f3145 re-reading and rewording comments
still puzzled why this instantiation of MultiFact fails to compile with GCC 4.8

so I'm bound to understand why the types involved
need indeed to be are structured the way they are right now.
2014-09-08 02:52:38 +02:00
7faa2e784d CLang-Compatibility: zero argument ctor now treated as function definition
previous versions used to resolve this ambiguity in favour of a ctor call,
but now the compiler treats such constructs as function definition;
this is reasonable, since C++11 introduced the notion of a "generalised
initialisation", which is always written as a (possibly empty) list
in braces.

In these specific cases here, we just omit the empty parens
2014-08-26 03:31:03 +02:00
685f4327f5 Fix: remove explicitly given hash function, use the automatic bridge instead
Since we have now a generic bridge to supply std::hash functions based on
an exisiting boost::hash function, we removed the explicit std::hash
specialisation for "Placement-ID".

This caused the PlacementIndex implementation to fail at compilation
with a quite obscure error, which in fact seems to be caused by the
absence of any specific specialisation. The symptom is that a iterator
range could not be assigned to the predefined iterator type of
std::unordered_multimap, due to a mismatch in the embedded traits type

__umap_traits<__cache_default<_Key, _Hash>::value>>

While I didn't track down that problem entirely, to verify my hypothesis,
the problem can be avoided by using the default -- which is now to
pick up an existing boost::hash function for this type and use this
to generate the std::hash function.
2014-08-26 03:04:14 +02:00
05042d96cd document the hash bridge with a unit test 2014-08-17 08:39:46 +02:00
e35a45a65e tricky header reordering to support a hackish-workaround (#944)
right now we have to defeat an unfortunate static assertion in
the standard library, which is expected to go away in the future.
We use a hack to hijack the problematic definition with the preprocessor,
which requires our header to be first.
2014-08-17 08:03:21 +02:00
9a95beda32 Library: automatic bridge to use boost::hash functions for std::hash
NOTE: this header contains a potentially dangerous, temporary workaround
to defeat the static assertion in the default implementation of std::hash,
as shipped with GCC 4.7.x

This assertion turns out to be detrimental all kinds of metaprogramming
based solutions, since it defeats SFINAE. It is expected to be removed
in GCC 4.8
2014-08-17 07:15:47 +02:00
f02481bb90 fix include order in GUI headers
the rules are:
- our own headers go before any library headers
- all headers need to be spelled relative to include root
- ensure that gtk is always included via gui/gtk-base.hpp
2014-08-17 07:02:48 +02:00
561e036e0b remove any remaining use of boost::lambda
obsolete now, we can use the lambdas of the stock language
2014-05-12 01:12:45 +02:00
c2ea15695e amend harmless PlacementIndex test failures. Test Suite PASS
c++11 uses another hashtable implementation.
This uncovered some poorly written tests, which relied on
objects being returned in a specific order. As far as poissible,
we're using generic query functions now to get our test objects.

But these tests still rely on a specifically crafted test index content,
which as such is acceptable IMHO. The only remaining problem is
that we check the order of generated output in some tests, and this
order is still implementation dependent.
2014-05-11 02:08:53 +02:00
4acb7de682 half hearted fix: order of hashmap entries is implementation dependent
a real fix would be to rewrite the test to collect the retrieved
values and do a structural verification of the results. This
would mean to write a lot of code for such a marginal topic,
which was implemented just for sake of completenes anyway.

Hopefully my lack of "motivation" doesn't backfire eventually ;-)
2014-05-09 01:45:10 +02:00
a205653cad C++ uses a more precise meaning of 'convertiblity' now
Conversion means automatic conversion. In our case,
what we need ist the ability to *construct* a bool from
our (function) object -- while functors aren't automatically
convertible to bool. Thus we use one of the new predicates
from <type_traits>
2014-05-09 00:56:31 +02:00
643dfe3ea8 fix long standing error in testsuite runner
...uncovered by switching to c++11
When invoking an individual test, we used to erase
the 0-th cmdline argument, which happens to be allways
the name of the test being invoked. Yet none of our
tests actually complied to that contract. Rather,
all tests taking arguments access them by 1-based
argument index. Previously, the argument values just
happened to be still in memory at the original location
after erasing the 0st element.

"Fixed" that by changing the contract. Now, the 0th argument
remains in place, but when there are no additional arguments,
the whole cmdline is cleared.
This is messy, but the test runer needs to be rewritten
entirely, the whole API is clumsy and dangerous. Ticket #289
2014-05-09 00:56:31 +02:00
a4c41d1c12 testrunner: handle help request properly
don't actually execute the tests when there was a --help
2014-05-05 22:59:23 +02:00
027386d76c DOC: Tighten the build requirements to C++11 and Boost-1.55 2014-04-29 09:51:00 +02:00
f826ab1ee5 C++11 transition: get compilation to pass again
...but we have still 12 test failures
2014-04-28 01:34:03 +02:00
2e9467fe76 Ticket #942: introduce move semantics for our custom shared-ptr-wrapper lib::P 2014-04-28 01:06:40 +02:00
f28ad3cf74 Ticket #940: solution for binding GUI signals
* use a development snapshot of lib SigC including the recent C++11 adaptations
 * never include whole namespaces. Here we got a clash between std::bind and sigc::bind
 * use lambdas
   * to make the binding code more readable
   * to take the nested invocations apart, which resolves the return type ambiguity
2014-04-27 21:28:52 +02:00
761bab5647 C++11 transition fixes
- comparison of weak-pointers
2014-04-05 22:20:38 +02:00
bb5db0ebd5 minor improvement to the GUI-model Sequence
including a LUID based hash identity
2014-04-05 22:18:37 +02:00
44970ed96e unsuccessful attempt to bridge between std::hash and boost::hash_value (Ticket #722) 2014-04-03 22:43:35 +02:00
7be1b7d35d Switch from TR1 preveiw to the new standard headers
- functional
- memory
- unordered collections
2014-04-03 22:42:48 +02:00
5be52d4a55 Ticket #925: remove LUID from interface/plugin specifications
In the November developer meeting, Christian and I agreed that
it's best to remove that offending LUID specifications altogether.

Those embedded LUIDs where one of the issues blocking the transition to C++11
2014-03-16 02:21:07 +01:00
4ef1883c04 settle and implement some long standing concerns regarding #920
- what the dispatch operation actally is
- where the deadlines are established
2013-11-18 02:25:27 +01:00
a640283e4c introduce typedef for Frame numbers (see #882) 2013-11-18 00:01:43 +01:00
608ae3efd8 continue development where we left before the release effort 2013-11-17 23:05:15 +01:00
4da923696b partial fix: use 64 framecounts (Ticket #882)
This is a partial and preliminary fix; we had an occasional
numeric overflow on 32bit platforms in some tests.

The complete fix will be to introduce a typedef and then
rework the relevant APIs (which are preliminary anyway,
thus no urge right now)
2013-11-10 04:14:39 +01:00
3ffc27eee0 bugfix: format-string for long and ulong values
our front-end for boost::format, the class lib::_Fmt
was lacking an reliable  specialisation for long and ulong.

This is due to the notorious problem of these types being
of platform dependant size. As a fix, we're speclialising
explicitly for int16_t, int32_t and int64_t and avoid the
common names 'short', 'int' and 'long' alltogether.

And especially for non-64bit-platform (NONPORTABLE)
we add an explicit specialisation for long
2013-11-10 04:14:22 +01:00
8defe47507 Debian/Policy 3.9.x : enforce strict dependencies on dynamic modules
The recommendation is to use the link flag --no-undefined
and to fed *all* dependencies to the respective link step.

This changeset enables this strict linking of dependencies.
It turned out that our dependencies were already sane
(with the sole exception of a direct dependency to X-Lib
in the XV viewer widget)
2013-11-03 00:07:17 +01:00
c848903fea Pre-release 0.pre.02
This is a development snaphot pre release of Lumiera.
Update README, AUTHORS, LICENSE and similar release docs.
2013-10-30 02:35:20 +01:00
2cfc7030c0 release prep: clean-up obsolete information 2013-10-29 06:11:18 +01:00
888099466f release prep: remove defunct autotools buildsystem 2013-10-29 03:47:50 +01:00
d15ec47f9e DOC: some further round-up and polishsing 2013-10-28 06:14:42 +01:00
6822a9e2fb DOC: reorganise the Doxygen configuration and structure
- upgrade the configuration to a current version
- provide a frontpage with cross-links to other documentation
- define a set of modules; relevant classes and files can be
  added to these, to create a exploration path for new readers
- fix a lot of errors in documentation comments
- use a custom configuration for the documentation pages
- tweak the navigation, the sections and further arrangements
2013-10-25 06:34:38 +02:00
974c670d41 fix **** in doxygen comments
to make them stand out more prominently, some entity comments
where started with a line of starts. Unfortunately, doxygen
(and javadoc) only recogise comments which are started exactly
with /**

This caused quite some comments to be ignored by doxygen.
Credits to Hendrik Boom for spotting this problem!

A workaround is to end the line of stars with *//**
2013-10-24 23:06:36 +02:00
7967f6270d bugfix: don't call the dtor on failed objects
When a ctor throws, the dtors of sub-objects have already been
invoked. The object itself never existed, strictly speaking,
and thus the dtor must not be invoked. Usually the runtime system
handles matters automatically this way, but since we're doing
here placement new into an array, we're responsible ourselves

This error was uncovered by compiling with Clang.
GCC automatically neutralised this erroneous dtor invocation.
2013-10-21 05:17:59 +02:00
3a119ca9dd remove diagnostic msgs 2013-10-21 02:55:33 +02:00
7204c58680 Ticket #934: refactor DependencyFactory back to local memory management
This removes the central clean-up registry;
Instead, now the InstanceHolder manages the lifecycle of
the service instances placed into static memory; the net effect
is that DependencyFactory and instances are created and destroyed
together, locally for each usage scope
2013-10-21 02:42:43 +02:00
52c83b860b DependencyFactory: remove the ability to restart a service explicitly
We don't need this ability and it pushes us into using a
central registry. This solution turned out to be problematic
when loading dynamic libraries (plug-ins).
2013-10-21 02:06:01 +02:00
dcae33a173 debugging: diagnostic msgs on singleton creation/destruction 2013-10-21 00:32:55 +02:00
a889e5ee8b restore santity check against double creation of singletons
this check may look weird, but in fact a similar check in the
old version of the singleton factory helped us spot a problem
with Clang, most likely but of the compiler or runtime system
2013-10-20 22:40:14 +02:00
a344604f1b Clang(#928): adjustments regarding scope and visibility
Clang doesn't allow to declare a private nested class as friend.
This is unfortunate, but likely correct to the letter of the standard.

As a workaround, now we're creating the instances within a static
function of DependencyFactory -- in the end this improves readability


A second issue fixed with this changeset is the scope of the
marker function. Clang is right, this isn't ADL, thus an inline
friend definition is simply not visible outside the class.
2013-10-20 21:51:28 +02:00
bfba22f41a move test mock support into separate header. Write comments (closes #934) 2013-10-20 03:48:23 +02:00
d43a4c2c86 resolve problem with static initialisation order
...uncovered by the better checks of the new DependencyFactory!
2013-10-20 03:21:24 +02:00
0ea37402d2 Ticket #934: switch entire code-base to use the new Singleton factory
lib::Depend<TY>  works as drop-in replacement for lib::Singleton<TY>

This changeset removes the convoluted special cases like
SingletonSub and MockInjector.
2013-10-20 03:19:36 +02:00
7b3c68898a move header for test support 2013-10-20 01:24:49 +02:00
b225120d09 reworkted Singleton / DependencyFactory unit test pass 2013-10-20 00:34:21 +02:00
24792c1f19 brainstorming: how to implement the test mock injection 2013-10-19 23:37:00 +02:00
739a473f7e implemented the standard code path of DependencyFactory
still mising: a mechanism to inject mock objects temporarily
2013-10-19 03:32:49 +02:00
ed7f975748 draft the creation and lifecycle facilities 2013-10-19 00:07:06 +02:00
78c7036678 reshape the management interface
now using static functions; which simplifies building
a scoped object to install a mock automatically within
unit tests.
2013-10-18 20:15:29 +02:00
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