summaryrefslogtreecommitdiff
path: root/libs/ardour/async_midi_port.cc
AgeCommit message (Collapse)Author
2016-10-23Introduce "virtual" async MIDI portsRobin Gareus
This allows to flush an async MIDI port's ringbuffer at cycle-start, to makes its data available as "input/source" during process(), while collecting data in the background for the next cycle. This facilitates virtual MIDI Ports for eg. Control Surface Pads: output from a surface, input to Ardour channels.
2016-09-27move shadow port stuff from AsyncMIDIPort to MidiPort, where it belongsPaul Davis
2016-09-27expose AsyncMIDIPort::shadow_port()Paul Davis
2016-09-27set latency range for shadow port.Paul Davis
Not tracked if parent/owner port changes latency
2016-09-27Flush shadow port buffer (to the backend port buffer) if filtering wrote ↵Paul Davis
anything.
2016-09-27Add additional flags when registering a shadow port.Paul Davis
2016-09-27change API for shadow ports and filtersPaul Davis
Filter functor needs to be set before registering port, so provide it when adding the port.
2016-09-27add initial implementation of a "shadow port" for AsyncMIDIPort.Paul Davis
The shadow port is a secondary port that can be used to allow others to get a copy of part, all or none of the MIDI stream received by the owner (input) port.
2016-02-01change API of MIDI::Port::drain() to include a maximum blocking timePaul Davis
2015-10-09fix behaviour of AsyncMIDIPort so that large amounts of data are handled well.Paul Davis
Increased the size of the FIFO that acts as the intermediate between writers and the MidiBuffer. Changed implementation of ::write() to notice if MidiBuffer::push_back() fails, and then just leave data queued for subsequent calls to ::flush_output_fifo(). Note: the logic here will be broken by invalid events/data, which ALSO cause MidiBuffer::push_back() to return false. That needs fixing
2015-10-05NOOP, remove trailing tabs/whitespace.Robin Gareus
2015-10-04globally remove all trailing whitespace from ardour code base.Paul Davis
Paul Davis was responsible for introducing almost all of this.
2014-12-03fix to follow changes to evoral/libardour splitPaul Davis
2014-12-03alter Async MIDI port implementation to use crossthreadchannel on all platformsPaul Davis
2014-11-30Move EventRingBuffer to libardour.David Robillard
This is not used anywhere in Evoral and is just a wrapper around the PBD RingBuffer anyway. Towards a (once again?) independently buildable/testable Evoral and fewer cross-dependencies.
2014-05-06Add some casting and namespace specifiers to keep MSVC happyJohn Emmas
2014-04-28merge (squash) with scenechange topic branch to provide MIDI-driven scene ↵Paul Davis
change markers
2013-09-18'libs/ardour' - Further platform specific changesJohn Emmas
2013-09-18'libs/ardour' - Use 'std::vector' to implement an array whose size is ↵John Emmas
unknown (required to be buildable with MSVC)
2013-09-18'libs/ardour' - Clarify ambiguous symbols (needs to be checked)John Emmas
2013-09-18'libs/ardour/async_midi_port.cc' - Add a missing header fileJohn Emmas
2013-09-12incomplete merge of master into windows (requires upcoming changes to master ↵Paul Davis
to be complete)
2013-09-06exit early from AsyncMIDIPort::drain() if it will never be used in a process ↵Paul Davis
callback again
2013-08-08add new files (code based on the old midi++ JACKMidiPort)Paul Davis