Home | History | Annotate | Download | only in audio

Lines Matching defs:hw

76     HWVoiceOut hw;
88 HWVoiceIn hw;
352 static void dsound_write_sample (HWVoiceOut *hw, uint8_t *dst, int dst_len)
356 int pos = hw->rpos + dst_len;
357 struct st_sample *src1 = hw->mix_buf + hw->rpos;
360 if (pos > hw->samples) {
361 src_len1 = hw->samples - hw->rpos;
362 src2 = hw->mix_buf;
368 hw->clip (dst, src1, src_len1);
372 dst = advance (dst, src_len1 << hw->info.shift);
373 hw->clip (dst, src2, src_len2);
376 hw->rpos = pos % hw->samples;
379 static void dsound_clear_sample (HWVoiceOut *hw, LPDIRECTSOUNDBUFFER dsb)
387 &hw->info,
389 hw->samples << hw->info.shift,
398 len1 = blen1 >> hw->info.shift;
399 len2 = blen2 >> hw->info.shift;
408 audio_pcm_info_clear_buf (&hw->info, p1, len1);
412 audio_pcm_info_clear_buf (&hw->info, p2, len2);
511 static int dsound_ctl_out (HWVoiceOut *hw, int cmd, ...)
515 DSoundVoiceOut *ds = (DSoundVoiceOut *) hw;
534 dsound_clear_sample (hw, dsb);
568 static int dsound_run_out (HWVoiceOut *hw, int live)
572 DSoundVoiceOut *ds = (DSoundVoiceOut *) hw;
587 hwshift = hw->info.shift;
588 bufsize = hw->samples << hwshift;
610 millis_to_bytes (&hw->info, conf.latency_millis) - cur_blat;
612 old_pos &= ~hw->info.align;
631 ds->played += audio_ring_dist (ds->old_pos, ppos, hw->bufsize);
651 len &= ~hw->info.align;
661 &hw->info,
677 dsound_write_sample (hw, p1, len1);
681 dsound_write_sample (hw, p2, len2);
694 abs (ds->mixed - ds->played) / (double) hw->info.bytes_per_second);
699 static int dsound_ctl_in (HWVoiceIn *hw, int cmd, ...)
703 DSoundVoiceIn *ds = (DSoundVoiceIn *) hw;
756 static int dsound_run_in (HWVoiceIn *hw)
760 DSoundVoiceIn *ds = (DSoundVoiceIn *) hw;
775 hwshift = hw->info.shift;
777 live = audio_pcm_hw_get_live_in (hw);
778 dead = hw->samples - live;
795 if (rpos & hw->info.align) {
797 rpos, hw->info.align);
799 hw->wpos = rpos >> hwshift;
802 if (cpos & hw->info.align) {
804 cpos, hw->info.align);
808 len = audio_ring_dist (cpos, hw->wpos, hw->samples);
816 &hw->info,
817 hw->wpos << hwshift,
834 hw->conv (hw->conv_buf + hw->wpos, p1, len1, &nominal_volume);
838 hw->conv (hw->conv_buf, p2, len2, &nominal_volume);
842 hw->wpos = (hw->wpos + decr) % hw->samples;