1/* 2 * This header was generated from the Linux kernel headers by update_headers.py, 3 * to provide necessary information from kernel to userspace, such as constants, 4 * structures, and macros, and thus, contains no copyrightable information. 5 */ 6#ifndef __SOUND_SFNT_INFO_H 7#define __SOUND_SFNT_INFO_H 8#include <sound/asound.h> 9#ifdef SNDRV_BIG_ENDIAN 10#define SNDRV_OSS_PATCHKEY(id) (0xfd00|id) 11#else 12#define SNDRV_OSS_PATCHKEY(id) ((id<<8)|0xfd) 13#endif 14struct soundfont_patch_info { 15 unsigned short key; 16#define SNDRV_OSS_SOUNDFONT_PATCH SNDRV_OSS_PATCHKEY(0x07) 17 short device_no; 18 unsigned short sf_id; 19 short optarg; 20 int len; 21 short type; 22#define SNDRV_SFNT_LOAD_INFO 0 23#define SNDRV_SFNT_LOAD_DATA 1 24#define SNDRV_SFNT_OPEN_PATCH 2 25#define SNDRV_SFNT_CLOSE_PATCH 3 26 27#define SNDRV_SFNT_REPLACE_DATA 5 28#define SNDRV_SFNT_MAP_PRESET 6 29 30#define SNDRV_SFNT_PROBE_DATA 8 31#define SNDRV_SFNT_REMOVE_INFO 9 32 short reserved; 33 34}; 35#define SNDRV_SFNT_PATCH_NAME_LEN 32 36struct soundfont_open_parm { 37 unsigned short type; 38#define SNDRV_SFNT_PAT_TYPE_MISC 0 39#define SNDRV_SFNT_PAT_TYPE_GUS 6 40#define SNDRV_SFNT_PAT_TYPE_MAP 7 41#define SNDRV_SFNT_PAT_LOCKED 0x100 42#define SNDRV_SFNT_PAT_SHARED 0x200 43 short reserved; 44 char name[SNDRV_SFNT_PATCH_NAME_LEN]; 45}; 46struct soundfont_voice_parm { 47 unsigned short moddelay; 48 unsigned short modatkhld; 49 unsigned short moddcysus; 50 unsigned short modrelease; 51 short modkeyhold, modkeydecay; 52 unsigned short voldelay; 53 unsigned short volatkhld; 54 unsigned short voldcysus; 55 unsigned short volrelease; 56 short volkeyhold, volkeydecay; 57 unsigned short lfo1delay; 58 unsigned short lfo2delay; 59 unsigned short pefe; 60 unsigned short fmmod; 61 unsigned short tremfrq; 62 unsigned short fm2frq2; 63 unsigned char cutoff; 64 unsigned char filterQ; 65 unsigned char chorus; 66 unsigned char reverb; 67 unsigned short reserved[4]; 68}; 69struct soundfont_voice_info { 70 unsigned short sf_id; 71 unsigned short sample; 72 int start, end; 73 int loopstart, loopend; 74 short rate_offset; 75 unsigned short mode; 76#define SNDRV_SFNT_MODE_ROMSOUND 0x8000 77#define SNDRV_SFNT_MODE_STEREO 1 78#define SNDRV_SFNT_MODE_LOOPING 2 79#define SNDRV_SFNT_MODE_NORELEASE 4 80#define SNDRV_SFNT_MODE_INIT_PARM 8 81 short root; 82 short tune; 83 unsigned char low, high; 84 unsigned char vellow, velhigh; 85 signed char fixkey, fixvel; 86 signed char pan, fixpan; 87 short exclusiveClass; 88 unsigned char amplitude; 89 unsigned char attenuation; 90 short scaleTuning; 91 struct soundfont_voice_parm parm; 92 unsigned short sample_mode; 93}; 94struct soundfont_voice_rec_hdr { 95 unsigned char bank; 96 unsigned char instr; 97 char nvoices; 98 char write_mode; 99#define SNDRV_SFNT_WR_APPEND 0 100#define SNDRV_SFNT_WR_EXCLUSIVE 1 101#define SNDRV_SFNT_WR_REPLACE 2 102}; 103struct soundfont_sample_info { 104 unsigned short sf_id; 105 unsigned short sample; 106 int start, end; 107 int loopstart, loopend; 108 int size; 109 short dummy; 110 unsigned short mode_flags; 111#define SNDRV_SFNT_SAMPLE_8BITS 1 112#define SNDRV_SFNT_SAMPLE_UNSIGNED 2 113#define SNDRV_SFNT_SAMPLE_NO_BLANK 4 114#define SNDRV_SFNT_SAMPLE_SINGLESHOT 8 115#define SNDRV_SFNT_SAMPLE_BIDIR_LOOP 16 116#define SNDRV_SFNT_SAMPLE_STEREO_LEFT 32 117#define SNDRV_SFNT_SAMPLE_STEREO_RIGHT 64 118#define SNDRV_SFNT_SAMPLE_REVERSE_LOOP 128 119 unsigned int truesize; 120}; 121struct soundfont_voice_map { 122 int map_bank, map_instr, map_key; 123 int src_bank, src_instr, src_key; 124}; 125#define SNDRV_EMUX_HWDEP_NAME "Emux WaveTable" 126#define SNDRV_EMUX_VERSION ((1 << 16) | (0 << 8) | 0) 127struct snd_emux_misc_mode { 128 int port; 129 int mode; 130 int value; 131 int value2; 132}; 133#define SNDRV_EMUX_IOCTL_VERSION _IOR('H', 0x80, unsigned int) 134#define SNDRV_EMUX_IOCTL_LOAD_PATCH _IOWR('H', 0x81, struct soundfont_patch_info) 135#define SNDRV_EMUX_IOCTL_RESET_SAMPLES _IO('H', 0x82) 136#define SNDRV_EMUX_IOCTL_REMOVE_LAST_SAMPLES _IO('H', 0x83) 137#define SNDRV_EMUX_IOCTL_MEM_AVAIL _IOW('H', 0x84, int) 138#define SNDRV_EMUX_IOCTL_MISC_MODE _IOWR('H', 0x84, struct snd_emux_misc_mode) 139#endif 140