summaryrefslogtreecommitdiffstats
path: root/src/server/events/Delta.cpp
AgeCommit message (Collapse)AuthorFilesLines
2017-12-16Make CompiledGraph::compile a free functionDavid Robillard1-2/+1
2017-03-20Fix round-trip preservation of property contextsDavid Robillard1-7/+9
2017-02-15Move Properties out of ResourceDavid Robillard1-5/+3
2017-02-15Move static path stuff to its own headerDavid Robillard1-5/+5
2017-02-12Use smart pointers to handle real-time memory disposalDavid Robillard1-7/+5
2017-02-12Fix atomic event executionDavid Robillard1-2/+7
2017-01-18Fix invalid cross-thread use of mutexDavid Robillard1-17/+12
Instead of abusing store mutex for this purpose, extend blocking mechanism of the PreProcessor (designed for atomic bundle execution) to support execution of individual atomic events which must be executed before the next event can be pre-processed.
2016-12-14Fix real-time safety of control bindingsDavid Robillard1-23/+31
2016-10-14Fix potential store deadlockDavid Robillard1-1/+1
2016-10-14Fix sequence ports with valuesDavid Robillard1-2/+3
2016-10-13Clean up protocol documentationDavid Robillard1-28/+0
2016-10-02Defer graph compilation in atomic bundlesDavid Robillard1-5/+8
This avoids situations like compiling a graph hundreds of times when it is loaded because it has hundreds of nodes and each event triggers a re-compile. This speeds things up dramatically, but exacerbates the theoretical problem of there not being enough time in a cycle to execute a bundle. As far as I can tell, the execute phase of events is very fast, so hundreds or thousands can easily run in a tiny fraction of the process cycle, but this still needs resolution to be truly hard real-time. What probably needs to happen is that all context and state used to process is moved to CompiledGraph and nodes do not access their own fields at all, but have some references into the CompiledGraph. This way, a compiled graph is separate from its "source code", and an old one could continue to be run while a new one is beng applied across several cycles.
2016-10-02Add parallelism-aware graph traversalDavid Robillard1-2/+5
2016-09-18Add fancy communication loggingDavid Robillard1-22/+0
2016-09-11Remove last vestiges of multiple run contextsDavid Robillard1-1/+1
2016-08-01Fix compilation on OSXDavid Robillard1-2/+0
2016-07-31Support thread-safe state restorationDavid Robillard1-1/+1
2016-07-30Add undo supportDavid Robillard1-7/+50
2016-07-29Use more Turtley debug dump outputDavid Robillard1-5/+5
2016-07-29Use more terse patch:Put for canvas positionsDavid Robillard1-9/+3
Fix the semantics of PUT events for existing objects to match the documentation.
2015-11-23Fix crash when request contains invalid path URIDavid Robillard1-1/+6
Fixes #1108
2015-10-30Update clients when plugins are unloaded/reloadedDavid Robillard1-4/+21
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5808 a436a847-0d15-0410-975c-d299462d15a1
2015-10-30Add protocol for loading and unloading bundlesDavid Robillard1-1/+64
Currently this is only really useful for refreshing updated bundles. It will trigger the appropriate load and unload in the Lilv world, but the set of plugins and presets is not updated and clients will not be notified of any changes. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5807 a436a847-0d15-0410-975c-d299462d15a1
2015-10-25Create all graphs the same wayDavid Robillard1-1/+1
This ensures that subgraphs always have the standard control ports, so they are valid Ingen graphs on their own.. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5783 a436a847-0d15-0410-975c-d299462d15a1
2015-09-04Fix various atom conversion issues.David Robillard1-13/+17
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5719 a436a847-0d15-0410-975c-d299462d15a1
2015-08-29Set properties uniquely for set method.David Robillard1-4/+10
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5712 a436a847-0d15-0410-975c-d299462d15a1
2015-08-12Server-side presets.David Robillard1-5/+49
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5703 a436a847-0d15-0410-975c-d299462d15a1
2015-07-25Fix crash when loading presets with invalid ports.David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5698 a436a847-0d15-0410-975c-d299462d15a1
2015-04-04Update copyright dates.David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5653 a436a847-0d15-0410-975c-d299462d15a1
2015-02-19Server side presets.David Robillard1-1/+62
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5587 a436a847-0d15-0410-975c-d299462d15a1
2015-02-09Fix broadcasting to several clients.David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5550 a436a847-0d15-0410-975c-d299462d15a1
2015-02-08Server-side copy paste with LV2 state support.David Robillard1-31/+36
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5541 a436a847-0d15-0410-975c-d299462d15a1
2015-02-06Remove gthread dependency from engine.David Robillard1-8/+7
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5533 a436a847-0d15-0410-975c-d299462d15a1
2015-01-15Node bypass.David Robillard1-6/+16
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5515 a436a847-0d15-0410-975c-d299462d15a1
2014-02-02Don't cut feedback for put events, fixing initial placement of subgraph modules.David Robillard1-2/+5
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5334 a436a847-0d15-0410-975c-d299462d15a1
2014-02-01Make SetPortValue event for ingen:activity.David Robillard1-1/+1
This probably needs a bit of renaming and saner implementation... git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5329 a436a847-0d15-0410-975c-d299462d15a1
2014-01-31Subscribe to ports before instantiating plugin UIs (fix #954).David Robillard1-6/+17
Respond to put/set/patch with the same type of event (not set=>delta). Don't feed back changes to originating client. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5326 a436a847-0d15-0410-975c-d299462d15a1
2014-01-24Fix various whitespace and formatting issues.David Robillard1-1/+0
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5325 a436a847-0d15-0410-975c-d299462d15a1
2014-01-24Don't take poly lock when creating nodes.David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5322 a436a847-0d15-0410-975c-d299462d15a1
2014-01-24Remove redundant and unnecessary properties from saved graphs and protocol.David Robillard1-2/+10
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5321 a436a847-0d15-0410-975c-d299462d15a1
2014-01-24Update for latest LV2 Atom Object simplifications.David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5319 a436a847-0d15-0410-975c-d299462d15a1
2014-01-18Consolidate URIs.David Robillard1-5/+5
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5316 a436a847-0d15-0410-975c-d299462d15a1
2014-01-18Fix crashes when LV2 host changes polyphony rapidly.David Robillard1-0/+13
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5315 a436a847-0d15-0410-975c-d299462d15a1
2013-12-25Fix handling setting of several special properties per request.David Robillard1-5/+9
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5208 a436a847-0d15-0410-975c-d299462d15a1
2013-11-01Remove unused typedefs.David Robillard1-2/+0
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5167 a436a847-0d15-0410-975c-d299462d15a1
2013-02-23Move Atom implementation out of Raul so it can depend on LV2.David Robillard1-2/+2
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5076 a436a847-0d15-0410-975c-d299462d15a1
2013-02-02More generic Atom class.David Robillard1-10/+10
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5024 a436a847-0d15-0410-975c-d299462d15a1
2013-02-02Add option to enable/disable canvas animation (fix/avoid #879).David Robillard1-3/+9
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5016 a436a847-0d15-0410-975c-d299462d15a1
2013-01-22Fix compilation with Delta debug dumping enabled.David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5005 a436a847-0d15-0410-975c-d299462d15a1
2013-01-12Remove Raul::SharedPtr and switch to std::shared_ptr.David Robillard1-9/+9
Use project local short type aliases for shared_ptr and friends. Move Raul::Disposable and Raul::Manageable into Raul::Maid. Use sets to store machina nodes and edges to avoid O(n) searches. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4939 a436a847-0d15-0410-975c-d299462d15a1