diff --git a/include/rawmidi.h b/include/rawmidi.h index 32bbdace..20ab4056 100644 --- a/include/rawmidi.h +++ b/include/rawmidi.h @@ -31,6 +31,8 @@ typedef enum _snd_rawmidi_stream { #define SND_RAWMIDI_APPEND 1 /** Non blocking mode \hideinitializer */ #define SND_RAWMIDI_NONBLOCK 2 +/** Write sync mode \hideinitializer */ +#define SND_RAWMIDI_SYNC 4 /** RawMidi handle */ typedef struct _snd_rawmidi snd_rawmidi_t; diff --git a/src/rawmidi/rawmidi_hw.c b/src/rawmidi/rawmidi_hw.c index 206ca47d..949b35b3 100644 --- a/src/rawmidi/rawmidi_hw.c +++ b/src/rawmidi/rawmidi_hw.c @@ -208,6 +208,10 @@ int snd_rawmidi_hw_open(snd_rawmidi_t **inputp, snd_rawmidi_t **outputp, if (mode & SND_RAWMIDI_NONBLOCK) { fmode |= O_NONBLOCK; } + + if (mode & SND_RAWMIDI_SYNC) { + fmode |= O_SYNC; + } assert(!(mode & ~(SND_RAWMIDI_APPEND|SND_RAWMIDI_NONBLOCK)));