27#include "zrythm-config.h"
31# ifndef __AUDIO_WINDOWS_MME_DEVICE_H__
32# define __AUDIO_WINDOWS_MME_DEVICE_H__
49# define MIDI_BUFFER_SIZE 32768
50# define SYSEX_BUFFER_SIZE 32768
56enum WindowsMmeDeviceFlow
58 WINDOWS_MME_DEVICE_FLOW_OUTPUT,
59 WINDOWS_MME_DEVICE_FLOW_INPUT,
62typedef struct WindowsMmeDevice
70 unsigned int manufacturer_id;
71 unsigned int product_id;
72 unsigned int driver_ver_major;
73 unsigned int driver_ver_minor;
93 uint8_t sysex_buffer[SYSEX_BUFFER_SIZE];
98windows_mme_device_new (
int input,
int index);
109windows_mme_device_open (WindowsMmeDevice * dev,
int start);
117windows_mme_device_close (WindowsMmeDevice * self,
int free);
120windows_mme_device_start (WindowsMmeDevice * self);
123windows_mme_device_stop (WindowsMmeDevice * self);
146windows_mme_device_input_cb (
149 DWORD_PTR dwInstance,
166windows_mme_device_dequeue_midi_event_struct (
167 WindowsMmeDevice * self,
168 uint64_t timestamp_start,
169 uint64_t timestamp_end,
177windows_mme_device_dequeue_midi_event (
178 WindowsMmeDevice * self,
179 uint64_t timestamp_start,
180 uint64_t timestamp_end,
181 uint64_t * timestamp,
190windows_mme_device_print_info (WindowsMmeDevice * dev);
193windows_mme_device_free (WindowsMmeDevice * dev);