26#ifndef LMMS_MIDI_APPLE_H
27#define LMMS_MIDI_APPLE_H
29#include "lmmsconfig.h"
31#ifdef LMMS_BUILD_APPLE
35#include <CoreMIDI/CoreMIDI.h>
45class MidiApple :
public QObject,
public MidiClient
52 inline static QString probeDevice()
57 inline static QString
name()
59 return QT_TRANSLATE_NOOP(
"MidiSetupWidget",
"Apple MIDI" );
61 inline static QString configSection()
66 virtual void processOutEvent(
const MidiEvent & _me,
67 const TimePos & _time,
68 const MidiPort * _port );
70 virtual void applyPortMode( MidiPort * _port );
71 virtual void removePort( MidiPort * _port );
75 virtual QStringList readablePorts()
const
77 return m_inputDevices.keys();
80 virtual QStringList writablePorts()
const
82 return m_outputDevices.keys();
86 virtual QString sourcePortName(
const MidiEvent & )
const;
89 virtual void subscribeReadablePort( MidiPort * _port,
90 const QString & _dest,
91 bool _subscribe =
true );
93 virtual void subscribeWritablePort( MidiPort * _port,
94 const QString & _dest,
95 bool _subscribe =
true );
97 virtual void connectRPChanged( QObject * _receiver,
98 const char * _member )
100 connect(
this,
SIGNAL( readablePortsChanged() ),
101 _receiver, _member );
105 virtual void connectWPChanged( QObject * _receiver,
106 const char * _member )
108 connect(
this,
SIGNAL( writablePortsChanged() ),
109 _receiver, _member );
113 virtual bool isRaw()
const
120 void updateDeviceList();
126 void openMidiReference( MIDIEndpointRef reference, QString refName,
bool isIn );
127 MIDIClientRef getMidiClientRef();
128 void midiInClose( MIDIEndpointRef reference );
129 static void NotifyCallback(
const MIDINotification *
message,
void *refCon );
130 static void ReadCallback(
const MIDIPacketList *pktlist,
void *readProcRefCon,
void *srcConnRefCon );
131 void HandleReadCallback(
const MIDIPacketList *pktlist,
void *srcConnRefCon );
132 void notifyMidiPortList( MidiPortList portList, MidiEvent midiEvent);
133 char * getFullName( MIDIEndpointRef &endpoint_ref );
134 void sendMidiOut( MIDIEndpointRef & endPointRef,
const MidiEvent& event );
135 MIDIPacketList createMidiPacketList(
const MidiEvent& event );
137 MIDIClientRef mClient = 0;
138 QMap<QString, MIDIEndpointRef> m_inputDevices;
139 QMap<QString, MIDIEndpointRef> m_outputDevices;
140 QMap<MIDIEndpointRef, MIDIPortRef> m_sourcePortRef;
143 using SubMap = QMap<QString, MidiPortList>;
148 void readablePortsChanged();
149 void writablePortsChanged();
static void message(int level, const char *fmt,...)
Definition adplugdb.cpp:120
Definition MidiClient.h:46
static const char * name
Definition pugl.h:1582
Definition AudioAlsa.cpp:35
#define SIGNAL
Definition tap_pinknoise.c:34