summaryrefslogtreecommitdiffstats
path: root/src/server/Event.hpp
AgeCommit message (Collapse)AuthorFilesLines
2022-08-18Remove redundant "inline" specifiersDavid Robillard1-8/+8
2022-08-18Use consistent brace wrapping for class definitionsDavid Robillard1-4/+4
2022-08-18Make empty methods and trivial constructors noexceptDavid Robillard1-1/+4
2021-01-02Update for latest raulDavid Robillard1-4/+4
2020-12-15Clean up includes in core and serverDavid Robillard1-2/+9
2020-08-02Remove std::shared_ptr aliasDavid Robillard1-10/+10
2020-08-02Rename memory utility headerDavid Robillard1-1/+1
2020-08-02Use consistent naming for context parametersDavid Robillard1-1/+1
2020-08-02Fix unnecessary parameter copiesDavid Robillard1-11/+8
2020-08-01Remove superfluous semicolonsDavid Robillard1-1/+1
2020-02-26Fix atomic bundle executionDavid Robillard1-0/+3
2019-12-08Cleanup: Avoid parameter copying overheadDavid Robillard1-1/+4
2019-03-09Clean up includes and forward declarationsDavid Robillard1-6/+5
2018-09-23Use lowercase namespace namesDavid Robillard1-4/+4
2018-01-21Add URI class and remove use of Raul::URIDavid Robillard1-1/+1
2017-12-25Use std::move to potentially avoid copyingDavid Robillard1-1/+1
2017-12-25Use nullptrDavid Robillard1-2/+2
2017-12-25Remove trivial destructors and use default where possibleDavid Robillard1-2/+0
2017-02-15Move static path stuff to its own headerDavid Robillard1-1/+1
2017-02-12Fix atomic event executionDavid Robillard1-1/+1
2017-01-18Fix invalid cross-thread use of mutexDavid Robillard1-1/+6
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-10-02Defer graph compilation in atomic bundlesDavid Robillard1-1/+2
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-09-29Atomic bundle executionDavid Robillard1-0/+6
2016-09-18Clean up codeDavid Robillard1-2/+2
2016-09-11Remove last vestiges of multiple run contextsDavid Robillard1-2/+2
2016-07-30Add undo supportDavid Robillard1-1/+18
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
2014-08-31Use float sequences for sample-accurate control ports.David Robillard1-2/+1
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5462 a436a847-0d15-0410-975c-d299462d15a1
2014-02-02Disable responses in the usual case where the UI doesn't care.David Robillard1-2/+2
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5333 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
2013-01-11Use type safe enumerations.David Robillard1-5/+5
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4918 a436a847-0d15-0410-975c-d299462d15a1
2013-01-11Initialise atomics.David Robillard1-0/+2
Unlike the old Raul classes, std::atomic<T*> does not automatically initialise to NULL. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4917 a436a847-0d15-0410-975c-d299462d15a1
2013-01-11Use C++11 atomics.David Robillard1-3/+4
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4916 a436a847-0d15-0410-975c-d299462d15a1
2012-08-19GraphObject => NodeDavid Robillard1-2/+2
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4722 a436a847-0d15-0410-975c-d299462d15a1
2012-08-14Update for latest Raul.David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4687 a436a847-0d15-0410-975c-d299462d15a1
2012-08-12Use ingen:root as the path for the root patch, opening up path space for ↵David Robillard1-0/+5
engine/driver/etc. Strict conversion between Path and URI (Path no longer is-a URI). git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4672 a436a847-0d15-0410-975c-d299462d15a1
2012-07-26Report subject with errors to client for more meaningful error messages.David Robillard1-7/+15
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4556 a436a847-0d15-0410-975c-d299462d15a1
2012-06-29Fix crashes caused by events attempting to respond to deleted clients (fix ↵David Robillard1-3/+2
#842). This one mainly manifested when using ingenish from the command line since the client is so short lived. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4503 a436a847-0d15-0410-975c-d299462d15a1
2012-05-22More work on test suite.David Robillard1-13/+19
Clean up, simplify, and shrink event code. Support disconnect_all via Atom protocol. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4432 a436a847-0d15-0410-975c-d299462d15a1
2012-03-27Squeeze blank lines.David Robillard1-1/+0
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4113 a436a847-0d15-0410-975c-d299462d15a1
2012-03-27Switch to AGPL3+.David Robillard1-16/+16
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4111 a436a847-0d15-0410-975c-d299462d15a1
2012-03-16Merge ClientInterface and ServerInterface.David Robillard1-5/+3
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4067 a436a847-0d15-0410-975c-d299462d15a1
2012-03-12Centralise atom creation in forge object.David Robillard1-1/+1
Aside from being more greppable and making realtime violations more obvious, this is a step towards using LV2 atoms internally (which needs a factory since the type numbers are dynamic). git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4054 a436a847-0d15-0410-975c-d299462d15a1
2012-03-12Unify event response mechanism and make it more appropriate for wire ↵David Robillard1-10/+9
transmission. The downside being more cryptic error messages until the client side error reporting stuff gets more fancy, but the important part is that belongs client side. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4053 a436a847-0d15-0410-975c-d299462d15a1
2012-03-10Delete trailing whitespace.David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4041 a436a847-0d15-0410-975c-d299462d15a1
2011-10-21Merge Request into Event.David Robillard1-15/+32
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@3574 a436a847-0d15-0410-975c-d299462d15a1
2011-10-21Merge QueuedEvent into Event.David Robillard1-10/+25
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@3569 a436a847-0d15-0410-975c-d299462d15a1
2011-05-18Use an intrusive linked list for event queue rather than Raul::List.David Robillard1-5/+13
This avoids the need to allocate list nodes, improving performance (event throughput), and making EventSource::push_queued realtime safe. Remove unused queue_size parameter from EventSource and friends. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@3282 a436a847-0d15-0410-975c-d299462d15a1
2011-04-20Rename Ingen::Engine to Ingen::Server (hopefully avoid odd name clases and ↵David Robillard1-0/+80
fix #675). git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@3184 a436a847-0d15-0410-975c-d299462d15a1