Lines Matching refs:hw

105     HWVoiceOut hw;
115 HWVoiceIn hw;
506 ds->hw.samples,
507 ds->hw.info.freq,
508 ds->hw.info.nchannels,
509 ds->hw.info.bits,
510 ds->hw.info.sign));
532 bd.dwBufferBytes = ds->hw.samples << ds->hw.info.shift;
573 if (bc.dwBufferBytes & ds->hw.info.align) {
575 bc.dwBufferBytes, ds->hw.info.align + 1));
578 if (ds->hw.samples != 0 && ds->hw.samples != (bc.dwBufferBytes >> ds->hw.info.shift)) {
579 DSLOGREL(("DSound: playback buffer size mismatch dsound %d, hw %d bytes\n",
580 bc.dwBufferBytes, ds->hw.samples << ds->hw.info.shift));
587 ds->playback_buffer_size = bc.dwBufferBytes >> ds->hw.info.shift;
761 ds->hw.samples,
762 ds->hw.info.freq,
763 ds->hw.info.nchannels,
764 ds->hw.info.bits,
765 ds->hw.info.sign));
786 bd.dwBufferBytes = ds->hw.samples << ds->hw.info.shift;
836 if (bc.dwBufferBytes & ds->hw.info.align) {
838 bc.dwBufferBytes, ds->hw.info.align + 1));
841 if (ds->hw.samples != 0 && ds->hw.samples != (bc.dwBufferBytes >> ds->hw.info.shift)) {
842 DSLOGREL(("DSound: buffer size mismatch dsound %d, hw %d bytes\n",
843 bc.dwBufferBytes, ds->hw.samples << ds->hw.info.shift));
847 ds->hw.wpos = 0;
848 ds->last_read_pos = rpos >> ds->hw.info.shift;
849 ds->capture_buffer_size = bc.dwBufferBytes >> ds->hw.info.shift;
908 static void dsound_write_sample (HWVoiceOut *hw, uint8_t *dst, int dst_len)
912 int pos = hw->rpos + dst_len;
913 st_sample_t *src1 = hw->mix_buf + hw->rpos;
916 if (pos > hw->samples) {
917 src_len1 = hw->samples - hw->rpos;
918 src2 = hw->mix_buf;
924 hw->clip (dst, src1, src_len1);
928 dst = advance (dst, src_len1 << hw->info.shift);
929 hw->clip (dst, src2, src_len2);
932 hw->rpos = pos % hw->samples;
943 &ds->hw.info,
945 ds->playback_buffer_size << ds->hw.info.shift,
954 len1 = blen1 >> ds->hw.info.shift;
955 len2 = blen2 >> ds->hw.info.shift;
958 audio_pcm_info_clear_buf (&ds->hw.info, p1, len1);
962 audio_pcm_info_clear_buf (&ds->hw.info, p2, len2);
968 static int dsound_ctl_out (HWVoiceOut *hw, int cmd, ...)
970 DSoundVoiceOut *ds = (DSoundVoiceOut *) hw;
997 static int dsound_run_out (HWVoiceOut *hw)
1001 DSoundVoiceOut *ds = (DSoundVoiceOut *) hw;
1016 hwshift = hw->info.shift;
1019 live = audio_pcm_hw_get_live_out (hw);
1045 conf_blat = millis_to_bytes (&hw->info, conf.latency_millis);
1051 old_pos &= ~hw->info.align;
1082 len &= ~hw->info.align;
1089 &hw->info,
1105 dsound_write_sample (hw, p1, len1);
1109 dsound_write_sample (hw, p2, len2);
1118 static int dsound_ctl_in (HWVoiceIn *hw, int cmd, ...)
1120 DSoundVoiceIn *ds = (DSoundVoiceIn *) hw;
1147 static int dsound_run_in (HWVoiceIn *hw)
1151 DSoundVoiceIn *ds = (DSoundVoiceIn *) hw;
1167 hwshift = hw->info.shift;
1169 live = audio_pcm_hw_get_live_in (hw);
1170 dead = hw->samples - live;
1189 if (rpos & hw->info.align) {
1190 DSLOGF(("DSound: run_in misaligned read position %ld(%d)\n", rpos, hw->info.align));
1204 &hw->info,
1222 ltmp = audio_MIN(len1, hw->samples - hw->wpos);
1223 hw->conv (hw->conv_buf + hw->wpos, p1, ltmp, &pcm_in_volume);
1225 hw->conv (hw->conv_buf, (void *)((uintptr_t)p1 + (ltmp << hwshift)), len1 - ltmp, &pcm_in_volume);
1227 hw->wpos = (hw->wpos + len1) % hw->samples;
1231 ltmp = audio_MIN(len2, hw->samples - hw->wpos);
1232 hw->conv (hw->conv_buf + hw->wpos, p2, ltmp, &pcm_in_volume);
1234 hw->conv (hw->conv_buf, (void *)((uintptr_t)p2 + (ltmp << hwshift)), len2 - ltmp, &pcm_in_volume);
1236 hw->wpos = (hw->wpos + len2) % hw->samples;