summaryrefslogtreecommitdiffstats
path: root/src/server/events
AgeCommit message (Collapse)AuthorFilesLines
2017-01-18Fix invalid cross-thread use of mutexDavid Robillard2-18/+15
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 Robillard4-44/+57
2016-12-14Fix real-time issues with buffer allocationDavid Robillard3-14/+8
2016-12-14Remove some use of shared_ptr in the real-time threadDavid Robillard2-16/+22
2016-12-13Remove virtual inheritance from Port hierarchyDavid Robillard6-18/+14
This was confusing stoat, and is questionable design anyway. The OutputPort functionality has been moved to PortImpl, which is a basic port with buffers suitable for use as an output, and is overridden by InputPort and DuplexPort where necessary.
2016-10-14Fix potential store deadlockDavid Robillard9-9/+9
2016-10-14Fix sequence ports with valuesDavid Robillard3-7/+14
2016-10-14Fix communication with connected sequence portsDavid Robillard2-7/+26
2016-10-13Clean up protocol documentationDavid Robillard1-28/+0
2016-10-06Add plugin state savingDavid Robillard1-5/+17
This only works with a server-side save, so the GUI now uses that if the server is not running remotely, where "remotely" is defined as "via TCP". This isn't perfect, since running ingen via TCP locally is a perfectly valid thing to do, but it will do for now.
2016-10-02Fix sending UI events to sequence portsDavid Robillard1-1/+0
2016-10-02Fix properties of control/notify portsDavid Robillard1-6/+7
2016-10-02Fix loading a graph by copying from the filesystemDavid Robillard1-1/+1
2016-10-02Defer graph compilation in atomic bundlesDavid Robillard28-69/+124
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-02Use more efficient std::lock_guard where possibleDavid Robillard6-6/+6
2016-10-02Show audio and load information in status lineDavid Robillard1-4/+8
2016-10-02Add parallelism-aware graph traversalDavid Robillard9-22/+42
2016-10-01Fix OSX buildDavid Robillard1-1/+1
2016-09-29Atomic bundle executionDavid Robillard2-2/+28
2016-09-18Fix undo after redoDavid Robillard1-3/+4
2016-09-18Add fancy communication loggingDavid Robillard2-24/+2
2016-09-13Fix misleading commentDavid Robillard1-1/+5
2016-09-11Remove last vestiges of multiple run contextsDavid Robillard27-37/+33
2016-09-11Clarify connect and disconnect logicDavid Robillard2-3/+5
2016-08-17Rename main graph and control/notify portsDavid Robillard2-4/+5
2016-08-02Make graph control ports support patch:MessageDavid Robillard1-0/+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 Robillard24-26/+396
2016-07-30Fix mismatched include guardDavid Robillard1-3/+3
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.
2016-07-27Add unit tests for CopyDavid Robillard1-1/+1
2015-11-23Fix crash when request contains invalid path URIDavid Robillard1-1/+6
Fixes #1108
2015-10-30Update clients when plugins are unloaded/reloadedDavid Robillard6-161/+28
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 Robillard2-2/+66
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-26Use a set for providers and dependantsDavid Robillard2-14/+8
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5790 a436a847-0d15-0410-975c-d299462d15a1
2015-10-26Use consistant names for incident portsDavid Robillard2-53/+53
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5789 a436a847-0d15-0410-975c-d299462d15a1
2015-10-26Use URIDs almost everywhereDavid Robillard1-1/+1
This fixes some issues where types are lost after saving and re-loading many times. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5788 a436a847-0d15-0410-975c-d299462d15a1
2015-10-25Fix saving and loading of copy-pasted blocksDavid Robillard2-13/+13
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5785 a436a847-0d15-0410-975c-d299462d15a1
2015-10-25Create all graphs the same wayDavid Robillard5-24/+109
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-10-25Fix status code when port existsDavid Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5782 a436a847-0d15-0410-975c-d299462d15a1
2015-10-25Document protocolDavid Robillard4-56/+3
Fix invalid use of patch:request (use patch:sequenceNumber instead). git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5781 a436a847-0d15-0410-975c-d299462d15a1
2015-10-24Zero-copy to/from driver ports where possibleDavid Robillard4-27/+44
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5778 a436a847-0d15-0410-975c-d299462d15a1
2015-10-23Speed up multi-deletionDavid Robillard2-8/+2
Take only a fine-grained lock on the store for deletion. IIRC, the long lock was to avoid conflict with Get which accesses the store in post_process(), but this issue has been fixed and events only access the store in pre_process(). I believe it is now safe to only lock Delete during pre_process() as a result. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5771 a436a847-0d15-0410-975c-d299462d15a1
2015-09-04Fix various atom conversion issues.David Robillard4-20/+26
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5719 a436a847-0d15-0410-975c-d299462d15a1
2015-08-29Avoid map::emplace to accomodate old GCC.David Robillard1-4/+4
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5714 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-12Fix URI comparison issues.David Robillard1-1/+1
Fixes issue #1074. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5704 a436a847-0d15-0410-975c-d299462d15a1
2015-08-12Server-side presets.David Robillard4-13/+91
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5703 a436a847-0d15-0410-975c-d299462d15a1