summaryrefslogtreecommitdiffstats
path: root/src/server/PortImpl.cpp
AgeCommit message (Collapse)AuthorFilesLines
2017-03-20Fix crash when setting control ports without a value bufferDavid Robillard1-1/+3
Control ports should always have a value buffer for some value of "should", but crashing is never good in any case.
2017-03-20Always use sample accurate controlsDavid Robillard1-11/+13
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 value buffer updateDavid Robillard1-1/+0
2017-03-20Fix clear_buffers() prototypeDavid Robillard1-2/+2
2017-03-20Factor out redundant overloadsDavid Robillard1-1/+1
2017-03-20Use more efficient memory barriersDavid Robillard1-2/+3
2017-03-20Fix zipper noise when dragging CV port valuesDavid Robillard1-1/+2
2017-02-18Reduce Driver couplingDavid Robillard1-4/+3
2017-02-12Use smart pointers to handle real-time memory disposalDavid Robillard1-21/+10
2016-12-14Fix real-time issues with buffer allocationDavid Robillard1-25/+34
2016-12-14Don't use path to determine if nodes are the main graphDavid Robillard1-3/+3
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 Robillard1-2/+56
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 Robillard1-0/+2
2016-10-14Fix communication with connected sequence portsDavid Robillard1-1/+0
2016-10-02Fix saving and loading subgraphsDavid Robillard1-2/+2
2016-09-11Remove last vestiges of multiple run contextsDavid Robillard1-12/+12
2015-10-26Use URIDs almost everywhereDavid Robillard1-2/+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 explicit sequence port monitoringDavid Robillard1-1/+1
Patch from Robin Gareus. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5786 a436a847-0d15-0410-975c-d299462d15a1
2015-10-24Zero-copy to/from driver ports where possibleDavid Robillard1-11/+21
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5778 a436a847-0d15-0410-975c-d299462d15a1
2015-10-23Reduce overheadDavid Robillard1-10/+16
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5770 a436a847-0d15-0410-975c-d299462d15a1
2015-09-29Fix more URI conversion issues.David Robillard1-3/+2
Fixes #1088. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5733 a436a847-0d15-0410-975c-d299462d15a1
2015-04-09Fix multiple note triggers on the same sample.David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5671 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-17Delete trailing whitespace.David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5582 a436a847-0d15-0410-975c-d299462d15a1
2015-02-08Server-side copy paste with LV2 state support.David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5541 a436a847-0d15-0410-975c-d299462d15a1
2015-02-05Fix events at end of cycle.David Robillard1-4/+8
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5531 a436a847-0d15-0410-975c-d299462d15a1
2015-02-05Fix sequence=>sequence connections.David Robillard1-0/+1
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5530 a436a847-0d15-0410-975c-d299462d15a1
2014-08-31Use float sequences for sample-accurate control ports.David Robillard1-28/+73
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5462 a436a847-0d15-0410-975c-d299462d15a1
2014-02-01Always monitor sequence ports that are explicitly monitored.David Robillard1-1/+3
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5328 a436a847-0d15-0410-975c-d299462d15a1
2014-01-24Remove redundant and unnecessary properties from saved graphs and protocol.David Robillard1-5/+4
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5321 a436a847-0d15-0410-975c-d299462d15a1
2014-01-12Combine port buffers and set state into a single voice object.David Robillard1-50/+32
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5309 a436a847-0d15-0410-975c-d299462d15a1
2014-01-05Update type properties for morph ports so GUI displays correct type.David Robillard1-2/+14
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5277 a436a847-0d15-0410-975c-d299462d15a1
2014-01-04Fix port monitor period logic.David Robillard1-8/+13
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5252 a436a847-0d15-0410-975c-d299462d15a1
2013-12-17Fix atom vector communication (patch from Robin Gareus, #941).David Robillard1-2/+2
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5175 a436a847-0d15-0410-975c-d299462d15a1
2013-06-09Inherit certain properties from ports connected to patch ports.David Robillard1-6/+0
This is a bit too hard-edged at present, but does the right thing when building a patch from scratch at least. Something needs to be done about removing the properties, but this is hard for outputs since the arcs aren't keyed that way. The main problem here is that Ardour barfs on plugins with MIDI input for audio tracks, so if you *ever* connect the control input to a MIDI anything, it will stick and not work in an Ardour audio track. Maybe it should be just implemented for inputs as a stop gap... git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5136 a436a847-0d15-0410-975c-d299462d15a1
2013-02-24Don't send port values to UI for audio ports (fix Calf crash).David Robillard1-1/+1
Don't set ingen:value property for non-control ports. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5081 a436a847-0d15-0410-975c-d299462d15a1
2013-02-23Move Atom implementation out of Raul so it can depend on LV2.David Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5076 a436a847-0d15-0410-975c-d299462d15a1
2013-02-03Don't lose peaks for cycles where notifications are not sent.David Robillard1-20/+12
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5046 a436a847-0d15-0410-975c-d299462d15a1
2013-02-03Port control performance improvements (further improvement for #879).David Robillard1-1/+1
Only request a redraw, not a full update, where appropriate. Use a raw double instead of GVariant for port control-changed signal. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5045 a436a847-0d15-0410-975c-d299462d15a1
2013-02-02Fix trigger and controller learn updating.David Robillard1-2/+3
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5027 a436a847-0d15-0410-975c-d299462d15a1
2013-02-02More generic Atom class.David Robillard1-3/+3
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5024 a436a847-0d15-0410-975c-d299462d15a1
2013-02-02Divorce monitor rate from block size, send updates at 10Hz.David Robillard1-12/+70
Also add a simple attempt at staggering notification times to balance the buffer load and avoid massive spikes of all ports sending notifications at the same time. This should be quite a bit more sane when running at low latency. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5017 a436a847-0d15-0410-975c-d299462d15a1
2013-02-02Add option to enable/disable canvas animation (fix/avoid #879).David Robillard1-11/+26
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5016 a436a847-0d15-0410-975c-d299462d15a1
2013-01-11Use type safe enumerations.David Robillard1-15/+16
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4918 a436a847-0d15-0410-975c-d299462d15a1
2013-01-06Fix incorrect setting of CV values in the middle of a cycle which resulted ↵David Robillard1-3/+1
in two cycles of the same partially set buffer (fix #873). git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4901 a436a847-0d15-0410-975c-d299462d15a1
2012-12-21Strip trailing whitespace.David Robillard1-2/+2
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4883 a436a847-0d15-0410-975c-d299462d15a1
2012-11-18Set atom:supports properties for patch event inputs.David Robillard1-1/+8
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4832 a436a847-0d15-0410-975c-d299462d15a1
2012-11-17Gracefully handle failure to send notifications due to buffer overrun.David Robillard1-3/+7
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4827 a436a847-0d15-0410-975c-d299462d15a1
2012-08-19GraphObject => NodeDavid Robillard1-1/+1
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4722 a436a847-0d15-0410-975c-d299462d15a1