Home | History | Annotate | Download | only in audio

Lines Matching defs:hw

33     HWVoiceOut hw;
40 HWVoiceIn hw;
94 HWVoiceOut *hw = &fmd->hw;
102 hw->samples << hw->info.shift,
114 if ((len1 & hw->info.align) || (len2 & hw->info.align)) {
116 len1, len2, hw->info.align + 1);
120 if ((len1 + len2) - (hw->samples << hw->info.shift)) {
122 len1 + len2, hw->samples << hw->info.shift);
126 audio_pcm_info_clear_buf (&hw->info, p1, hw->samples);
135 static void fmod_write_sample (HWVoiceOut *hw, uint8_t *dst, int dst_len)
139 int pos = hw->rpos + dst_len;
140 struct st_sample *src1 = hw->mix_buf + hw->rpos;
143 if (pos > hw->samples) {
144 src_len1 = hw->samples - hw->rpos;
145 src2 = hw->mix_buf;
151 hw->clip (dst, src1, src_len1);
155 dst = advance (dst, src_len1 << hw->info.shift);
156 hw->clip (dst, src2, src_len2);
159 hw->rpos = pos % hw->samples;
227 static int fmod_run_out (HWVoiceOut *hw, int live)
229 FMODVoiceOut *fmd = (FMODVoiceOut *) hw;
235 if (!hw->pending_disable) {
254 if ((old_pos > ppos) && ((old_pos + len) > (ppos + hw->samples))) {
255 len = hw->samples - old_pos + ppos;
272 if (fmod_lock_sample (fmd->fmod_sample, &fmd->hw.info,
279 len1 = blen1 >> hw->info.shift;
280 len2 = blen2 >> hw->info.shift;
285 fmod_write_sample (hw, p1, len1);
289 fmod_write_sample (hw, p2, len2);
294 fmd->old_pos = (fmd->old_pos + decr) % hw->samples;
330 static void fmod_fini_out (HWVoiceOut *hw)
332 FMODVoiceOut *fmd = (FMODVoiceOut *) hw;
344 static int fmod_init_out (HWVoiceOut *hw, struct audsettings *as)
347 FMODVoiceOut *fmd = (FMODVoiceOut *) hw;
376 audio_pcm_init_info (&hw->info, &obt_as);
378 hw->samples = conf.nb_samples;
382 static int fmod_ctl_out (HWVoiceOut *hw, int cmd, ...)
385 FMODVoiceOut *fmd = (FMODVoiceOut *) hw;
406 static int fmod_init_in (HWVoiceIn *hw, struct audsettings *as)
409 FMODVoiceIn *fmd = (FMODVoiceIn *) hw;
434 audio_pcm_init_info (&hw->info, &obt_as);
436 hw->samples = conf.nb_samples;
440 static void fmod_fini_in (HWVoiceIn *hw)
442 FMODVoiceIn *fmd = (FMODVoiceIn *) hw;
451 static int fmod_run_in (HWVoiceIn *hw)
453 FMODVoiceIn *fmd = (FMODVoiceIn *) hw;
454 int hwshift = hw->info.shift;
461 live = audio_pcm_hw_get_live_in (hw);
462 dead = hw->samples - live;
473 len = audio_ring_dist (new_pos, hw->wpos, hw->samples);
479 if (fmod_lock_sample (fmd->fmod_sample, &fmd->hw.info,
480 hw->wpos, len,
491 hw->conv (hw->conv_buf + hw->wpos, p1, len1, &nominal_volume);
494 hw->conv (hw->conv_buf, p2, len2, &nominal_volume);
498 hw->wpos = (hw->wpos + decr) % hw->samples;
598 static int fmod_ctl_in (HWVoiceIn *hw, int cmd, ...)
601 FMODVoiceIn *fmd = (FMODVoiceIn *) hw;