Ardour
9.0-pre0-582-g084a23a80d
|
#include <async_midi_port.h>
Public Member Functions | |
AsyncMIDIPort (std::string const &, PortFlags) | |
~AsyncMIDIPort () | |
bool | flush_at_cycle_start () const |
void | set_flush_at_cycle_start (bool en) |
void | cycle_start (pframes_t nframes) |
void | cycle_end (pframes_t nframes) |
void | parse (samplecnt_t timestamp) |
int | write (const MIDI::byte *msg, size_t msglen, MIDI::timestamp_t timestamp) |
int | read (MIDI::byte *buf, size_t bufsize) |
void | drain (int check_interval_usecs, int total_usecs_to_wait) |
void | clear () |
CrossThreadChannel & | xthread () |
int | selectable () const |
void | set_timer (std::function< samplecnt_t(void)> &) |
Public Member Functions inherited from ARDOUR::MidiPort | |
~MidiPort () | |
DataType | type () const |
void | cycle_start (pframes_t nframes) |
void | cycle_end (pframes_t nframes) |
void | cycle_split () |
void | flush_buffers (pframes_t nframes) |
void | transport_stopped () |
void | realtime_locate (bool) |
void | reset () |
void | require_resolve () |
bool | input_active () const |
void | set_input_active (bool yn) |
Buffer & | get_buffer (pframes_t nframes) |
MidiBuffer & | get_midi_buffer (pframes_t nframes) |
void | set_trace (std::weak_ptr< MIDI::Parser > trace_parser) |
std::shared_ptr< MIDI::Parser > | trace_parser () const |
void | set_inbound_filter (MidiFilter) |
int | add_shadow_port (std::string const &, MidiFilter) |
std::shared_ptr< MidiPort > | shadow_port () const |
void | read_and_parse_entire_midi_buffer_with_no_speed_adjustment (pframes_t nframes, MIDI::Parser &parser, samplepos_t now) |
Public Member Functions inherited from ARDOUR::Port | |
Port (const Port &)=delete | |
Port & | operator= (const Port &)=delete |
virtual | ~Port () |
std::string | name () const |
std::string | pretty_name (bool fallback_to_name=false) const |
bool | set_pretty_name (const std::string &) |
int | set_name (std::string const &) |
PortFlags | flags () const |
bool | receives_input () const |
bool | sends_output () const |
bool | connected () const |
int | disconnect_all () |
int | get_connections (std::vector< std::string > &) const |
bool | connected_to (std::string const &) const |
int | connect (std::string const &) |
int | disconnect (std::string const &) |
bool | connected_to (Port *) const |
virtual int | connect (Port *) |
int | disconnect (Port *) |
void | request_input_monitoring (bool) |
void | ensure_input_monitoring (bool) |
bool | monitoring_input () const |
int | reestablish () |
int | reconnect () |
bool | last_monitor () const |
void | set_last_monitor (bool yn) |
PortEngine::PortHandle | port_handle () |
void | get_connected_latency_range (LatencyRange &range, bool playback) const |
void | collect_latency_from_backend (LatencyRange &range, bool playback) const |
void | set_private_latency_range (LatencyRange &range, bool playback) |
const LatencyRange & | private_latency_range (bool playback) const |
void | set_public_latency_range (LatencyRange const &range, bool playback) const |
LatencyRange | public_latency_range (bool playback) const |
virtual void | reinit (bool) |
virtual void | set_buffer_size (pframes_t) |
bool | has_ext_connection () const |
bool | physically_connected () const |
bool | in_cycle () const |
uint32_t | externally_connected () const |
uint32_t | internally_connected () const |
void | increment_external_connections () |
void | decrement_external_connections () |
void | increment_internal_connections () |
void | decrement_internal_connections () |
virtual XMLNode & | get_state () const |
virtual int | set_state (const XMLNode &, int version) |
Public Member Functions inherited from MIDI::Port | |
Port (std::string const &, Flags) | |
Port (const XMLNode &) | |
virtual | ~Port () |
virtual XMLNode & | get_state () const |
virtual void | set_state (const XMLNode &) |
int | midimsg (byte *msg, size_t len, timestamp_t timestamp) |
bool | clock (timestamp_t timestamp) |
Channel * | channel (channel_t chn) |
Parser * | parser () |
const char * | name () const |
bool | ok () const |
virtual bool | centrally_parsed () const |
void | set_centrally_parsed (bool yn) |
bool | receives_input () const |
bool | sends_output () const |
Static Public Member Functions | |
static void | set_process_thread (pthread_t) |
static pthread_t | get_process_thread () |
static bool | is_process_thread () |
Static Public Member Functions inherited from ARDOUR::Port | |
static void | set_connecting_blocked (bool yn) |
static bool | connecting_blocked () |
static void | set_varispeed_ratio (double s) |
static bool | set_engine_ratio (double session, double engine) |
static void | set_cycle_samplecnt (pframes_t n) |
static samplecnt_t | port_offset () |
static void | set_global_port_buffer_offset (pframes_t off) |
static void | increment_global_port_buffer_offset (pframes_t n) |
static pframes_t | cycle_nframes () |
static double | speed_ratio () |
static double | engine_ratio () |
static double | resample_ratio () |
static uint32_t | resampler_quality () |
static uint32_t | resampler_latency () |
static bool | can_varispeed () |
static bool | setup_resampler (uint32_t q=17) |
Private Member Functions | |
int | create_port () |
void | jack_halted () |
void | make_connections () |
void | init (std::string const &, Flags) |
void | flush_output_fifo (pframes_t) |
Private Attributes | |
bool | _currently_in_cycle |
MIDI::timestamp_t | _last_write_timestamp |
bool | _flush_at_cycle_start |
bool | have_timer |
std::function< samplecnt_t(void)> | timer |
PBD::RingBuffer< Evoral::Event< double > > | output_fifo |
EventRingBuffer< MIDI::timestamp_t > | input_fifo |
Glib::Threads::Mutex | output_fifo_lock |
CrossThreadChannel | _xthread |
std::string | _connections |
PBD::ScopedConnection | connect_connection |
PBD::ScopedConnection | halt_connection |
Static Private Attributes | |
static pthread_t | _process_thread |
Additional Inherited Members | |
Public Types inherited from ARDOUR::MidiPort | |
typedef std::function< bool(MidiBuffer &, MidiBuffer &)> | MidiFilter |
Public Types inherited from MIDI::Port | |
enum | Flags { IsInput = 0x1 , IsOutput = 0x2 } |
Public Attributes inherited from ARDOUR::Port | |
PBD::Signal< void(bool)> | MonitorInputChanged |
PBD::Signal< void(std::shared_ptr< Port >, std::shared_ptr< Port >, bool)> | ConnectedOrDisconnected |
Static Public Attributes inherited from ARDOUR::Port | |
static PBD::Signal< void()> | PortDrop |
static PBD::Signal< void()> | PortSignalDrop |
static PBD::Signal< void()> | ResamplerQualityChanged |
static std::string | state_node_name |
Static Public Attributes inherited from MIDI::Port | |
static std::string | state_node_name |
Protected Member Functions inherited from ARDOUR::MidiPort | |
MidiPort (const std::string &name, PortFlags) | |
Protected Member Functions inherited from ARDOUR::Port | |
Port (std::string const &, DataType, PortFlags) | |
Protected Member Functions inherited from MIDI::Port | |
void | init (std::string const &, Flags) |
Protected Attributes inherited from ARDOUR::Port | |
PortEngine::PortPtr | _port_handle |
LatencyRange | _private_playback_latency |
LatencyRange | _private_capture_latency |
Protected Attributes inherited from MIDI::Port | |
bool | _ok |
std::string | _tagname |
Channel * | _channel [16] |
Parser * | _parser |
Flags | _flags |
bool | _centrally_parsed |
Static Protected Attributes inherited from ARDOUR::Port | |
static bool | _connecting_blocked |
static pframes_t | _cycle_nframes |
static pframes_t | _global_port_buffer_offset |
static double | _speed_ratio |
static double | _engine_ratio |
static double | _resample_ratio |
Definition at line 43 of file async_midi_port.h.
ARDOUR::AsyncMIDIPort::AsyncMIDIPort | ( | std::string const & | , |
PortFlags | |||
) |
ARDOUR::AsyncMIDIPort::~AsyncMIDIPort | ( | ) |
|
inline |
Definition at line 64 of file async_midi_port.h.
|
private |
|
virtual |
Reimplemented from ARDOUR::Port.
|
virtual |
Reimplemented from ARDOUR::Port.
|
virtual |
block until the output FIFO used by non-process threads is empty, checking every check_interval_usecs usecs for current status. Not to be called by a thread that executes any part of a JACK process callback (will simply return immediately in that situation).
Reimplemented from MIDI::Port.
|
inline |
Definition at line 49 of file async_midi_port.h.
|
private |
|
inlinestatic |
Definition at line 77 of file async_midi_port.h.
|
private |
|
static |
|
private |
|
private |
|
virtual |
Implements MIDI::Port.
|
virtual |
Read raw bytes from a port.
buf | memory to store read data in |
bufsize | size of buf |
Implements MIDI::Port.
|
inlinevirtual |
Get the file descriptor for port.
Implements MIDI::Port.
Definition at line 73 of file async_midi_port.h.
|
inline |
Definition at line 50 of file async_midi_port.h.
|
static |
void ARDOUR::AsyncMIDIPort::set_timer | ( | std::function< samplecnt_t(void)> & | ) |
|
virtual |
Write a message to port.
msg | Raw MIDI message to send |
msglen | Size of msg |
timestamp | Time stamp in samples of this message (relative to cycle start) |
Implements MIDI::Port.
|
inline |
Definition at line 68 of file async_midi_port.h.
|
private |
Channel used to signal to the MidiControlUI that input has arrived
Definition at line 95 of file async_midi_port.h.
|
private |
Definition at line 81 of file async_midi_port.h.
|
private |
Definition at line 83 of file async_midi_port.h.
|
private |
Definition at line 82 of file async_midi_port.h.
|
staticprivate |
Definition at line 104 of file async_midi_port.h.
|
private |
Definition at line 89 of file async_midi_port.h.
|
private |
Definition at line 96 of file async_midi_port.h.
|
private |
Definition at line 97 of file async_midi_port.h.
|
private |
Definition at line 84 of file async_midi_port.h.
|
private |
Definition at line 87 of file async_midi_port.h.
|
private |
Definition at line 86 of file async_midi_port.h.
|
private |
Definition at line 88 of file async_midi_port.h.
|
private |
Definition at line 85 of file async_midi_port.h.