summaryrefslogtreecommitdiff
path: root/libs/ardour/async_midi_port.cc
AgeCommit message (Collapse)Author
2017-09-18globally change all use of "frame" to refer to audio into "sample".Paul Davis
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode and video in order to keep the legible
2016-12-03Fix event type and parameter type confusionDavid Robillard
I'm not sure if this is really the best way to do event types (should it just be a completely static enum in evoral, or completely dynamic and provided by the type map, or a mix like currently?), but previously the event type was frequently set to either total garbage, or parameter types, which are a different thing. This fixes all those cases, and makes Evoral::EventType an enum so the compiler will warn about implicit conversions from int.
2016-12-03Remove Evoral::MIDIEventDavid Robillard
It is slightly questionable whether type specific methods like velocity() belong on Event at all, these may be better off as free functions. However the code currently uses them as methods in many places, and it seems like a step in the right direction, since, for example, we might some day have events that have a velocity but aren't stored as MIDI messages (e.g. if Ardour uses an internal musical model that is more expressive). In any case, the former inheritance and plethora of sloppy casts is definitely not the right thing.
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