hydrogen 1.1.1
JackMidiDriver Class Reference

#include <JackMidiDriver.h>

Inheritance diagram for JackMidiDriver:
MidiInput MidiOutput Object Object

Public Member Functions

 JackMidiDriver ()
 
virtual ~JackMidiDriver ()
 
virtual void open ()
 
virtual void close ()
 
virtual std::vector< QString > getInputPortList ()
 
virtual std::vector< QString > getOutputPortList ()
 
void getPortInfo (const QString &sPortName, int &nClient, int &nPort)
 
void JackMidiWrite (jack_nframes_t nframes)
 
void JackMidiRead (jack_nframes_t nframes)
 
virtual void handleQueueNote (Note *pNote)
 
virtual void handleQueueNoteOff (int channel, int key, int velocity)
 
virtual void handleQueueAllNoteOff ()
 
virtual void handleOutgoingControlChange (int param, int value, int channel)
 
- Public Member Functions inherited from MidiInput
 MidiInput (const char *class_name)
 
virtual ~MidiInput ()
 
virtual void open ()=0
 
virtual void close ()=0
 
virtual std::vector< QString > getOutputPortList ()=0
 
void setActive (bool isActive)
 
void handleMidiMessage (const MidiMessage &msg)
 
void handleSysexMessage (const MidiMessage &msg)
 
void handleControlChangeMessage (const MidiMessage &msg)
 
void handleProgramChangeMessage (const MidiMessage &msg)
 
void handlePolyphonicKeyPressureMessage (const MidiMessage &msg)
 
- Public Member Functions inherited from Object
 ~Object ()
 destructor More...
 
 Object (const Object &obj)
 copy constructor More...
 
 Object (const char *class_name)
 constructor More...
 
const char * class_name () const
 return the class name More...
 
virtual QString toQString (const QString &sPrefix, bool bShort=true) const
 Formatted string version for debugging purposes. More...
 
void Print (bool bShort=true) const
 Prints content of toQString() via DEBUGLOG. More...
 
- Public Member Functions inherited from MidiOutput
 MidiOutput (const char *class_name)
 
virtual ~MidiOutput ()
 
virtual std::vector< QString > getInputPortList ()=0
 
virtual void handleQueueNote (Note *pNote)=0
 
virtual void handleQueueNoteOff (int channel, int key, int velocity)=0
 
virtual void handleQueueAllNoteOff ()=0
 
virtual void handleOutgoingControlChange (int param, int value, int channel)=0
 

Private Member Functions

void JackMidiOutEvent (uint8_t *buf, uint8_t len)
 
void lock ()
 
void unlock ()
 

Private Attributes

jack_port_t * output_port
 
jack_port_t * input_port
 
jack_client_t * jack_client
 
pthread_mutex_t mtx
 
int running
 
uint8_t jack_buffer [JACK_MIDI_BUFFER_MAX *4]
 
uint32_t rx_in_pos
 
uint32_t rx_out_pos
 

Additional Inherited Members

- Static Public Member Functions inherited from Object
static void set_count (bool flag)
 enable/disable class instances counting More...
 
static bool count_active ()
 return true if class instances counting is enabled More...
 
static unsigned objects_count ()
 return the number of objects More...
 
static void write_objects_map_to (std::ostream &out)
 output the full objects map to a given ostream More...
 
static void write_objects_map_to_cerr ()
 output objects map to stderr More...
 
static int bootstrap (Logger *logger, bool count=false)
 must be called before any Object instantiation ! More...
 
static Loggerlogger ()
 return the logger instance More...
 
- Static Public Attributes inherited from Object
static QString sPrintIndention = " "
 String used to format the debugging string output of some core classes. More...
 
- Protected Member Functions inherited from MidiInput
void handleNoteOnMessage (const MidiMessage &msg)
 
void handleNoteOffMessage (const MidiMessage &msg, bool CymbalChoke)
 
- Protected Attributes inherited from MidiInput
bool m_bActive
 
- Static Protected Attributes inherited from Object
static Logger__logger = nullptr
 logger instance pointer More...
 

Constructor & Destructor Documentation

◆ JackMidiDriver()

◆ ~JackMidiDriver()

~JackMidiDriver ( )
virtual

Member Function Documentation

◆ close()

void close ( )
virtual

Implements MidiInput.

◆ getInputPortList()

std::vector< QString > getInputPortList ( )
virtual

Implements MidiOutput.

◆ getOutputPortList()

std::vector< QString > getOutputPortList ( )
virtual

Implements MidiInput.

◆ getPortInfo()

void getPortInfo ( const QString &  sPortName,
int &  nClient,
int &  nPort 
)

◆ handleOutgoingControlChange()

void handleOutgoingControlChange ( int  param,
int  value,
int  channel 
)
virtual

Implements MidiOutput.

◆ handleQueueAllNoteOff()

void handleQueueAllNoteOff ( )
virtual

Implements MidiOutput.

◆ handleQueueNote()

void handleQueueNote ( Note pNote)
virtual

Implements MidiOutput.

◆ handleQueueNoteOff()

void handleQueueNoteOff ( int  channel,
int  key,
int  velocity 
)
virtual

Implements MidiOutput.

◆ JackMidiOutEvent()

void JackMidiOutEvent ( uint8_t *  buf,
uint8_t  len 
)
private

◆ JackMidiRead()

void JackMidiRead ( jack_nframes_t  nframes)

◆ JackMidiWrite()

void JackMidiWrite ( jack_nframes_t  nframes)

◆ lock()

void lock ( void  )
private

◆ open()

void open ( )
virtual

Implements MidiInput.

◆ unlock()

void unlock ( void  )
private

Field Documentation

◆ input_port

jack_port_t* input_port
private

◆ jack_buffer

uint8_t jack_buffer[JACK_MIDI_BUFFER_MAX *4]
private

◆ jack_client

jack_client_t* jack_client
private

◆ mtx

pthread_mutex_t mtx
private

◆ output_port

jack_port_t* output_port
private

◆ running

int running
private

◆ rx_in_pos

uint32_t rx_in_pos
private

◆ rx_out_pos

uint32_t rx_out_pos
private