130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifndef __SOUND_SFNT_INFO_H 230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define __SOUND_SFNT_INFO_H 330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* 530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * Patch record compatible with AWE driver on OSS 630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * 730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * Copyright (C) 1999-2000 Takashi Iwai 830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * 930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * This program is free software; you can redistribute it and/or modify 1030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * it under the terms of the GNU General Public License as published by 1130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * the Free Software Foundation; either version 2 of the License, or 1230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * (at your option) any later version. 1330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * 1430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * This program is distributed in the hope that it will be useful, 1530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * but WITHOUT ANY WARRANTY; without even the implied warranty of 1630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * GNU General Public License for more details. 1830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * 1930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * You should have received a copy of the GNU General Public License 2030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * along with this program; if not, write to the Free Software 2130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 2230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * 2330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng */ 2430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 2530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#include <sound/asound.h> 2630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 2730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* 2830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * patch information record 2930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng */ 3030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 3130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifdef SNDRV_BIG_ENDIAN 3230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_OSS_PATCHKEY(id) (0xfd00|id) 3330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#else 3430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_OSS_PATCHKEY(id) ((id<<8)|0xfd) 3530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif 3630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 3730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* patch interface header: 16 bytes */ 3830692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct soundfont_patch_info { 3930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short key; /* use the key below */ 4030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_OSS_SOUNDFONT_PATCH SNDRV_OSS_PATCHKEY(0x07) 4130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 4230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng short device_no; /* synthesizer number */ 4330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short sf_id; /* file id (should be zero) */ 4430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng short optarg; /* optional argument */ 4530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int len; /* data length (without this header) */ 4630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 4730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng short type; /* patch operation type */ 4830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_SFNT_LOAD_INFO 0 /* awe_voice_rec */ 4930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_SFNT_LOAD_DATA 1 /* awe_sample_info */ 5030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_SFNT_OPEN_PATCH 2 /* awe_open_parm */ 5130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_SFNT_CLOSE_PATCH 3 /* none */ 5230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng /* 4 is obsolete */ 5330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_SFNT_REPLACE_DATA 5 /* awe_sample_info (optarg=#channels)*/ 5430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_SFNT_MAP_PRESET 6 /* awe_voice_map */ 5530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng /* 7 is not used */ 5630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_SFNT_PROBE_DATA 8 /* optarg=sample */ 5730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_SFNT_REMOVE_INFO 9 /* optarg=(bank<<8)|instr */ 5830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 5930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng short reserved; /* word alignment data */ 6030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 6130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng /* the actual patch data begins after this */ 6230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng}; 6330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 6430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 6530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* 6630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * open patch 6730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng */ 6830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 6930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_SFNT_PATCH_NAME_LEN 32 7030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 7130692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct soundfont_open_parm { 7230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short type; /* sample type */ 7330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_SFNT_PAT_TYPE_MISC 0 7430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_SFNT_PAT_TYPE_GUS 6 7530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_SFNT_PAT_TYPE_MAP 7 7630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_SFNT_PAT_LOCKED 0x100 /* lock the samples */ 7730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_SFNT_PAT_SHARED 0x200 /* sample is shared */ 7830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 7930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng short reserved; 8030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng char name[SNDRV_SFNT_PATCH_NAME_LEN]; 8130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng}; 8230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 8330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 8430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* 8530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * raw voice information record 8630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng */ 8730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 8830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* wave table envelope & effect parameters to control EMU8000 */ 8930692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct soundfont_voice_parm { 9030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short moddelay; /* modulation delay (0x8000) */ 9130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short modatkhld; /* modulation attack & hold time (0x7f7f) */ 9230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short moddcysus; /* modulation decay & sustain (0x7f7f) */ 9330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short modrelease; /* modulation release time (0x807f) */ 9430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng short modkeyhold, modkeydecay; /* envelope change per key (not used) */ 9530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short voldelay; /* volume delay (0x8000) */ 9630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short volatkhld; /* volume attack & hold time (0x7f7f) */ 9730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short voldcysus; /* volume decay & sustain (0x7f7f) */ 9830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short volrelease; /* volume release time (0x807f) */ 9930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng short volkeyhold, volkeydecay; /* envelope change per key (not used) */ 10030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short lfo1delay; /* LFO1 delay (0x8000) */ 10130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short lfo2delay; /* LFO2 delay (0x8000) */ 10230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short pefe; /* modulation pitch & cutoff (0x0000) */ 10330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short fmmod; /* LFO1 pitch & cutoff (0x0000) */ 10430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short tremfrq; /* LFO1 volume & freq (0x0000) */ 10530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short fm2frq2; /* LFO2 pitch & freq (0x0000) */ 10630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned char cutoff; /* initial cutoff (0xff) */ 10730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned char filterQ; /* initial filter Q [0-15] (0x0) */ 10830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned char chorus; /* chorus send (0x00) */ 10930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned char reverb; /* reverb send (0x00) */ 11030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short reserved[4]; /* not used */ 11130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng}; 11230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 11330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 11430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* wave table parameters: 92 bytes */ 11530692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct soundfont_voice_info { 11630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short sf_id; /* file id (should be zero) */ 11730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short sample; /* sample id */ 11830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int start, end; /* sample offset correction */ 11930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int loopstart, loopend; /* loop offset correction */ 12030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng short rate_offset; /* sample rate pitch offset */ 12130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short mode; /* sample mode */ 12230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_SFNT_MODE_ROMSOUND 0x8000 12330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_SFNT_MODE_STEREO 1 12430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_SFNT_MODE_LOOPING 2 12530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_SFNT_MODE_NORELEASE 4 /* obsolete */ 12630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_SFNT_MODE_INIT_PARM 8 12730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 12830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng short root; /* midi root key */ 12930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng short tune; /* pitch tuning (in cents) */ 13030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned char low, high; /* key note range */ 13130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned char vellow, velhigh; /* velocity range */ 13230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng signed char fixkey, fixvel; /* fixed key, velocity */ 13330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng signed char pan, fixpan; /* panning, fixed panning */ 13430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng short exclusiveClass; /* exclusive class (0 = none) */ 13530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned char amplitude; /* sample volume (127 max) */ 13630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned char attenuation; /* attenuation (0.375dB) */ 13730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng short scaleTuning; /* pitch scale tuning(%), normally 100 */ 13830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng struct soundfont_voice_parm parm; /* voice envelope parameters */ 13930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short sample_mode; /* sample mode_flag (set by driver) */ 14030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng}; 14130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 14230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 14330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* instrument info header: 4 bytes */ 14430692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct soundfont_voice_rec_hdr { 14530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned char bank; /* midi bank number */ 14630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned char instr; /* midi preset number */ 14730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng char nvoices; /* number of voices */ 14830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng char write_mode; /* write mode; normally 0 */ 14930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_SFNT_WR_APPEND 0 /* append anyway */ 15030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_SFNT_WR_EXCLUSIVE 1 /* skip if already exists */ 15130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_SFNT_WR_REPLACE 2 /* replace if already exists */ 15230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng}; 15330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 15430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 15530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* 15630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * sample wave information 15730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng */ 15830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 15930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* wave table sample header: 32 bytes */ 16030692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct soundfont_sample_info { 16130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short sf_id; /* file id (should be zero) */ 16230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short sample; /* sample id */ 16330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int start, end; /* start & end offset */ 16430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int loopstart, loopend; /* loop start & end offset */ 16530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int size; /* size (0 = ROM) */ 16630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng short dummy; /* not used */ 16730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned short mode_flags; /* mode flags */ 16830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_SFNT_SAMPLE_8BITS 1 /* wave data is 8bits */ 16930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_SFNT_SAMPLE_UNSIGNED 2 /* wave data is unsigned */ 17030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_SFNT_SAMPLE_NO_BLANK 4 /* no blank loop is attached */ 17130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_SFNT_SAMPLE_SINGLESHOT 8 /* single-shot w/o loop */ 17230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_SFNT_SAMPLE_BIDIR_LOOP 16 /* bidirectional looping */ 17330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_SFNT_SAMPLE_STEREO_LEFT 32 /* stereo left sound */ 17430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_SFNT_SAMPLE_STEREO_RIGHT 64 /* stereo right sound */ 17530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_SFNT_SAMPLE_REVERSE_LOOP 128 /* reverse looping */ 17630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned int truesize; /* used memory size (set by driver) */ 17730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng}; 17830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 17930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 18030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* 18130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * voice preset mapping (aliasing) 18230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng */ 18330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 18430692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct soundfont_voice_map { 18530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int map_bank, map_instr, map_key; /* key = -1 means all keys */ 18630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int src_bank, src_instr, src_key; 18730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng}; 18830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 18930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 19030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* 19130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng * ioctls for hwdep 19230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng */ 19330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 19430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_EMUX_HWDEP_NAME "Emux WaveTable" 19530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 19630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_EMUX_VERSION ((1 << 16) | (0 << 8) | 0) /* 1.0.0 */ 19730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 19830692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct snd_emux_misc_mode { 19930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int port; /* -1 = all */ 20030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int mode; 20130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int value; 20230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng int value2; /* reserved */ 20330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng}; 20430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 20530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_EMUX_IOCTL_VERSION _IOR('H', 0x80, unsigned int) 20630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_EMUX_IOCTL_LOAD_PATCH _IOWR('H', 0x81, struct soundfont_patch_info) 20730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_EMUX_IOCTL_RESET_SAMPLES _IO('H', 0x82) 20830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_EMUX_IOCTL_REMOVE_LAST_SAMPLES _IO('H', 0x83) 20930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_EMUX_IOCTL_MEM_AVAIL _IOW('H', 0x84, int) 21030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define SNDRV_EMUX_IOCTL_MISC_MODE _IOWR('H', 0x84, struct snd_emux_misc_mode) 21130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 21230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif /* __SOUND_SFNT_INFO_H */ 213