linux/include/sound/ump_msg.h

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Universal MIDI Packet (UMP): Message Definitions
 */
#ifndef __SOUND_UMP_MSG_H
#define __SOUND_UMP_MSG_H

/* MIDI 1.0 / 2.0 Status Code (4bit) */
enum {};

/* MIDI 1.0 Channel Control (7bit) */
enum {};

/* MIDI 1.0 / 2.0 System Messages (0xfx) */
enum {};

/* MIDI 1.0 Realtime and SysEx status messages (0xfx) */
enum {};

/*
 * UMP Message Definitions
 */

/* MIDI 1.0 Note Off / Note On (32bit) */
struct snd_ump_midi1_msg_note {} __packed;

/* MIDI 1.0 Poly Pressure (32bit) */
struct snd_ump_midi1_msg_paf {} __packed;

/* MIDI 1.0 Control Change (32bit) */
struct snd_ump_midi1_msg_cc {} __packed;

/* MIDI 1.0 Program Change (32bit) */
struct snd_ump_midi1_msg_program {} __packed;

/* MIDI 1.0 Channel Pressure (32bit) */
struct snd_ump_midi1_msg_caf {} __packed;

/* MIDI 1.0 Pitch Bend (32bit) */
struct snd_ump_midi1_msg_pitchbend {} __packed;

/* System Common and Real Time messages (32bit); no channel field */
struct snd_ump_system_msg {} __packed;

/* MIDI 1.0 UMP CVM (32bit) */
snd_ump_midi1_msg;

/* MIDI 2.0 Note Off / Note On (64bit) */
struct snd_ump_midi2_msg_note {} __packed;

/* MIDI 2.0 Poly Pressure (64bit) */
struct snd_ump_midi2_msg_paf {} __packed;

/* MIDI 2.0 Per-Note Controller (64bit) */
struct snd_ump_midi2_msg_pernote_cc {} __packed;

/* MIDI 2.0 Per-Note Management (64bit) */
struct snd_ump_midi2_msg_pernote_mgmt {} __packed;

/* MIDI 2.0 Control Change (64bit) */
struct snd_ump_midi2_msg_cc {} __packed;

/* MIDI 2.0 Registered Controller (RPN) / Assignable Controller (NRPN) (64bit) */
struct snd_ump_midi2_msg_rpn {} __packed;

/* MIDI 2.0 Program Change (64bit) */
struct snd_ump_midi2_msg_program {} __packed;

/* MIDI 2.0 Channel Pressure (64bit) */
struct snd_ump_midi2_msg_caf {} __packed;

/* MIDI 2.0 Pitch Bend (64bit) */
struct snd_ump_midi2_msg_pitchbend {} __packed;

/* MIDI 2.0 Per-Note Pitch Bend (64bit) */
struct snd_ump_midi2_msg_pernote_pitchbend {} __packed;

/* MIDI 2.0 UMP CVM (64bit) */
snd_ump_midi2_msg;

/* UMP Stream Message: Endpoint Discovery (128bit) */
struct snd_ump_stream_msg_ep_discovery {} __packed;

/* UMP Stream Message: Endpoint Info Notification (128bit) */
struct snd_ump_stream_msg_ep_info {} __packed;

/* UMP Stream Message: Device Info Notification (128bit) */
struct snd_ump_stream_msg_devince_info {} __packed;

/* UMP Stream Message: Stream Config Request / Notification (128bit) */
struct snd_ump_stream_msg_stream_cfg {} __packed;

/* UMP Stream Message: Function Block Discovery (128bit) */
struct snd_ump_stream_msg_fb_discovery {} __packed;

/* UMP Stream Message: Function Block Info Notification (128bit) */
struct snd_ump_stream_msg_fb_info {} __packed;

/* UMP Stream Message: Function Block Name Notification (128bit) */
struct snd_ump_stream_msg_fb_name {} __packed;

/* MIDI 2.0 Stream Messages (128bit) */
snd_ump_stream_msg;

#endif /* __SOUND_UMP_MSG_H */