diff options
author | cbdev <cb@cbcdn.com> | 2021-06-21 21:02:20 +0200 |
---|---|---|
committer | cbdev <cb@cbcdn.com> | 2021-06-21 21:02:20 +0200 |
commit | 30268b29abe37847eab1770897e3a7f502ca8bda (patch) | |
tree | aca60b934fe46b9cf0ddd72d083b40147f5b3133 /backends/winmidi.h | |
parent | fca46bef7dd8448216d44f0777f0b5ef31ac5883 (diff) | |
parent | 91764dfc3ad86994ce27e5c80a92c034e12b849c (diff) | |
download | midimonster-mqtt.tar.gz midimonster-mqtt.tar.bz2 midimonster-mqtt.zip |
Merge branch 'master' into mqttmqtt
Diffstat (limited to 'backends/winmidi.h')
-rw-r--r-- | backends/winmidi.h | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/backends/winmidi.h b/backends/winmidi.h index 4c740ea..40b3554 100644 --- a/backends/winmidi.h +++ b/backends/winmidi.h @@ -10,9 +10,20 @@ static int winmidi_handle(size_t num, managed_fd* fds); static int winmidi_start(size_t n, instance** inst); static int winmidi_shutdown(size_t n, instance** inst); +#define EPN_NRPN 8 +#define EPN_PARAMETER_HI 4 +#define EPN_PARAMETER_LO 2 +#define EPN_VALUE_HI 1 + typedef struct /*_winmidi_instance_data*/ { char* read; char* write; + + uint8_t epn_tx_short; + uint16_t epn_control[16]; + uint16_t epn_value[16]; + uint8_t epn_status[16]; + HMIDIIN device_in; HMIDIOUT device_out; } winmidi_instance_data; @@ -20,18 +31,21 @@ typedef struct /*_winmidi_instance_data*/ { enum /*_winmidi_channel_type*/ { none = 0, note = 0x90, - cc = 0xB0, pressure = 0xA0, + cc = 0xB0, + program = 0xC0, aftertouch = 0xD0, - pitchbend = 0xE0 + pitchbend = 0xE0, + rpn = 0xF1, + nrpn = 0xF2 }; typedef union { struct { - uint8_t pad[5]; + uint8_t pad[4]; uint8_t type; uint8_t channel; - uint8_t control; + uint16_t control; } fields; uint64_t label; } winmidi_channel_ident; |