summaryrefslogtreecommitdiffstats
path: root/src/server/events
AgeCommit message (Collapse)AuthorFilesLines
2018-01-21Add FilePath class and remove use of glib path utilitiesDavid Robillard2-8/+9
2018-01-21Add URI class and remove use of Raul::URIDavid Robillard7-24/+22
2018-01-21Replace insert(make_pair(...)) with emplaceDavid Robillard2-4/+4
2018-01-17Clean up Engine component memory management and trim include treeDavid Robillard6-10/+10
2017-12-25Use auto for iteratorsDavid Robillard3-4/+4
2017-12-25Always use bracesDavid Robillard2-2/+4
2017-12-25Use nullptrDavid Robillard10-45/+45
2017-12-25Fix inconsistent parameter namesDavid Robillard1-1/+1
2017-12-25Remove trivial destructors and use default where possibleDavid Robillard8-24/+0
2017-12-24Clean up includes in public headersDavid Robillard2-0/+2
2017-12-16Make events take the corresponding message directlyDavid Robillard20-257/+293
2017-12-16Adjust indices when ports are deletedDavid Robillard5-10/+73
2017-12-16Don't attempt to undo saving graphsDavid Robillard1-1/+3
2017-12-16Fix undo of deletions that remove connectionsDavid Robillard1-1/+1
2017-12-16Clean up includesDavid Robillard1-0/+2
2017-12-16Clean up delta key comparisonDavid Robillard1-2/+2
2017-12-16Make CompiledGraph::compile a free functionDavid Robillard12-18/+14
2017-03-20Always use sample accurate controlsDavid Robillard1-2/+2
This changes control port buffers to always be sequences of float, splitting cycles internally so nodes with control ports act as if they support sample accurate control input and output. This allows things like having networks of control ports manipulated by the user which are run into CV ports and having sample accurate changes end up in the CV ports even though the values were calculated by plugins with single float ports. Further work is probably necessary to thin and smooth changes that come from a user drag (perhaps there should be a mode for this?) to keep the amount of cycle splitting reasonable, and support for plugins with fixed block length.
2017-03-20Remove dubious Buffer::nframes() methodDavid Robillard1-1/+1
2017-03-20Fix round-trip preservation of property contextsDavid Robillard1-7/+9
2017-03-20Improve arc list efficiencyDavid Robillard2-5/+6
2017-03-20Cleanup: Trim boost headers and unnecessary configure checksDavid Robillard1-2/+0
2017-03-19Shrink status bar text and fix initial DSP load displayDavid Robillard1-10/+13
2017-03-18Don't delete LV2 portsDavid Robillard1-1/+1
2017-02-18Add experimental PortAudio driverDavid Robillard2-2/+10
2017-02-18Reduce Driver couplingDavid Robillard5-8/+3
2017-02-15Move Properties out of ResourceDavid Robillard9-92/+90
2017-02-15Move static path stuff to its own headerDavid Robillard8-22/+22
2017-02-12Fix various cast alignment warningsDavid Robillard1-1/+0
2017-02-12Use smart pointers to handle real-time memory disposalDavid Robillard20-142/+98
2017-02-12Fix atomic event executionDavid Robillard1-2/+7
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