-/*
- * Instrument abstraction layer
- * - based on events
- */
-
-/* instrument types */
-#define SNDRV_SEQ_INSTR_ATYPE_DATA 0 /* instrument data */
-#define SNDRV_SEQ_INSTR_ATYPE_ALIAS 1 /* instrument alias */
-
-/* instrument ASCII identifiers */
-#define SNDRV_SEQ_INSTR_ID_DLS1 "DLS1"
-#define SNDRV_SEQ_INSTR_ID_DLS2 "DLS2"
-#define SNDRV_SEQ_INSTR_ID_SIMPLE "Simple Wave"
-#define SNDRV_SEQ_INSTR_ID_SOUNDFONT "SoundFont"
-#define SNDRV_SEQ_INSTR_ID_GUS_PATCH "GUS Patch"
-#define SNDRV_SEQ_INSTR_ID_INTERWAVE "InterWave FFFF"
-#define SNDRV_SEQ_INSTR_ID_OPL2_3 "OPL2/3 FM"
-#define SNDRV_SEQ_INSTR_ID_OPL4 "OPL4"
-
-/* instrument types */
-#define SNDRV_SEQ_INSTR_TYPE0_DLS1 (1<<0) /* MIDI DLS v1 */
-#define SNDRV_SEQ_INSTR_TYPE0_DLS2 (1<<1) /* MIDI DLS v2 */
-#define SNDRV_SEQ_INSTR_TYPE1_SIMPLE (1<<0) /* Simple Wave */
-#define SNDRV_SEQ_INSTR_TYPE1_SOUNDFONT (1<<1) /* EMU SoundFont */
-#define SNDRV_SEQ_INSTR_TYPE1_GUS_PATCH (1<<2) /* Gravis UltraSound Patch */
-#define SNDRV_SEQ_INSTR_TYPE1_INTERWAVE (1<<3) /* InterWave FFFF */
-#define SNDRV_SEQ_INSTR_TYPE2_OPL2_3 (1<<0) /* Yamaha OPL2/3 FM */
-#define SNDRV_SEQ_INSTR_TYPE2_OPL4 (1<<1) /* Yamaha OPL4 */
-
-/* put commands */
-#define SNDRV_SEQ_INSTR_PUT_CMD_CREATE 0
-#define SNDRV_SEQ_INSTR_PUT_CMD_REPLACE 1
-#define SNDRV_SEQ_INSTR_PUT_CMD_MODIFY 2
-#define SNDRV_SEQ_INSTR_PUT_CMD_ADD 3
-#define SNDRV_SEQ_INSTR_PUT_CMD_REMOVE 4
-
-/* get commands */
-#define SNDRV_SEQ_INSTR_GET_CMD_FULL 0
-#define SNDRV_SEQ_INSTR_GET_CMD_PARTIAL 1
-
-/* query flags */
-#define SNDRV_SEQ_INSTR_QUERY_FOLLOW_ALIAS (1<<0)
-
-/* free commands */
-#define SNDRV_SEQ_INSTR_FREE_CMD_ALL 0
-#define SNDRV_SEQ_INSTR_FREE_CMD_PRIVATE 1
-#define SNDRV_SEQ_INSTR_FREE_CMD_CLUSTER 2
-#define SNDRV_SEQ_INSTR_FREE_CMD_SINGLE 3
-
-/* size of ROM/RAM */
-typedef unsigned int snd_seq_instr_size_t;
-
-/* INSTR_INFO */
-
-struct snd_seq_instr_info {
- int result; /* operation result */
- unsigned int formats[8]; /* bitmap of supported formats */
- int ram_count; /* count of RAM banks */
- snd_seq_instr_size_t ram_sizes[16]; /* size of RAM banks */
- int rom_count; /* count of ROM banks */
- snd_seq_instr_size_t rom_sizes[8]; /* size of ROM banks */
- char reserved[128];
-};
-
-/* INSTR_STATUS */
-
-struct snd_seq_instr_status {
- int result; /* operation result */
- snd_seq_instr_size_t free_ram[16]; /* free RAM in banks */
- int instrument_count; /* count of downloaded instruments */
- char reserved[128];
-};
-
-/* INSTR_FORMAT_INFO */
-
-struct snd_seq_instr_format_info {
- char format[16]; /* format identifier - SNDRV_SEQ_INSTR_ID_* */
- unsigned int len; /* max data length (without this structure) */
-};
-
-struct snd_seq_instr_format_info_result {
- int result; /* operation result */
- char format[16]; /* format identifier */
- unsigned int len; /* filled data length (without this structure) */
-};
-
-/* instrument data */
-struct snd_seq_instr_data {
- char name[32]; /* instrument name */
- char reserved[16]; /* for the future use */
- int type; /* instrument type */
- union {
- char format[16]; /* format identifier */
- struct snd_seq_instr alias;
- } data;
-};
-
-/* INSTR_PUT/GET, data are stored in one block (extended), header + data */
-
-struct snd_seq_instr_header {
- union {
- struct snd_seq_instr instr;
- snd_seq_instr_cluster_t cluster;
- } id; /* instrument identifier */
- unsigned int cmd; /* get/put/free command */
- unsigned int flags; /* query flags (only for get) */
- unsigned int len; /* real instrument data length (without header) */
- int result; /* operation result */
- char reserved[16]; /* for the future */
- struct snd_seq_instr_data data; /* instrument data (for put/get result) */
-};
-
-/* INSTR_CLUSTER_SET */
-
-struct snd_seq_instr_cluster_set {
- snd_seq_instr_cluster_t cluster; /* cluster identifier */
- char name[32]; /* cluster name */
- int priority; /* cluster priority */
- char reserved[64]; /* for the future use */
-};
-
-/* INSTR_CLUSTER_GET */
-
-struct snd_seq_instr_cluster_get {
- snd_seq_instr_cluster_t cluster; /* cluster identifier */
- char name[32]; /* cluster name */
- int priority; /* cluster priority */
- char reserved[64]; /* for the future use */
-};
-