summaryrefslogtreecommitdiff
path: root/libs/backends/portaudio/winmmemidi_io.h
diff options
context:
space:
mode:
authorTim Mayberry <mojofunk@gmail.com>2015-12-04 22:23:01 +1000
committerTim Mayberry <mojofunk@gmail.com>2016-02-11 12:15:07 +1000
commitb2cf028fcba055110a9b1bf36af0fb6bd443c1af (patch)
treeaa1bd198841daef6b5753180bf78a33cd105c172 /libs/backends/portaudio/winmmemidi_io.h
parentd54a32037406775cad9431c3f0cc21fa9670fba2 (diff)
Implement MIDI device enumeration and latency offset/calibration in portaudio backend
Diffstat (limited to 'libs/backends/portaudio/winmmemidi_io.h')
-rw-r--r--libs/backends/portaudio/winmmemidi_io.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/libs/backends/portaudio/winmmemidi_io.h b/libs/backends/portaudio/winmmemidi_io.h
index 28450e95cb..672a68cc73 100644
--- a/libs/backends/portaudio/winmmemidi_io.h
+++ b/libs/backends/portaudio/winmmemidi_io.h
@@ -31,6 +31,8 @@
#include "winmmemidi_input_device.h"
#include "winmmemidi_output_device.h"
+#include "midi_device_info.h"
+
namespace ARDOUR {
struct WinMMEMIDIPacket {
@@ -79,6 +81,12 @@ public:
std::vector<WinMMEMidiInputDevice*> get_inputs () { return m_inputs; }
std::vector<WinMMEMidiOutputDevice*> get_outputs () { return m_outputs; }
+ void update_device_info ();
+
+ std::vector<MidiDeviceInfo*> get_device_info () { return m_device_info; }
+
+ MidiDeviceInfo* get_device_info (const std::string& name);
+
std::string port_id (uint32_t, bool input);
std::string port_name (uint32_t, bool input);
@@ -91,6 +99,12 @@ public:
}
private: // Methods
+
+ void clear_device_info ();
+
+ static bool get_input_name_from_index (int index, std::string& name);
+ static bool get_output_name_from_index (int index, std::string& name);
+
void discover ();
void cleanup ();
@@ -105,6 +119,8 @@ private: // Methods
private: // Data
+ std::vector<MidiDeviceInfo*> m_device_info;
+
std::vector<WinMMEMidiInputDevice*> m_inputs;
std::vector<WinMMEMidiOutputDevice*> m_outputs;