summaryrefslogtreecommitdiffstats
path: root/src/server/GraphImpl.hpp
AgeCommit message (Collapse)AuthorFilesLines
2017-12-25Fix inconsistent parameter namesDavid Robillard1-4/+4
2017-12-16Adjust indices when ports are deletedDavid Robillard1-0/+1
2017-03-20Improve arc list efficiencyDavid Robillard1-2/+1
2017-02-12Use smart pointers to handle real-time memory disposalDavid Robillard1-13/+14
2016-12-13Remove virtual inheritance from Port hierarchyDavid Robillard1-0/+2
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-02Defer graph compilation in atomic bundlesDavid Robillard1-2/+5
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-10/+0
2016-09-11Remove last vestiges of multiple run contextsDavid Robillard1-11/+10
2015-10-24Zero-copy to/from driver ports where possibleDavid Robillard1-13/+0
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5778 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-08Server-side copy paste with LV2 state support.David Robillard1-0/+4
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5541 a436a847-0d15-0410-975c-d299462d15a1
2014-08-31Use float sequences for sample-accurate control ports.David Robillard1-0/+2
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5462 a436a847-0d15-0410-975c-d299462d15a1
2014-04-06Support port pretty names via new Jack metadata API.David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5357 a436a847-0d15-0410-975c-d299462d15a1
2013-01-27Move comments to header.David Robillard1-3/+45
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5008 a436a847-0d15-0410-975c-d299462d15a1
2013-01-12Remove Raul::SharedPtr and switch to std::shared_ptr.David Robillard1-3/+3
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-1/+1
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4918 a436a847-0d15-0410-975c-d299462d15a1
2012-12-29"edge" => "arc".David Robillard1-6/+6
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4897 a436a847-0d15-0410-975c-d299462d15a1
2012-12-21Fix memory leaks.David Robillard1-2/+1
Add missing library dependencies. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4880 a436a847-0d15-0410-975c-d299462d15a1
2012-08-19Patch => GraphDavid Robillard1-0/+171
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4721 a436a847-0d15-0410-975c-d299462d15a1