Lines Matching full:patch

92  * close the patch if the patch was opened by this client.
109 * Deal with a soundfont patch. Any driver could use these routines
121 struct soundfont_patch_info patch; in snd_soundfont_load() local
125 if (count < (long)sizeof(patch)) { in snd_soundfont_load()
126 dev_err(card->dev, "patch record too small %ld\n", count); in snd_soundfont_load()
129 if (copy_from_user(&patch, data, sizeof(patch))) in snd_soundfont_load()
132 count -= sizeof(patch); in snd_soundfont_load()
133 data += sizeof(patch); in snd_soundfont_load()
135 if (patch.key != SNDRV_OSS_SOUNDFONT_PATCH) { in snd_soundfont_load()
136 dev_err(card->dev, "The wrong kind of patch %x\n", patch.key); in snd_soundfont_load()
139 if (count < patch.len) { in snd_soundfont_load()
140 dev_err(card->dev, "Patch too short %ld, need %d\n", in snd_soundfont_load()
141 count, patch.len); in snd_soundfont_load()
144 if (patch.len < 0) { in snd_soundfont_load()
145 dev_err(card->dev, "poor length %d\n", patch.len); in snd_soundfont_load()
149 if (patch.type == SNDRV_SFNT_OPEN_PATCH) { in snd_soundfont_load()
157 /* check if other client already opened patch */ in snd_soundfont_load()
167 switch (patch.type) { in snd_soundfont_load()
178 /*rc = replace_data(&patch, data, count);*/ in snd_soundfont_load()
184 rc = probe_data(sflist, patch.optarg); in snd_soundfont_load()
187 /* patch must be opened */ in snd_soundfont_load()
190 "soundfont: remove_info: patch not opened\n"); in snd_soundfont_load()
194 bank = ((unsigned short)patch.optarg >> 8) & 0xff; in snd_soundfont_load()
195 instr = (unsigned short)patch.optarg & 0xff; in snd_soundfont_load()
219 /* open patch; create sf list */
303 * Close the current patch.
325 /* patch must be opened */ in probe_data()
522 /* patch must be opened */ in load_info()
531 dev_err(card->dev, "Soundfont error: invalid patch zone length\n"); in load_info()
548 "Soundfont Error: patch length(%ld) is smaller than nvoices(%d)\n", in load_info()
723 /* patch must be opened */ in load_data()
978 /* load GUS patch */
983 struct patch_info patch; in load_guspatch() local
990 if (count < (long)sizeof(patch)) { in load_guspatch()
991 dev_err(card->dev, "patch record too small %ld\n", count); in load_guspatch()
994 if (copy_from_user(&patch, data, sizeof(patch))) in load_guspatch()
996 count -= sizeof(patch); in load_guspatch()
997 data += sizeof(patch); in load_guspatch()
999 if ((patch.len << (patch.mode & WAVE_16_BITS ? 1 : 0)) != count) in load_guspatch()
1011 smp->v.end = patch.len; in load_guspatch()
1012 smp->v.loopstart = patch.loop_start; in load_guspatch()
1013 smp->v.loopend = patch.loop_end; in load_guspatch()
1014 smp->v.size = patch.len; in load_guspatch()
1023 if (!(patch.mode & WAVE_16_BITS)) in load_guspatch()
1025 if (patch.mode & WAVE_UNSIGNED) in load_guspatch()
1028 if (!(patch.mode & (WAVE_LOOPING|WAVE_BIDIR_LOOP|WAVE_LOOP_BACK))) in load_guspatch()
1030 if (patch.mode & WAVE_BIDIR_LOOP) in load_guspatch()
1032 if (patch.mode & WAVE_LOOP_BACK) in load_guspatch()
1035 if (patch.mode & WAVE_16_BITS) { in load_guspatch()
1074 zone->v.rate_offset = calc_rate_offset(patch.base_freq); in load_guspatch()
1075 note = freq_to_note(patch.base_note); in load_guspatch()
1078 zone->v.low = (freq_to_note(patch.low_note) + 99) / 100; in load_guspatch()
1079 zone->v.high = freq_to_note(patch.high_note) / 100; in load_guspatch()
1081 zone->v.pan = (patch.panning + 128) / 2; in load_guspatch()
1085 (int)patch.base_freq, zone->v.rate_offset, in load_guspatch()
1091 if (patch.mode & WAVE_ENVELOPES) { in load_guspatch()
1094 (patch.env_rate[0], 0, patch.env_offset[0]); in load_guspatch()
1096 (patch.env_rate[1], patch.env_offset[0], in load_guspatch()
1097 patch.env_offset[1]); in load_guspatch()
1099 (patch.env_rate[2], patch.env_offset[1], in load_guspatch()
1100 patch.env_offset[2]); in load_guspatch()
1102 (patch.env_rate[3], patch.env_offset[1], in load_guspatch()
1103 patch.env_offset[4]); in load_guspatch()
1105 (patch.env_rate[4], patch.env_offset[3], in load_guspatch()
1106 patch.env_offset[4]); in load_guspatch()
1108 (patch.env_rate[5], patch.env_offset[4], in load_guspatch()
1109 patch.env_offset[5]); in load_guspatch()
1113 zone->v.parm.voldcysus = (calc_gus_sustain(patch.env_offset[2]) << 8) | in load_guspatch()
1116 zone->v.attenuation = calc_gus_attenuation(patch.env_offset[0]); in load_guspatch()
1128 if (patch.mode & WAVE_FAST_RELEASE) { in load_guspatch()
1133 if (patch.mode & WAVE_TREMOLO) { in load_guspatch()
1134 int rate = (patch.tremolo_rate * 1000 / 38) / 42; in load_guspatch()
1135 zone->v.parm.tremfrq = ((patch.tremolo_depth / 2) << 8) | rate; in load_guspatch()
1138 if (patch.mode & WAVE_VIBRATO) { in load_guspatch()
1139 int rate = (patch.vibrato_rate * 1000 / 38) / 42; in load_guspatch()
1140 zone->v.parm.fm2frq2 = ((patch.vibrato_depth / 6) << 8) | rate; in load_guspatch()
1153 zone->instr = patch.instr_no; in load_guspatch()
1165 /* load GUS patch */