Lines Matching full:hw
394 if (audio_pcm_info_eq (&cap->hw.info, as)) { in audio_pcm_capture_find_specific()
415 if (cap->hw.enabled != enabled) { in audio_capture_maybe_changed()
417 cap->hw.enabled = enabled; in audio_capture_maybe_changed()
425 HWVoiceOut *hw = &cap->hw; in audio_recalc_and_notify_capture() local
429 for (sw = hw->sw_head.lh_first; sw; sw = sw->entries.le_next) { in audio_recalc_and_notify_capture()
438 static void audio_detach_capture (HWVoiceOut *hw) in audio_detach_capture() argument
440 SWVoiceCap *sc = hw->cap_head.lh_first; in audio_detach_capture()
466 static int audio_attach_capture (HWVoiceOut *hw) in audio_attach_capture() argument
468 AudioState *s = hw->s; in audio_attach_capture()
471 audio_detach_capture (hw); in audio_attach_capture()
475 HWVoiceOut *hw_cap = &cap->hw; in audio_attach_capture()
481 sw->hw = hw_cap; in audio_attach_capture()
482 sw->info = hw->info; in audio_attach_capture()
484 sw->active = hw->enabled; in audio_attach_capture()
488 QLIST_INSERT_HEAD (&hw->cap_head, sc, entries); in audio_attach_capture()
491 hw, sw->info.freq, sw->info.bits, in audio_attach_capture()
505 static size_t audio_pcm_hw_find_min_in (HWVoiceIn *hw) in audio_pcm_hw_find_min_in() argument
508 size_t m = hw->total_samples_captured; in audio_pcm_hw_find_min_in()
510 for (sw = hw->sw_head.lh_first; sw; sw = sw->entries.le_next) { in audio_pcm_hw_find_min_in()
518 static size_t audio_pcm_hw_get_live_in(HWVoiceIn *hw) in audio_pcm_hw_get_live_in() argument
520 size_t live = hw->total_samples_captured - audio_pcm_hw_find_min_in (hw); in audio_pcm_hw_get_live_in()
521 if (audio_bug(__func__, live > hw->conv_buf.size)) { in audio_pcm_hw_get_live_in()
522 dolog("live=%zu hw->conv_buf.size=%zu\n", live, hw->conv_buf.size); in audio_pcm_hw_get_live_in()
528 static size_t audio_pcm_hw_conv_in(HWVoiceIn *hw, void *pcm_buf, size_t samples) in audio_pcm_hw_conv_in() argument
531 STSampleBuffer *conv_buf = &hw->conv_buf; in audio_pcm_hw_conv_in()
534 uint8_t *src = advance(pcm_buf, conv * hw->info.bytes_per_frame); in audio_pcm_hw_conv_in()
537 hw->conv(conv_buf->buffer + conv_buf->pos, src, proc); in audio_pcm_hw_conv_in()
553 HWVoiceIn *hw = sw->hw; in audio_pcm_sw_resample_in() local
557 live = hw->total_samples_captured - sw->total_hw_samples_acquired; in audio_pcm_sw_resample_in()
558 rpos = audio_ring_posb(hw->conv_buf.pos, live, hw->conv_buf.size); in audio_pcm_sw_resample_in()
561 src = hw->conv_buf.buffer + rpos; in audio_pcm_sw_resample_in()
562 frames_in = MIN(frames_in_max, hw->conv_buf.size - rpos); in audio_pcm_sw_resample_in()
571 if (frames_in_max - frames_in && rpos == hw->conv_buf.size) { in audio_pcm_sw_resample_in()
572 src = hw->conv_buf.buffer; in audio_pcm_sw_resample_in()
584 HWVoiceIn *hw = sw->hw; in audio_pcm_sw_read() local
587 live = hw->total_samples_captured - sw->total_hw_samples_acquired; in audio_pcm_sw_read()
591 if (audio_bug(__func__, live > hw->conv_buf.size)) { in audio_pcm_sw_read()
592 dolog("live_in=%zu hw->conv_buf.size=%zu\n", live, hw->conv_buf.size); in audio_pcm_sw_read()
601 if (!hw->pcm_ops->volume_in) { in audio_pcm_sw_read()
613 static size_t audio_pcm_hw_find_min_out (HWVoiceOut *hw, int *nb_livep) in audio_pcm_hw_find_min_out() argument
619 for (sw = hw->sw_head.lh_first; sw; sw = sw->entries.le_next) { in audio_pcm_hw_find_min_out()
630 static size_t audio_pcm_hw_get_live_out (HWVoiceOut *hw, int *nb_live) in audio_pcm_hw_get_live_out() argument
635 smin = audio_pcm_hw_find_min_out (hw, &nb_live1); in audio_pcm_hw_get_live_out()
643 if (audio_bug(__func__, live > hw->mix_buf.size)) { in audio_pcm_hw_get_live_out()
644 dolog("live=%zu hw->mix_buf.size=%zu\n", live, hw->mix_buf.size); in audio_pcm_hw_get_live_out()
652 static size_t audio_pcm_hw_get_free(HWVoiceOut *hw) in audio_pcm_hw_get_free() argument
654 return (hw->pcm_ops->buffer_get_free ? hw->pcm_ops->buffer_get_free(hw) : in audio_pcm_hw_get_free()
655 INT_MAX) / hw->info.bytes_per_frame; in audio_pcm_hw_get_free()
658 static void audio_pcm_hw_clip_out(HWVoiceOut *hw, void *pcm_buf, size_t len) in audio_pcm_hw_clip_out() argument
661 size_t pos = hw->mix_buf.pos; in audio_pcm_hw_clip_out()
664 st_sample *src = hw->mix_buf.buffer + pos; in audio_pcm_hw_clip_out()
665 uint8_t *dst = advance(pcm_buf, clipped * hw->info.bytes_per_frame); in audio_pcm_hw_clip_out()
666 size_t samples_till_end_of_buf = hw->mix_buf.size - pos; in audio_pcm_hw_clip_out()
669 hw->clip(dst, src, samples_to_clip); in audio_pcm_hw_clip_out()
671 pos = (pos + samples_to_clip) % hw->mix_buf.size; in audio_pcm_hw_clip_out()
684 HWVoiceOut *hw = sw->hw; in audio_pcm_sw_resample_out() local
689 wpos = (hw->mix_buf.pos + live) % hw->mix_buf.size; in audio_pcm_sw_resample_out()
694 dst = hw->mix_buf.buffer + wpos; in audio_pcm_sw_resample_out()
695 frames_out = MIN(frames_out_max, hw->mix_buf.size - wpos); in audio_pcm_sw_resample_out()
702 if (frames_in_max - frames_in > 0 && wpos == hw->mix_buf.size) { in audio_pcm_sw_resample_out()
705 dst = hw->mix_buf.buffer; in audio_pcm_sw_resample_out()
715 HWVoiceOut *hw = sw->hw; in audio_pcm_sw_write() local
720 if (audio_bug(__func__, live > hw->mix_buf.size)) { in audio_pcm_sw_write()
721 dolog("live=%zu hw->mix_buf.size=%zu\n", live, hw->mix_buf.size); in audio_pcm_sw_write()
725 if (live == hw->mix_buf.size) { in audio_pcm_sw_write()
732 dead = hw->mix_buf.size - live; in audio_pcm_sw_write()
733 hw_free = audio_pcm_hw_get_free(hw); in audio_pcm_sw_write()
748 if (!sw->hw->pcm_ops->volume_out) { in audio_pcm_sw_write()
864 HWVoiceOut *hw; in AUD_write() local
870 hw = sw->hw; in AUD_write()
872 if (!hw->enabled) { in AUD_write()
877 if (audio_get_pdo_out(hw->s->dev)->mixing_engine) { in AUD_write()
880 return hw->pcm_ops->write(hw, buf, size); in AUD_write()
886 HWVoiceIn *hw; in AUD_read() local
892 hw = sw->hw; in AUD_read()
894 if (!hw->enabled) { in AUD_read()
899 if (audio_get_pdo_in(hw->s->dev)->mixing_engine) { in AUD_read()
902 return hw->pcm_ops->read(hw, buf, size); in AUD_read()
916 return sw->hw->samples * sw->hw->info.bytes_per_frame; in AUD_get_buffer_size_out()
921 HWVoiceOut *hw; in AUD_set_active_out() local
927 hw = sw->hw; in AUD_set_active_out()
934 hw->pending_disable = 0; in AUD_set_active_out()
935 if (!hw->enabled) { in AUD_set_active_out()
936 hw->enabled = 1; in AUD_set_active_out()
938 if (hw->pcm_ops->enable_out) { in AUD_set_active_out()
939 hw->pcm_ops->enable_out(hw, true); in AUD_set_active_out()
945 if (hw->enabled) { in AUD_set_active_out()
948 for (temp_sw = hw->sw_head.lh_first; temp_sw; in AUD_set_active_out()
953 hw->pending_disable = nb_active == 1; in AUD_set_active_out()
957 for (sc = hw->cap_head.lh_first; sc; sc = sc->entries.le_next) { in AUD_set_active_out()
958 sc->sw.active = hw->enabled; in AUD_set_active_out()
959 if (hw->enabled) { in AUD_set_active_out()
969 HWVoiceIn *hw; in AUD_set_active_in() local
975 hw = sw->hw; in AUD_set_active_in()
981 if (!hw->enabled) { in AUD_set_active_in()
982 hw->enabled = 1; in AUD_set_active_in()
984 if (hw->pcm_ops->enable_in) { in AUD_set_active_in()
985 hw->pcm_ops->enable_in(hw, true); in AUD_set_active_in()
990 sw->total_hw_samples_acquired = hw->total_samples_captured; in AUD_set_active_in()
992 if (hw->enabled) { in AUD_set_active_in()
995 for (temp_sw = hw->sw_head.lh_first; temp_sw; in AUD_set_active_in()
1001 hw->enabled = 0; in AUD_set_active_in()
1002 if (hw->pcm_ops->enable_in) { in AUD_set_active_in()
1003 hw->pcm_ops->enable_in(hw, false); in AUD_set_active_in()
1020 live = sw->hw->total_samples_captured - sw->total_hw_samples_acquired; in audio_get_avail()
1021 if (audio_bug(__func__, live > sw->hw->conv_buf.size)) { in audio_get_avail()
1022 dolog("live=%zu sw->hw->conv_buf.size=%zu\n", live, in audio_get_avail()
1023 sw->hw->conv_buf.size); in audio_get_avail()
1046 if (audio_bug(__func__, live > sw->hw->mix_buf.size)) { in audio_get_free()
1047 dolog("live=%zu sw->hw->mix_buf.size=%zu\n", live, in audio_get_free()
1048 sw->hw->mix_buf.size); in audio_get_free()
1052 dead = sw->hw->mix_buf.size - live; in audio_get_free()
1062 static void audio_capture_mix_and_clear(HWVoiceOut *hw, size_t rpos, in audio_capture_mix_and_clear() argument
1067 if (hw->enabled) { in audio_capture_mix_and_clear()
1070 for (sc = hw->cap_head.lh_first; sc; sc = sc->entries.le_next) { in audio_capture_mix_and_clear()
1076 size_t till_end_of_hw = hw->mix_buf.size - rpos2; in audio_capture_mix_and_clear()
1080 sw->resample_buf.buffer = hw->mix_buf.buffer + rpos2; in audio_capture_mix_and_clear()
1085 to_read, sw->hw->mix_buf.size - live, in audio_capture_mix_and_clear()
1098 rpos2 = (rpos2 + to_read) % hw->mix_buf.size; in audio_capture_mix_and_clear()
1103 n = MIN(samples, hw->mix_buf.size - rpos); in audio_capture_mix_and_clear()
1104 mixeng_clear(hw->mix_buf.buffer + rpos, n); in audio_capture_mix_and_clear()
1105 mixeng_clear(hw->mix_buf.buffer, samples - n); in audio_capture_mix_and_clear()
1108 static size_t audio_pcm_hw_run_out(HWVoiceOut *hw, size_t live) in audio_pcm_hw_run_out() argument
1113 size_t size = live * hw->info.bytes_per_frame; in audio_pcm_hw_run_out()
1115 void *buf = hw->pcm_ops->get_buffer_out(hw, &size); in audio_pcm_hw_run_out()
1121 decr = MIN(size / hw->info.bytes_per_frame, live); in audio_pcm_hw_run_out()
1123 audio_pcm_hw_clip_out(hw, buf, decr); in audio_pcm_hw_run_out()
1125 proc = hw->pcm_ops->put_buffer_out(hw, buf, in audio_pcm_hw_run_out()
1126 decr * hw->info.bytes_per_frame) / in audio_pcm_hw_run_out()
1127 hw->info.bytes_per_frame; in audio_pcm_hw_run_out()
1131 hw->mix_buf.pos = (hw->mix_buf.pos + proc) % hw->mix_buf.size; in audio_pcm_hw_run_out()
1138 if (hw->pcm_ops->run_buffer_out) { in audio_pcm_hw_run_out()
1139 hw->pcm_ops->run_buffer_out(hw); in audio_pcm_hw_run_out()
1147 HWVoiceOut *hw = NULL; in audio_run_out() local
1150 while ((hw = audio_pcm_hw_find_any_enabled_out(s, hw))) { in audio_run_out()
1152 size_t hw_free = audio_pcm_hw_get_free(hw); in audio_run_out()
1156 /* there is exactly 1 sw for each hw with no mixeng */ in audio_run_out()
1157 sw = hw->sw_head.lh_first; in audio_run_out()
1159 if (hw->pending_disable) { in audio_run_out()
1160 hw->enabled = 0; in audio_run_out()
1161 hw->pending_disable = 0; in audio_run_out()
1162 if (hw->pcm_ops->enable_out) { in audio_run_out()
1163 hw->pcm_ops->enable_out(hw, false); in audio_run_out()
1172 if (hw->pcm_ops->run_buffer_out) { in audio_run_out()
1173 hw->pcm_ops->run_buffer_out(hw); in audio_run_out()
1179 for (sw = hw->sw_head.lh_first; sw; sw = sw->entries.le_next) { in audio_run_out()
1199 live = audio_pcm_hw_get_live_out (hw, &nb_live); in audio_run_out()
1204 if (audio_bug(__func__, live > hw->mix_buf.size)) { in audio_run_out()
1205 dolog("live=%zu hw->mix_buf.size=%zu\n", live, hw->mix_buf.size); in audio_run_out()
1209 if (hw->pending_disable && !nb_live) { in audio_run_out()
1214 hw->enabled = 0; in audio_run_out()
1215 hw->pending_disable = 0; in audio_run_out()
1216 if (hw->pcm_ops->enable_out) { in audio_run_out()
1217 hw->pcm_ops->enable_out(hw, false); in audio_run_out()
1219 for (sc = hw->cap_head.lh_first; sc; sc = sc->entries.le_next) { in audio_run_out()
1227 if (hw->pcm_ops->run_buffer_out) { in audio_run_out()
1228 hw->pcm_ops->run_buffer_out(hw); in audio_run_out()
1233 prev_rpos = hw->mix_buf.pos; in audio_run_out()
1234 played = audio_pcm_hw_run_out(hw, live); in audio_run_out()
1236 if (audio_bug(__func__, hw->mix_buf.pos >= hw->mix_buf.size)) { in audio_run_out()
1237 dolog("hw->mix_buf.pos=%zu hw->mix_buf.size=%zu played=%zu\n", in audio_run_out()
1238 hw->mix_buf.pos, hw->mix_buf.size, played); in audio_run_out()
1239 hw->mix_buf.pos = 0; in audio_run_out()
1247 hw->ts_helper += played; in audio_run_out()
1248 audio_capture_mix_and_clear (hw, prev_rpos, played); in audio_run_out()
1251 for (sw = hw->sw_head.lh_first; sw; sw = sw->entries.le_next) { in audio_run_out()
1271 static size_t audio_pcm_hw_run_in(HWVoiceIn *hw, size_t samples) in audio_pcm_hw_run_in() argument
1275 if (hw->pcm_ops->run_buffer_in) { in audio_pcm_hw_run_in()
1276 hw->pcm_ops->run_buffer_in(hw); in audio_pcm_hw_run_in()
1281 size_t size = samples * hw->info.bytes_per_frame; in audio_pcm_hw_run_in()
1282 void *buf = hw->pcm_ops->get_buffer_in(hw, &size); in audio_pcm_hw_run_in()
1284 assert(size % hw->info.bytes_per_frame == 0); in audio_pcm_hw_run_in()
1289 proc = audio_pcm_hw_conv_in(hw, buf, size / hw->info.bytes_per_frame); in audio_pcm_hw_run_in()
1293 hw->pcm_ops->put_buffer_in(hw, buf, proc * hw->info.bytes_per_frame); in audio_pcm_hw_run_in()
1301 HWVoiceIn *hw = NULL; in audio_run_in() local
1304 while ((hw = audio_pcm_hw_find_any_enabled_in(s, hw))) { in audio_run_in()
1305 /* there is exactly 1 sw for each hw with no mixeng */ in audio_run_in()
1306 SWVoiceIn *sw = hw->sw_head.lh_first; in audio_run_in()
1314 while ((hw = audio_pcm_hw_find_any_enabled_in(s, hw))) { in audio_run_in()
1320 hw, hw->conv_buf.size - audio_pcm_hw_get_live_in(hw)); in audio_run_in()
1322 replay_audio_in(&captured, hw->conv_buf.buffer, &hw->conv_buf.pos, in audio_run_in()
1323 hw->conv_buf.size); in audio_run_in()
1325 min = audio_pcm_hw_find_min_in (hw); in audio_run_in()
1326 hw->total_samples_captured += captured - min; in audio_run_in()
1327 hw->ts_helper += captured; in audio_run_in()
1329 for (sw = hw->sw_head.lh_first; sw; sw = sw->entries.le_next) { in audio_run_in()
1353 HWVoiceOut *hw = &cap->hw; in audio_run_capture() local
1356 captured = live = audio_pcm_hw_get_live_out (hw, NULL); in audio_run_capture()
1357 rpos = hw->mix_buf.pos; in audio_run_capture()
1359 size_t left = hw->mix_buf.size - rpos; in audio_run_capture()
1364 src = hw->mix_buf.buffer + rpos; in audio_run_capture()
1365 hw->clip (cap->buf, src, to_capture); in audio_run_capture()
1370 to_capture * hw->info.bytes_per_frame); in audio_run_capture()
1372 rpos = (rpos + to_capture) % hw->mix_buf.size; in audio_run_capture()
1375 hw->mix_buf.pos = rpos; in audio_run_capture()
1377 for (sw = hw->sw_head.lh_first; sw; sw = sw->entries.le_next) { in audio_run_capture()
1418 void audio_generic_run_buffer_in(HWVoiceIn *hw) in audio_generic_run_buffer_in() argument
1420 if (unlikely(!hw->buf_emul)) { in audio_generic_run_buffer_in()
1421 hw->size_emul = hw->samples * hw->info.bytes_per_frame; in audio_generic_run_buffer_in()
1422 hw->buf_emul = g_malloc(hw->size_emul); in audio_generic_run_buffer_in()
1423 hw->pos_emul = hw->pending_emul = 0; in audio_generic_run_buffer_in()
1426 while (hw->pending_emul < hw->size_emul) { in audio_generic_run_buffer_in()
1427 size_t read_len = MIN(hw->size_emul - hw->pos_emul, in audio_generic_run_buffer_in()
1428 hw->size_emul - hw->pending_emul); in audio_generic_run_buffer_in()
1429 size_t read = hw->pcm_ops->read(hw, hw->buf_emul + hw->pos_emul, in audio_generic_run_buffer_in()
1431 hw->pending_emul += read; in audio_generic_run_buffer_in()
1432 hw->pos_emul = (hw->pos_emul + read) % hw->size_emul; in audio_generic_run_buffer_in()
1439 void *audio_generic_get_buffer_in(HWVoiceIn *hw, size_t *size) in audio_generic_get_buffer_in() argument
1443 start = audio_ring_posb(hw->pos_emul, hw->pending_emul, hw->size_emul); in audio_generic_get_buffer_in()
1444 assert(start < hw->size_emul); in audio_generic_get_buffer_in()
1446 *size = MIN(*size, hw->pending_emul); in audio_generic_get_buffer_in()
1447 *size = MIN(*size, hw->size_emul - start); in audio_generic_get_buffer_in()
1448 return hw->buf_emul + start; in audio_generic_get_buffer_in()
1451 void audio_generic_put_buffer_in(HWVoiceIn *hw, void *buf, size_t size) in audio_generic_put_buffer_in() argument
1453 assert(size <= hw->pending_emul); in audio_generic_put_buffer_in()
1454 hw->pending_emul -= size; in audio_generic_put_buffer_in()
1457 size_t audio_generic_buffer_get_free(HWVoiceOut *hw) in audio_generic_buffer_get_free() argument
1459 if (hw->buf_emul) { in audio_generic_buffer_get_free()
1460 return hw->size_emul - hw->pending_emul; in audio_generic_buffer_get_free()
1462 return hw->samples * hw->info.bytes_per_frame; in audio_generic_buffer_get_free()
1466 void audio_generic_run_buffer_out(HWVoiceOut *hw) in audio_generic_run_buffer_out() argument
1468 while (hw->pending_emul) { in audio_generic_run_buffer_out()
1471 start = audio_ring_posb(hw->pos_emul, hw->pending_emul, hw->size_emul); in audio_generic_run_buffer_out()
1472 assert(start < hw->size_emul); in audio_generic_run_buffer_out()
1474 write_len = MIN(hw->pending_emul, hw->size_emul - start); in audio_generic_run_buffer_out()
1476 written = hw->pcm_ops->write(hw, hw->buf_emul + start, write_len); in audio_generic_run_buffer_out()
1477 hw->pending_emul -= written; in audio_generic_run_buffer_out()
1485 void *audio_generic_get_buffer_out(HWVoiceOut *hw, size_t *size) in audio_generic_get_buffer_out() argument
1487 if (unlikely(!hw->buf_emul)) { in audio_generic_get_buffer_out()
1488 hw->size_emul = hw->samples * hw->info.bytes_per_frame; in audio_generic_get_buffer_out()
1489 hw->buf_emul = g_malloc(hw->size_emul); in audio_generic_get_buffer_out()
1490 hw->pos_emul = hw->pending_emul = 0; in audio_generic_get_buffer_out()
1493 *size = MIN(hw->size_emul - hw->pending_emul, in audio_generic_get_buffer_out()
1494 hw->size_emul - hw->pos_emul); in audio_generic_get_buffer_out()
1495 return hw->buf_emul + hw->pos_emul; in audio_generic_get_buffer_out()
1498 size_t audio_generic_put_buffer_out(HWVoiceOut *hw, void *buf, size_t size) in audio_generic_put_buffer_out() argument
1500 assert(buf == hw->buf_emul + hw->pos_emul && in audio_generic_put_buffer_out()
1501 size + hw->pending_emul <= hw->size_emul); in audio_generic_put_buffer_out()
1503 hw->pending_emul += size; in audio_generic_put_buffer_out()
1504 hw->pos_emul = (hw->pos_emul + size) % hw->size_emul; in audio_generic_put_buffer_out()
1509 size_t audio_generic_write(HWVoiceOut *hw, void *buf, size_t size) in audio_generic_write() argument
1513 if (hw->pcm_ops->buffer_get_free) { in audio_generic_write()
1514 size_t free = hw->pcm_ops->buffer_get_free(hw); in audio_generic_write()
1522 void *dst = hw->pcm_ops->get_buffer_out(hw, &dst_size); in audio_generic_write()
1532 proc = hw->pcm_ops->put_buffer_out(hw, dst, copy_size); in audio_generic_write()
1543 size_t audio_generic_read(HWVoiceIn *hw, void *buf, size_t size) in audio_generic_read() argument
1547 if (hw->pcm_ops->run_buffer_in) { in audio_generic_read()
1548 hw->pcm_ops->run_buffer_in(hw); in audio_generic_read()
1553 void *src = hw->pcm_ops->get_buffer_in(hw, &src_size); in audio_generic_read()
1560 hw->pcm_ops->put_buffer_in(hw, src, src_size); in audio_generic_read()
1876 HWVoiceOut *hw; in AUD_add_capture() local
1880 hw = &cap->hw; in AUD_add_capture()
1881 hw->s = s; in AUD_add_capture()
1882 hw->pcm_ops = &capture_pcm_ops; in AUD_add_capture()
1883 QLIST_INIT (&hw->sw_head); in AUD_add_capture()
1887 hw->samples = 4096 * 4; in AUD_add_capture()
1888 audio_pcm_hw_alloc_resources_out(hw); in AUD_add_capture()
1890 audio_pcm_init_info (&hw->info, as); in AUD_add_capture()
1892 cap->buf = g_malloc0_n(hw->mix_buf.size, hw->info.bytes_per_frame); in AUD_add_capture()
1894 if (hw->info.is_float) { in AUD_add_capture()
1895 hw->clip = mixeng_clip_float[hw->info.nchannels == 2] in AUD_add_capture()
1896 [hw->info.swap_endianness]; in AUD_add_capture()
1898 hw->clip = mixeng_clip in AUD_add_capture()
1899 [hw->info.nchannels == 2] in AUD_add_capture()
1900 [hw->info.is_signed] in AUD_add_capture()
1901 [hw->info.swap_endianness] in AUD_add_capture()
1902 [audio_bits_to_index(hw->info.bits)]; in AUD_add_capture()
1908 QLIST_FOREACH(hw, &s->hw_head_out, entries) { in AUD_add_capture()
1909 audio_attach_capture (hw); in AUD_add_capture()
1927 SWVoiceOut *sw = cap->hw.sw_head.lh_first, *sw1; in AUD_del_capture()
1946 g_free(cap->hw.mix_buf.buffer); in AUD_del_capture()
1964 HWVoiceOut *hw = sw->hw; in audio_set_volume_out() local
1971 if (hw->pcm_ops->volume_out) { in audio_set_volume_out()
1972 hw->pcm_ops->volume_out(hw, vol); in audio_set_volume_out()
1986 HWVoiceIn *hw = sw->hw; in audio_set_volume_in() local
1993 if (hw->pcm_ops->volume_in) { in audio_set_volume_in()
1994 hw->pcm_ops->volume_in(hw, vol); in audio_set_volume_in()