27#include "zrythm-config.h"
31# ifndef __AUDIO_WINDOWS_MME_DEVICE_H__
32# define __AUDIO_WINDOWS_MME_DEVICE_H__
48# define MIDI_BUFFER_SIZE 32768
49# define SYSEX_BUFFER_SIZE 32768
55enum WindowsMmeDeviceFlow
57 WINDOWS_MME_DEVICE_FLOW_OUTPUT,
58 WINDOWS_MME_DEVICE_FLOW_INPUT,
61typedef struct WindowsMmeDevice
69 unsigned int manufacturer_id;
70 unsigned int product_id;
71 unsigned int driver_ver_major;
72 unsigned int driver_ver_minor;
92 uint8_t sysex_buffer[SYSEX_BUFFER_SIZE];
97windows_mme_device_new (
int input,
int index);
108windows_mme_device_open (WindowsMmeDevice * dev,
int start);
116windows_mme_device_close (WindowsMmeDevice * self,
int free);
119windows_mme_device_start (WindowsMmeDevice * self);
122windows_mme_device_stop (WindowsMmeDevice * self);
145windows_mme_device_input_cb (
148 DWORD_PTR dwInstance,
165windows_mme_device_dequeue_midi_event_struct (
166 WindowsMmeDevice * self,
167 uint64_t timestamp_start,
168 uint64_t timestamp_end,
176windows_mme_device_dequeue_midi_event (
177 WindowsMmeDevice * self,
178 uint64_t timestamp_start,
179 uint64_t timestamp_end,
180 uint64_t * timestamp,
189windows_mme_device_print_info (WindowsMmeDevice * dev);
192windows_mme_device_free (WindowsMmeDevice * dev);