Commit graph

462 commits

Author SHA1 Message Date
d4ac2d78e2 C++11: improve moving and forwarding of iterators
this becomes more relevant now, since the actual MutationMessage iterators
are implemented in terms of a shared_ptr to IterSource. Thus, when building
processing pipelines, we most definitively want to move that smart-ptr into
the destination, since this avoids touching the shared count and thus avoids
generating unnecessary memory barriers.
2017-08-12 03:01:35 +02:00
10c2e4b9a9 CmdAccess: rename the front-end to CmdContext to clarify the purpose 2017-04-17 20:00:07 +02:00
22c1a1d189 Commands: rename some of the planned components for command access
...to make the names more handy
2017-04-08 16:24:36 +02:00
afe07bdb16 decommission the safe-bool-idiom (closes #477)
obsoleted by C++11

 * in most cases, it can be replaced by an explicit conversion operator
 * especially for the Lumiera Forward Iterators, we need an implicit conversion
2017-04-02 06:42:23 +02:00
9c21164ae6 Doxygen Fixes (#1062)
This changeset fixes a huge pile of problems, as indicated in the
error log of the Doxygen run after merging all the recent Doxygen improvements

unfortunately, auto-linking does still not work at various places.
There is no clear indication what might be the problem.
Possibly the rather unstable Sqlite support in this Doxygen version
is the cause. Anyway, needs to be investigated further.
2017-04-02 04:22:51 +02:00
ada40609f5 more planning of command invocation structure 2017-03-17 04:09:44 +01:00
57a336ab49 more planning with respect to UI/Session command access (#1087) 2017-03-11 02:07:52 +01:00
c068779a80 command-invocation: use case analysis 2017-03-03 23:59:22 +01:00
567b00aa21 DOC: follow-up of removing boost::scoped_ptr 2017-01-05 01:20:34 +01:00
1ec883787a DOC: decision about where to home the SessionCommandService
After some consideration, it became clear that this service implementation
is closely tied to the DispatcherLoop -- which will consequently be
responsible to run and expose this service implementation
2016-12-15 05:07:40 +01:00
cbb5d57081 DOC: the Ref::THIS construct was removed from the Diff language (#996)
...because of questionable utility
And it turned out to be quite a liability when it comes to implementing
the building blocks for binding tree implementation data structures
2016-12-03 19:40:28 +01:00
9b8fae1a9b (re)consider the problem how to deal with mandatory/optional object fields
this is a tricky problem and a tough decision.
After quite some pondering I choose to enforce mandatory fields
through the ctor, and not to allow myself cheating my way around it
2016-12-03 19:37:52 +01:00
7c09f55a9a DOC: drawing to show the structure of timeline display 2016-12-02 04:07:46 +01:00
67beeab25a start with actual rework of the timeline display
draft a concept for timeline layout management
2016-12-01 21:01:45 +01:00
170c505a8a (cont) analysis of timeline display control 2016-11-28 03:41:25 +01:00
3757a56ac9 more detailed planning of architecture for clip presentation
...first UML diagram created with Umbrello!
2016-11-20 17:52:21 +01:00
c39c49b998 DOC: abandon BoUML and start over with Umbrello (closes #960)
BoUML was close sourced by its author and consequently dropped
from Debian. We use UML as a drawing and documentation tool,
and thus we'll just start over with the /obvious/ choice,
which is the Umbrello tool.
2016-11-19 00:13:19 +01:00
89bfbcab43 merge work on UI-Bus and diff framework to Master
a lot of important work done during Spring and Summer 2016
now mature enough to be considered official
2016-09-05 04:46:12 +02:00
fd2d56ca45 refactoring(#988): switch function-closure to std::tuple
not sure yet if any of this works, because the
technicalities of dealing with variadic types are
quite different to our LISP-style typelist processing.

The good news is that with variadic templates it is
indeed possible, to supply dynamically picked arguments
to another function taking arbitrary arguments.

This all relies on the feature to unpack argument packs,
and, more specifically, about the possiblity to "wrap"
this unpacking around interspersed function call syntax

template<size_t...i>
Xyz
do_something(MyTuple myTuple)
  {
    return Xyz (std::get<i> (myTuple) ... );
  }

Here the '...' will be applied to the i... and then
the whole std::get-construct will be wrapped around
each element. Mind bogging, but very powerful
2016-01-19 03:56:53 +01:00
e74d61da45 clarify some Doxygen settings (see #977) 2015-11-27 20:17:35 +01:00
60b6267eac DOC: after release 0.pre.03 -- checklist with steps for release preparation 2015-11-20 06:12:59 +01:00
96a4704738 DOC: some problems when building with GCC-5 2015-11-20 05:34:11 +01:00
d6d8ddd536 DOC: remove hotfix patch from backporting/Mint howto
this patch is no longer required; we lowered the
version dependencies in the package proper
2015-11-15 07:10:45 +01:00
e1f7165208 DOC: instructions for building/backporting on Mint 17.2 (Rafaela)
this is a bit trickty, since we need to install gcc-4.9 from a PPA.
Mint only provides the libstdc++ 4.8, which is known to break when
compiling in C++14 mode
2015-11-05 03:27:55 +01:00
80ea3b72c9 DOC: mention we could use help for porting the stylesheet
...something a beginner could do
2015-11-05 03:26:05 +01:00
8a707f3a41 post-release: tighten library dependencies
NOTE: we have the policy to always support current Debian/stable
amd at least one Ubuntu LTS release, unless hard dependency problems prevent that.
Currently, Ubuntu/Trusty is already a bit dated, but the only problematic dependency
could be libboost (1.54 in Trusty, 1.55 in Jessie).
GCC-4.8 can be replaced by GCC-4.9 in Trusty without problems

It is always a bit tricky to find out the precise lower boundary,
so we try to upgrade these requirements as our platform progresses.
For now we have used the level available on Ubuntu/Trusty to set
the lower constraints for most libraries
2015-11-03 03:39:00 +01:00
8b1f48bea2 release prep: bump version number
...this will be the third preview release
Lumiera is still in pre-alpha stage, and thus
there are no proper releases, just preview snapshots.

Again this version will be built and packaged
on several supported Linux platforms
2015-11-02 21:31:01 +01:00
12cefe914e release prep: clean-up obsolete information 2015-11-02 21:14:24 +01:00
b1b89c168e release prep: clean-up obsolete information 2015-11-02 19:38:43 +01:00
9c9b31f0f8 DOC: External Tree Description as a design concept
This page gives the rationale for the way our diff framework is built.
This reasoning might *reduce* the relevance of any decisions
regarding the implementation data structure and thus lead to
far reaching consequences for the whole architecture.
2015-11-02 04:50:53 +01:00
0e615e531f DOC: extension of the diff framework to represent structural changes 2015-11-02 03:51:04 +01:00
0b41ddefd0 DOC: how to use gcc-4.9 on Ubuntu Trusty (14.04 LTS) 2015-11-02 01:34:31 +01:00
8dcdce1a58 Doxygen: adjust ignores
now using Doxygen 1.8.8 -- which generates a SQLite-DB
2015-08-17 01:14:33 +02:00
80e78492d2 Reference platform for Lumeira is now Debian/Jessie 2015-08-16 02:49:53 +02:00
c2d5896a3b Project: switch to C++14
This means we have rather tight compiler requirements now.
Beyond that, we expect no serious impact; the most notable
C++14 feature we're likely to use soon is type inference
on lambda arguments.
2015-08-16 01:43:04 +02:00
ff0950fd3b DOC: a note regarding Lumiera Forward Iterators and the range-for loop 2015-08-16 01:35:28 +02:00
e40c85fd7b DOK: rename Track -> Fork (III) -- closes #155
Introduce the new term "Fork" at various relevant places
within the documentation. We do not entirely purge the
term "track" though; rather we

- make clear that "Fork" is the entity to build tracks
- use "fork" also synonymous to the "tree of tracks"
2015-05-31 03:46:05 +02:00
dece405801 LANDING: transition to GTK-3
This switches the Lumiera UI from GTK-2 to GTK-3
Unfortunately, this move breaks two crucial features, which have been
disabled for now: the display of video and our custom timeline widget.

Since both of these require some reworking, which in fact has already
started, we prefer to do the library and framework switch right away.
2015-05-30 17:11:41 +02:00
4c4a430728 DOC: summarise suitable mechanisms for dependency decoupling
This too was a long-standing issue. While these practices
basically can be considered "common knowledge", experience
showed those topics are frequently unknown even to practised
programmers.

So now we have a single page dealing with all those issues of
code bloat, dependency poliferation, binary dependency resolution
and issues of transitive and circular library dependencies
2015-05-28 03:05:49 +02:00
182f6ac8e5 DOC: upgrade dependencies to reflect the transition to GTK-3
the corresponding requirements are already reflected in the
SCons build, see Platform.py

NOTE: the current debian package is still based on the preview
Release 0.2.pre from last year. It will be upgraded probably after
the transition to Jessie as reference system
2015-05-28 00:24:25 +02:00
e447fa9a0e DOC: workaround when --as-needed linking breaks auto-registration (closes #948)
This piece of documentation describes an insideous special case, which
some time ago prevented us from switching to --as-needed linking.
We treat this as a special case (and it is way easier to do so
now, after the reorganisation of our test suite).

deliberately, I've left #948 open to nudge me about writing this doc
2015-05-27 21:12:55 +02:00
6c7628fdfe DOC: the RPATH and RUNPATH tags and the $ORIGIN token
This is very arkane, hard to find knowledge about some intricacies
of the dynamic library resolution. Very relevant for Lumiera,
since we use a resolution scheme relative to the location
of the executable. Documenting this stuff was a long-standing issue
2015-05-27 18:52:15 +02:00
f17b1c8428 DOC: locating of dependencies and resources at application start-up
a long standing TODO to document the actual start-up sequence, which
is implemented this way since a long time now. There was an unwritten
section in the "Linking and Application Structure", which seems the
apropriate place for this kind of intricate techincal details.

Last week, Benny Lyons was here on visit in munich and he was pondering
the idea of an experimental secondary build system, as a way to learn
more about the source structure of Lumiera. This reminded me to fill
some missing parts of the documentation. Possibly this is also the
right moment to land the GTK-3 transition?
2015-05-27 04:01:09 +02:00
Christoph Varga
4e3d113c7d complement note about the author 2015-04-25 22:12:00 +02:00
f20e07647c Website organisation: consolidate the GUI Discussion section
- improved overview pages
- move the proposals into subfolder
- incorporate the Interface Design by Clay Barnes
- fix various links
2015-04-15 17:48:48 +02:00
Clay Barnes
ecb99514bd Lumiera Timeline Interface Draft
Remarks: this contribution was originally published on Clay Barne's Blog
https://www.hci-matters.com/blog/2008/05/21/archives/41/
2015-04-15 17:41:52 +02:00
841b1b8e3f Website organisation: move the GUI proposals in a subfolder 2015-04-15 17:18:09 +02:00
6db3f270cf Include the conrtibution of Christoph Varga into the Workflow design section 2015-04-15 16:43:52 +02:00
Christoph Varga
b50bf82728 Lumiera Gui Concept -- introductory page 2015-04-11 12:00:00 +02:00
f90e9c7bbd adjust the related RfC "SystematicMetadata"
There is a long-standing RfC which basically describes the
same idea on a much wider, conceptual scope. Indeed I consider
this approach used here for solving the problem with GUI uptades
also as a proof of concept, to be expanded to a much wider scope
in case it works out well.

The new insight here is, that, by transferring a diff in pull mode,
we can circumvent the architectural problems with typing, which
showed up quite clearly in earlier design studies towards this
concept. The change from push to pull is by far not so fundamental
as it looks, since the sender still may initiate the exchange
by sending a message offering the diff iterator for the receiver
to pull. This way, we get a handshake and still sustain the
crucial part, which is to decouple the data representation
and give the receiver full control over the interpretation
of the exchanged data.
2015-03-22 01:37:16 +01:00