11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef __SOUND_SFNT_INFO_H 21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define __SOUND_SFNT_INFO_H 31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Patch record compatible with AWE driver on OSS 61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Copyright (C) 1999-2000 Takashi Iwai 81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * This program is free software; you can redistribute it and/or modify 101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * it under the terms of the GNU General Public License as published by 111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * the Free Software Foundation; either version 2 of the License, or 121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * (at your option) any later version. 131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * This program is distributed in the hope that it will be useful, 151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * but WITHOUT ANY WARRANTY; without even the implied warranty of 161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * GNU General Public License for more details. 181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * You should have received a copy of the GNU General Public License 201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * along with this program; if not, write to the Free Software 211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <sound/asound.h> 261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * patch information record 291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifdef SNDRV_BIG_ENDIAN 321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_OSS_PATCHKEY(id) (0xfd00|id) 331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#else 341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_OSS_PATCHKEY(id) ((id<<8)|0xfd) 351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif 361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* patch interface header: 16 bytes */ 3803da312ac080b4f5c9359c233b8812cc93a035feTakashi Iwaistruct soundfont_patch_info { 391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned short key; /* use the key below */ 401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_OSS_SOUNDFONT_PATCH SNDRV_OSS_PATCHKEY(0x07) 411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds short device_no; /* synthesizer number */ 431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned short sf_id; /* file id (should be zero) */ 441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds short optarg; /* optional argument */ 451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int len; /* data length (without this header) */ 461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds short type; /* patch operation type */ 481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_SFNT_LOAD_INFO 0 /* awe_voice_rec */ 491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_SFNT_LOAD_DATA 1 /* awe_sample_info */ 501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_SFNT_OPEN_PATCH 2 /* awe_open_parm */ 511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_SFNT_CLOSE_PATCH 3 /* none */ 521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* 4 is obsolete */ 531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_SFNT_REPLACE_DATA 5 /* awe_sample_info (optarg=#channels)*/ 541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_SFNT_MAP_PRESET 6 /* awe_voice_map */ 551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* 7 is not used */ 561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_SFNT_PROBE_DATA 8 /* optarg=sample */ 571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_SFNT_REMOVE_INFO 9 /* optarg=(bank<<8)|instr */ 581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds short reserved; /* word alignment data */ 601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* the actual patch data begins after this */ 6203da312ac080b4f5c9359c233b8812cc93a035feTakashi Iwai}; 631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * open patch 671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_SFNT_PATCH_NAME_LEN 32 701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7103da312ac080b4f5c9359c233b8812cc93a035feTakashi Iwaistruct soundfont_open_parm { 721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned short type; /* sample type */ 731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_SFNT_PAT_TYPE_MISC 0 741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_SFNT_PAT_TYPE_GUS 6 751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_SFNT_PAT_TYPE_MAP 7 761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_SFNT_PAT_LOCKED 0x100 /* lock the samples */ 771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_SFNT_PAT_SHARED 0x200 /* sample is shared */ 781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds short reserved; 801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds char name[SNDRV_SFNT_PATCH_NAME_LEN]; 8103da312ac080b4f5c9359c233b8812cc93a035feTakashi Iwai}; 821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * raw voice information record 861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* wave table envelope & effect parameters to control EMU8000 */ 8903da312ac080b4f5c9359c233b8812cc93a035feTakashi Iwaistruct soundfont_voice_parm { 901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned short moddelay; /* modulation delay (0x8000) */ 911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned short modatkhld; /* modulation attack & hold time (0x7f7f) */ 921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned short moddcysus; /* modulation decay & sustain (0x7f7f) */ 931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned short modrelease; /* modulation release time (0x807f) */ 941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds short modkeyhold, modkeydecay; /* envelope change per key (not used) */ 951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned short voldelay; /* volume delay (0x8000) */ 961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned short volatkhld; /* volume attack & hold time (0x7f7f) */ 971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned short voldcysus; /* volume decay & sustain (0x7f7f) */ 981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned short volrelease; /* volume release time (0x807f) */ 991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds short volkeyhold, volkeydecay; /* envelope change per key (not used) */ 1001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned short lfo1delay; /* LFO1 delay (0x8000) */ 1011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned short lfo2delay; /* LFO2 delay (0x8000) */ 1021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned short pefe; /* modulation pitch & cutoff (0x0000) */ 1031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned short fmmod; /* LFO1 pitch & cutoff (0x0000) */ 1041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned short tremfrq; /* LFO1 volume & freq (0x0000) */ 1051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned short fm2frq2; /* LFO2 pitch & freq (0x0000) */ 1061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned char cutoff; /* initial cutoff (0xff) */ 1071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned char filterQ; /* initial filter Q [0-15] (0x0) */ 1081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned char chorus; /* chorus send (0x00) */ 1091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned char reverb; /* reverb send (0x00) */ 1101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned short reserved[4]; /* not used */ 11103da312ac080b4f5c9359c233b8812cc93a035feTakashi Iwai}; 1121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* wave table parameters: 92 bytes */ 11503da312ac080b4f5c9359c233b8812cc93a035feTakashi Iwaistruct soundfont_voice_info { 1161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned short sf_id; /* file id (should be zero) */ 1171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned short sample; /* sample id */ 1181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int start, end; /* sample offset correction */ 1191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int loopstart, loopend; /* loop offset correction */ 1201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds short rate_offset; /* sample rate pitch offset */ 1211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned short mode; /* sample mode */ 1221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_SFNT_MODE_ROMSOUND 0x8000 1231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_SFNT_MODE_STEREO 1 1241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_SFNT_MODE_LOOPING 2 1251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_SFNT_MODE_NORELEASE 4 /* obsolete */ 1261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_SFNT_MODE_INIT_PARM 8 1271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds short root; /* midi root key */ 1291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds short tune; /* pitch tuning (in cents) */ 1301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned char low, high; /* key note range */ 1311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned char vellow, velhigh; /* velocity range */ 1321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds signed char fixkey, fixvel; /* fixed key, velocity */ 1331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds signed char pan, fixpan; /* panning, fixed panning */ 1341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds short exclusiveClass; /* exclusive class (0 = none) */ 1351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned char amplitude; /* sample volume (127 max) */ 1361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned char attenuation; /* attenuation (0.375dB) */ 1371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds short scaleTuning; /* pitch scale tuning(%), normally 100 */ 13803da312ac080b4f5c9359c233b8812cc93a035feTakashi Iwai struct soundfont_voice_parm parm; /* voice envelope parameters */ 1391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned short sample_mode; /* sample mode_flag (set by driver) */ 14003da312ac080b4f5c9359c233b8812cc93a035feTakashi Iwai}; 1411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* instrument info header: 4 bytes */ 14403da312ac080b4f5c9359c233b8812cc93a035feTakashi Iwaistruct soundfont_voice_rec_hdr { 1451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned char bank; /* midi bank number */ 1461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned char instr; /* midi preset number */ 1471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds char nvoices; /* number of voices */ 1481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds char write_mode; /* write mode; normally 0 */ 1491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_SFNT_WR_APPEND 0 /* append anyway */ 1501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_SFNT_WR_EXCLUSIVE 1 /* skip if already exists */ 1511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_SFNT_WR_REPLACE 2 /* replace if already exists */ 15203da312ac080b4f5c9359c233b8812cc93a035feTakashi Iwai}; 1531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 1561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * sample wave information 1571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 1581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* wave table sample header: 32 bytes */ 16003da312ac080b4f5c9359c233b8812cc93a035feTakashi Iwaistruct soundfont_sample_info { 1611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned short sf_id; /* file id (should be zero) */ 1621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned short sample; /* sample id */ 1631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int start, end; /* start & end offset */ 1641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int loopstart, loopend; /* loop start & end offset */ 1651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int size; /* size (0 = ROM) */ 1661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds short dummy; /* not used */ 1671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned short mode_flags; /* mode flags */ 1681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_SFNT_SAMPLE_8BITS 1 /* wave data is 8bits */ 1691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_SFNT_SAMPLE_UNSIGNED 2 /* wave data is unsigned */ 1701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_SFNT_SAMPLE_NO_BLANK 4 /* no blank loop is attached */ 1711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_SFNT_SAMPLE_SINGLESHOT 8 /* single-shot w/o loop */ 1721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_SFNT_SAMPLE_BIDIR_LOOP 16 /* bidirectional looping */ 1731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_SFNT_SAMPLE_STEREO_LEFT 32 /* stereo left sound */ 1741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_SFNT_SAMPLE_STEREO_RIGHT 64 /* stereo right sound */ 1751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_SFNT_SAMPLE_REVERSE_LOOP 128 /* reverse looping */ 1761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned int truesize; /* used memory size (set by driver) */ 17703da312ac080b4f5c9359c233b8812cc93a035feTakashi Iwai}; 1781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 1811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * voice preset mapping (aliasing) 1821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 1831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 18403da312ac080b4f5c9359c233b8812cc93a035feTakashi Iwaistruct soundfont_voice_map { 1851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int map_bank, map_instr, map_key; /* key = -1 means all keys */ 1861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int src_bank, src_instr, src_key; 18703da312ac080b4f5c9359c233b8812cc93a035feTakashi Iwai}; 1881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 1911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * ioctls for hwdep 1921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 1931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_EMUX_HWDEP_NAME "Emux WaveTable" 1951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define SNDRV_EMUX_VERSION ((1 << 16) | (0 << 8) | 0) /* 1.0.0 */ 1971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 19803da312ac080b4f5c9359c233b8812cc93a035feTakashi Iwaistruct snd_emux_misc_mode { 1991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int port; /* -1 = all */ 2001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int mode; 2011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int value; 2021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int value2; /* reserved */ 2031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}; 2041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 20578a05b522044a50dc2a6811d10b9ee3f7c3e78f8Takashi Iwai#define SNDRV_EMUX_IOCTL_VERSION _IOR('H', 0x80, unsigned int) 20678a05b522044a50dc2a6811d10b9ee3f7c3e78f8Takashi Iwai#define SNDRV_EMUX_IOCTL_LOAD_PATCH _IOWR('H', 0x81, struct soundfont_patch_info) 20778a05b522044a50dc2a6811d10b9ee3f7c3e78f8Takashi Iwai#define SNDRV_EMUX_IOCTL_RESET_SAMPLES _IO('H', 0x82) 20878a05b522044a50dc2a6811d10b9ee3f7c3e78f8Takashi Iwai#define SNDRV_EMUX_IOCTL_REMOVE_LAST_SAMPLES _IO('H', 0x83) 20978a05b522044a50dc2a6811d10b9ee3f7c3e78f8Takashi Iwai#define SNDRV_EMUX_IOCTL_MEM_AVAIL _IOW('H', 0x84, int) 21078a05b522044a50dc2a6811d10b9ee3f7c3e78f8Takashi Iwai#define SNDRV_EMUX_IOCTL_MISC_MODE _IOWR('H', 0x84, struct snd_emux_misc_mode) 2111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif /* __SOUND_SFNT_INFO_H */ 213