sfnt_info.h
001: #ifndef __SOUND_SFNT_INFO_H
002: #define __SOUND_SFNT_INFO_H
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
024:
025: #include <sound/asound.h>
026:
027:
028:
029:
030:
031: #ifdef SNDRV_BIG_ENDIAN
032: #define SNDRV_OSS_PATCHKEY(id) (0xfd00|id)
033: #else
034: #define SNDRV_OSS_PATCHKEY(id) ((id<<8)|0xfd)
035: #endif
036:
037:
038: struct soundfont_patch_info {
039: unsigned short key;
040: #define SNDRV_OSS_SOUNDFONT_PATCH SNDRV_OSS_PATCHKEY(0x07)
041:
042: short device_no;
043: unsigned short sf_id;
044: short optarg;
045: int len;
046:
047: short type;
048: #define SNDRV_SFNT_LOAD_INFO 0
049: #define SNDRV_SFNT_LOAD_DATA 1
050: #define SNDRV_SFNT_OPEN_PATCH 2
051: #define SNDRV_SFNT_CLOSE_PATCH 3
052:
053: #define SNDRV_SFNT_REPLACE_DATA 5
054: #define SNDRV_SFNT_MAP_PRESET 6
055:
056: #define SNDRV_SFNT_PROBE_DATA 8
057: #define SNDRV_SFNT_REMOVE_INFO 9
058:
059: short reserved;
060:
061:
062: };
063:
064:
065:
066:
067:
068:
069: #define SNDRV_SFNT_PATCH_NAME_LEN 32
070:
071: struct soundfont_open_parm {
072: unsigned short type;
073: #define SNDRV_SFNT_PAT_TYPE_MISC 0
074: #define SNDRV_SFNT_PAT_TYPE_GUS 6
075: #define SNDRV_SFNT_PAT_TYPE_MAP 7
076: #define SNDRV_SFNT_PAT_LOCKED 0x100
077: #define SNDRV_SFNT_PAT_SHARED 0x200
078:
079: short reserved;
080: char name[SNDRV_SFNT_PATCH_NAME_LEN];
081: };
082:
083:
084:
085:
086:
087:
088:
089: struct soundfont_voice_parm {
090: unsigned short moddelay;
091: unsigned short modatkhld;
092: unsigned short moddcysus;
093: unsigned short modrelease;
094: short modkeyhold, modkeydecay;
095: unsigned short voldelay;
096: unsigned short volatkhld;
097: unsigned short voldcysus;
098: unsigned short volrelease;
099: short volkeyhold, volkeydecay;
100: unsigned short lfo1delay;
101: unsigned short lfo2delay;
102: unsigned short pefe;
103: unsigned short fmmod;
104: unsigned short tremfrq;
105: unsigned short fm2frq2;
106: unsigned char cutoff;
107: unsigned char filterQ;
108: unsigned char chorus;
109: unsigned char reverb;
110: unsigned short reserved[4];
111: };
112:
113:
114:
115: struct soundfont_voice_info {
116: unsigned short sf_id;
117: unsigned short sample;
118: int start, end;
119: int loopstart, loopend;
120: short rate_offset;
121: unsigned short mode;
122: #define SNDRV_SFNT_MODE_ROMSOUND 0x8000
123: #define SNDRV_SFNT_MODE_STEREO 1
124: #define SNDRV_SFNT_MODE_LOOPING 2
125: #define SNDRV_SFNT_MODE_NORELEASE 4
126: #define SNDRV_SFNT_MODE_INIT_PARM 8
127:
128: short root;
129: short tune;
130: unsigned char low, high;
131: unsigned char vellow, velhigh;
132: signed char fixkey, fixvel;
133: signed char pan, fixpan;
134: short exclusiveClass;
135: unsigned char amplitude;
136: unsigned char attenuation;
137: short scaleTuning;
138: struct soundfont_voice_parm parm;
139: unsigned short sample_mode;
140: };
141:
142:
143:
144: struct soundfont_voice_rec_hdr {
145: unsigned char bank;
146: unsigned char instr;
147: char nvoices;
148: char write_mode;
149: #define SNDRV_SFNT_WR_APPEND 0
150: #define SNDRV_SFNT_WR_EXCLUSIVE 1
151: #define SNDRV_SFNT_WR_REPLACE 2
152: };
153:
154:
155:
156:
157:
158:
159:
160: struct soundfont_sample_info {
161: unsigned short sf_id;
162: unsigned short sample;
163: int start, end;
164: int loopstart, loopend;
165: int size;
166: short dummy;
167: unsigned short mode_flags;
168: #define SNDRV_SFNT_SAMPLE_8BITS 1
169: #define SNDRV_SFNT_SAMPLE_UNSIGNED 2
170: #define SNDRV_SFNT_SAMPLE_NO_BLANK 4
171: #define SNDRV_SFNT_SAMPLE_SINGLESHOT 8
172: #define SNDRV_SFNT_SAMPLE_BIDIR_LOOP 16
173: #define SNDRV_SFNT_SAMPLE_STEREO_LEFT 32
174: #define SNDRV_SFNT_SAMPLE_STEREO_RIGHT 64
175: #define SNDRV_SFNT_SAMPLE_REVERSE_LOOP 128
176: unsigned int truesize;
177: };
178:
179:
180:
181:
182:
183:
184: struct soundfont_voice_map {
185: int map_bank, map_instr, map_key;
186: int src_bank, src_instr, src_key;
187: };
188:
189:
190:
191:
192:
193:
194: #define SNDRV_EMUX_HWDEP_NAME "Emux WaveTable"
195:
196: #define SNDRV_EMUX_VERSION ((1 << 16) | (0 << 8) | 0)
197:
198: struct snd_emux_misc_mode {
199: int port;
200: int mode;
201: int value;
202: int value2;
203: };
204:
205: #define SNDRV_EMUX_IOCTL_VERSION _IOR('H', 0x80, unsigned int)
206: #define SNDRV_EMUX_IOCTL_LOAD_PATCH _IOWR('H', 0x81, struct soundfont_patch_info)
207: #define SNDRV_EMUX_IOCTL_RESET_SAMPLES _IO('H', 0x82)
208: #define SNDRV_EMUX_IOCTL_REMOVE_LAST_SAMPLES _IO('H', 0x83)
209: #define SNDRV_EMUX_IOCTL_MEM_AVAIL _IOW('H', 0x84, int)
210: #define SNDRV_EMUX_IOCTL_MISC_MODE _IOWR('H', 0x84, struct snd_emux_misc_mode)
211:
212: #endif
213:
© Andrew Scott 2006 -
2025,
All Rights Reserved