19 #ifndef WINMME_MIDI_OUTPUT_DEVICE_H
20 #define WINMME_MIDI_OUTPUT_DEVICE_H
33 #define MaxWinMidiEventSize 256
56 bool open (UINT index, std::string& error_msg);
57 bool close (std::string& error_msg);
67 bool wait (HANDLE semaphore);
static void CALLBACK winmm_output_callback(HMIDIOUT handle, UINT msg, DWORD_PTR instance, DWORD_PTR midi_data, DWORD_PTR timestamp)
std::string get_error_string(MMRESULT error_code)
~WinMMEMidiOutputDevice()
bool signal(HANDLE semaphore)
bool stop_midi_output_thread()
pthread_t m_output_thread_handle
const std::unique_ptr< PBD::RingBuffer< uint8_t > > m_midi_buffer
bool close(std::string &error_msg)
bool enqueue_midi_event(uint64_t rel_event_time_us, const uint8_t *data, const size_t size)
void set_enabled(bool enable)
void midi_output_thread()
static void * midi_output_thread(void *)
bool wait_for_microseconds(int64_t us)
bool set_device_name(UINT index)
WinMMEMidiOutputDevice(int index)
bool open(UINT index, std::string &error_msg)
bool wait(HANDLE semaphore)
void midi_output_callback(UINT msg, DWORD_PTR data, DWORD_PTR timestamp)
bool start_midi_output_thread()