Ardour  9.0-pre0-582-g084a23a80d
ARDOUR::CoreMidiIo Class Reference

#include <coremidi_io.h>

Public Member Functions

 CoreMidiIo (void)
 
 ~CoreMidiIo (void)
 
void start ()
 
void stop ()
 
void start_cycle (MIDITimeStamp, double cycle_ns)
 
int send_event (uint32_t, double, const uint8_t *, const size_t)
 
size_t recv_event (uint32_t, uint64_t &, uint8_t *, size_t &)
 
uint32_t n_midi_inputs (void) const
 
uint32_t n_midi_outputs (void) const
 
std::string port_id (uint32_t, bool input)
 
std::string port_name (uint32_t, bool input)
 
void notify_proc (const MIDINotification *message)
 
void set_enabled (bool yn=true)
 
bool enabled (void) const
 
void set_port_changed_callback (void(changed_callback(void *)), void *arg)
 

Private Member Functions

void discover ()
 
void cleanup ()
 

Private Attributes

MIDIClientRef _midi_client
 
MIDIEndpointRef * _input_endpoints
 
MIDIEndpointRef * _output_endpoints
 
MIDIPortRef * _input_ports
 
MIDIPortRef * _output_ports
 
CoreMIDIQueue_input_queue
 
PBD::RingBuffer< uint8_t > ** _rb
 
uint32_t _n_midi_in
 
uint32_t _n_midi_out
 
MIDITimeStamp _send_start
 
MIDITimeStamp _recv_start
 
MIDITimeStamp _recv_end
 
bool _active
 
bool _enabled
 
bool _run
 
void(* _changed_callback )(void *)
 
void * _changed_arg
 
pthread_mutex_t _discovery_lock
 

Detailed Description

Definition at line 68 of file coremidi_io.h.

Constructor & Destructor Documentation

◆ CoreMidiIo()

ARDOUR::CoreMidiIo::CoreMidiIo ( void  )

◆ ~CoreMidiIo()

ARDOUR::CoreMidiIo::~CoreMidiIo ( void  )

Member Function Documentation

◆ cleanup()

void ARDOUR::CoreMidiIo::cleanup ( )
private

◆ discover()

void ARDOUR::CoreMidiIo::discover ( )
private

◆ enabled()

bool ARDOUR::CoreMidiIo::enabled ( void  ) const
inline

Definition at line 89 of file coremidi_io.h.

◆ n_midi_inputs()

uint32_t ARDOUR::CoreMidiIo::n_midi_inputs ( void  ) const
inline

Definition at line 81 of file coremidi_io.h.

◆ n_midi_outputs()

uint32_t ARDOUR::CoreMidiIo::n_midi_outputs ( void  ) const
inline

Definition at line 82 of file coremidi_io.h.

◆ notify_proc()

void ARDOUR::CoreMidiIo::notify_proc ( const MIDINotification *  message)

◆ port_id()

std::string ARDOUR::CoreMidiIo::port_id ( uint32_t  ,
bool  input 
)

◆ port_name()

std::string ARDOUR::CoreMidiIo::port_name ( uint32_t  ,
bool  input 
)

◆ recv_event()

size_t ARDOUR::CoreMidiIo::recv_event ( uint32_t  ,
uint64_t &  ,
uint8_t *  ,
size_t &   
)

◆ send_event()

int ARDOUR::CoreMidiIo::send_event ( uint32_t  ,
double  ,
const uint8_t *  ,
const  size_t 
)

◆ set_enabled()

void ARDOUR::CoreMidiIo::set_enabled ( bool  yn = true)
inline

Definition at line 88 of file coremidi_io.h.

◆ set_port_changed_callback()

void ARDOUR::CoreMidiIo::set_port_changed_callback ( void(changed_callback(void *))  ,
void *  arg 
)
inline

Definition at line 91 of file coremidi_io.h.

◆ start()

void ARDOUR::CoreMidiIo::start ( )

◆ start_cycle()

void ARDOUR::CoreMidiIo::start_cycle ( MIDITimeStamp  ,
double  cycle_ns 
)

◆ stop()

void ARDOUR::CoreMidiIo::stop ( )

Member Data Documentation

◆ _active

bool ARDOUR::CoreMidiIo::_active
private

Definition at line 115 of file coremidi_io.h.

◆ _changed_arg

void* ARDOUR::CoreMidiIo::_changed_arg
private

Definition at line 120 of file coremidi_io.h.

◆ _changed_callback

void(* ARDOUR::CoreMidiIo::_changed_callback) (void *)
private

Definition at line 119 of file coremidi_io.h.

◆ _discovery_lock

pthread_mutex_t ARDOUR::CoreMidiIo::_discovery_lock
private

Definition at line 122 of file coremidi_io.h.

◆ _enabled

bool ARDOUR::CoreMidiIo::_enabled
private

Definition at line 116 of file coremidi_io.h.

◆ _input_endpoints

MIDIEndpointRef* ARDOUR::CoreMidiIo::_input_endpoints
private

Definition at line 101 of file coremidi_io.h.

◆ _input_ports

MIDIPortRef* ARDOUR::CoreMidiIo::_input_ports
private

Definition at line 103 of file coremidi_io.h.

◆ _input_queue

CoreMIDIQueue* ARDOUR::CoreMidiIo::_input_queue
private

Definition at line 105 of file coremidi_io.h.

◆ _midi_client

MIDIClientRef ARDOUR::CoreMidiIo::_midi_client
private

Definition at line 100 of file coremidi_io.h.

◆ _n_midi_in

uint32_t ARDOUR::CoreMidiIo::_n_midi_in
private

Definition at line 109 of file coremidi_io.h.

◆ _n_midi_out

uint32_t ARDOUR::CoreMidiIo::_n_midi_out
private

Definition at line 110 of file coremidi_io.h.

◆ _output_endpoints

MIDIEndpointRef* ARDOUR::CoreMidiIo::_output_endpoints
private

Definition at line 102 of file coremidi_io.h.

◆ _output_ports

MIDIPortRef* ARDOUR::CoreMidiIo::_output_ports
private

Definition at line 104 of file coremidi_io.h.

◆ _rb

PBD::RingBuffer<uint8_t>** ARDOUR::CoreMidiIo::_rb
private

Definition at line 107 of file coremidi_io.h.

◆ _recv_end

MIDITimeStamp ARDOUR::CoreMidiIo::_recv_end
private

Definition at line 114 of file coremidi_io.h.

◆ _recv_start

MIDITimeStamp ARDOUR::CoreMidiIo::_recv_start
private

Definition at line 113 of file coremidi_io.h.

◆ _run

bool ARDOUR::CoreMidiIo::_run
private

Definition at line 117 of file coremidi_io.h.

◆ _send_start

MIDITimeStamp ARDOUR::CoreMidiIo::_send_start
private

Definition at line 112 of file coremidi_io.h.


The documentation for this class was generated from the following file: