summaryrefslogtreecommitdiffstats
path: root/src/server
AgeCommit message (Collapse)AuthorFilesLines
2017-02-12Fix warning during optimized buildDavid Robillard1-1/+1
2017-02-12Use smart pointers to handle real-time memory disposalDavid Robillard46-325/+299
2017-02-12Fix atomic event executionDavid Robillard4-27/+42
2017-02-12Fix check for pending eventsDavid Robillard2-2/+2
2017-02-12Fix memory leaksDavid Robillard5-17/+30
2017-02-09Fix multiple control bindingsDavid Robillard2-6/+10
Fixes #1151
2017-01-18Fix invalid cross-thread use of mutexDavid Robillard4-20/+38
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-14Add missing includeDavid Robillard1-0/+1
2016-12-14Remove override qualifiersDavid Robillard2-6/+6
2016-12-14Don't shrink ports arrayDavid Robillard1-3/+0
2016-12-14Fix real-time safety of control bindingsDavid Robillard8-152/+197
2016-12-14Fix memory errorsDavid Robillard2-1/+2
2016-12-14Add option to not build LV2 pluginDavid Robillard1-10/+11
2016-12-14Fix real-time issues with buffer allocationDavid Robillard16-125/+207
2016-12-14Remove some use of shared_ptr in the real-time threadDavid Robillard2-16/+22
2016-12-14Don't use path to determine if nodes are the main graphDavid Robillard3-5/+13
Doing so is slower and touches std::string code that could in theory not be RT-safe (though always is in practice).
2016-12-13Remove virtual inheritance from Port hierarchyDavid Robillard19-196/+130
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-12-13Fix some real-time safety issuesDavid Robillard12-40/+53
2016-10-29Fix running as LV2 with disconnected portsDavid Robillard1-0/+4
2016-10-14Fix LV2 initialisationDavid Robillard3-7/+18
2016-10-14Fix occasionally stuck event queueDavid Robillard2-9/+13
2016-10-14Fix potential store deadlockDavid Robillard9-9/+9
2016-10-14Fix sequence ports with valuesDavid Robillard8-21/+41
2016-10-14Fix communication with connected sequence portsDavid Robillard5-29/+45
2016-10-14Improve documentationDavid Robillard1-0/+2
2016-10-13Clean up protocol documentationDavid Robillard1-28/+0
2016-10-06Add plugin state savingDavid Robillard11-49/+109
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-02Add event outputs to Trigger and ControllerDavid Robillard7-53/+117
2016-10-02Fix MIDI I/ODavid Robillard1-1/+3
2016-10-02Fix saving and loading subgraphsDavid Robillard1-2/+2
2016-10-02Fix copy/paste of internal blocksDavid Robillard2-2/+26
2016-10-02Fix monitoring sequence portsDavid Robillard1-2/+6
2016-10-02Fix sending UI events to sequence portsDavid Robillard2-2/+5
2016-10-02Implement microsecond clock for Linux and OSXDavid Robillard4-10/+65
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-02Fix unit test responses and ensure events succeedDavid Robillard3-3/+3
2016-10-02Defer graph compilation in atomic bundlesDavid Robillard35-81/+225
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 Robillard5-11/+137
2016-10-02Add parallel graph executionDavid Robillard15-155/+452
2016-10-02Add parallelism-aware graph traversalDavid Robillard17-117/+428
2016-10-02Replace Delay internal with simpler BlockDelayDavid Robillard8-239/+120
2016-10-01Fix OSX buildDavid Robillard5-6/+16
2016-10-01Fix plugin versioningDavid Robillard1-1/+1
2016-09-29Atomic bundle executionDavid Robillard8-13/+94
2016-09-20Use C++11 thread_localDavid Robillard2-5/+4
2016-09-18Fix undo of deletions with both blocks and arcsDavid Robillard1-3/+3
Also probably other cases of dependent events that must be executed in the correct order for undo to make sense.
2016-09-18Fix undo after redoDavid Robillard2-4/+6
2016-09-18Clean up codeDavid Robillard9-25/+34