Lines Matching full:hw

27 #define HWBUF hw->mix_buf
29 #define HW HWVoiceOut macro
34 #define HW HWVoiceIn macro
36 #define HWBUF hw->conv_buf
78 static void glue (audio_pcm_hw_free_resources_, TYPE) (HW *hw) in glue()
80 g_free(hw->buf_emul); in glue()
86 static void glue(audio_pcm_hw_alloc_resources_, TYPE)(HW *hw) in glue()
88 if (glue(audio_get_pdo_, TYPE)(hw->s->dev)->mixing_engine) { in glue()
89 size_t samples = hw->samples; in glue()
117 HW *hw = sw->hw; in glue() local
124 samples = muldiv64(HWBUF.size, sw->info.freq, hw->info.freq); in glue()
127 uint64_t f_be = (uint32_t)hw->info.freq; in glue()
150 sw->rate = st_rate_start(sw->info.freq, hw->info.freq); in glue()
152 sw->rate = st_rate_start(hw->info.freq, sw->info.freq); in glue()
160 HW *hw, in glue()
168 sw->hw = hw; in glue()
211 static void glue (audio_pcm_hw_add_sw_, TYPE) (HW *hw, SW *sw) in glue()
213 QLIST_INSERT_HEAD (&hw->sw_head, sw, entries); in glue()
221 static void glue (audio_pcm_hw_gc_, TYPE) (HW **hwp) in glue()
223 HW *hw = *hwp; in glue() local
224 AudioState *s = hw->s; in glue()
226 if (!hw->sw_head.lh_first) { in glue()
228 audio_detach_capture(hw); in glue()
230 QLIST_REMOVE(hw, entries); in glue()
231 glue(hw->pcm_ops->fini_, TYPE) (hw); in glue() local
233 glue(audio_pcm_hw_free_resources_ , TYPE) (hw); in glue()
234 g_free(hw); in glue()
239 static HW *glue(audio_pcm_hw_find_any_, TYPE)(AudioState *s, HW *hw) in glue()
241 return hw ? hw->entries.le_next : glue (s->hw_head_, TYPE).lh_first; in glue()
244 static HW *glue(audio_pcm_hw_find_any_enabled_, TYPE)(AudioState *s, HW *hw) in glue()
246 while ((hw = glue(audio_pcm_hw_find_any_, TYPE)(s, hw))) { in glue()
247 if (hw->enabled) { in glue()
248 return hw; in glue()
254 static HW *glue(audio_pcm_hw_find_specific_, TYPE)(AudioState *s, HW *hw, in glue()
257 while ((hw = glue(audio_pcm_hw_find_any_, TYPE)(s, hw))) { in glue()
258 if (audio_pcm_info_eq (&hw->info, as)) { in glue()
259 return hw; in glue()
265 static HW *glue(audio_pcm_hw_add_new_, TYPE)(AudioState *s, in glue()
268 HW *hw; in glue() local
289 hw = g_malloc0(glue(drv->voice_size_, TYPE)); in glue()
290 hw->s = s; in glue()
291 hw->pcm_ops = drv->pcm_ops; in glue()
293 QLIST_INIT (&hw->sw_head); in glue()
295 QLIST_INIT (&hw->cap_head); in glue()
297 if (glue (hw->pcm_ops->init_, TYPE) (hw, as, s->drv_opaque)) { in glue()
301 if (audio_bug(__func__, hw->samples <= 0)) { in glue()
302 dolog("hw->samples=%zd\n", hw->samples); in glue()
306 if (hw->info.is_float) { in glue()
308 hw->clip = mixeng_clip_float[hw->info.nchannels == 2] in glue()
309 [hw->info.swap_endianness]; in glue()
311 hw->conv = mixeng_conv_float[hw->info.nchannels == 2] in glue()
312 [hw->info.swap_endianness]; in glue()
316 hw->clip = mixeng_clip in glue()
318 hw->conv = mixeng_conv in glue()
320 [hw->info.nchannels == 2] in glue()
321 [hw->info.is_signed] in glue()
322 [hw->info.swap_endianness] in glue()
323 [audio_bits_to_index(hw->info.bits)]; in glue()
326 glue(audio_pcm_hw_alloc_resources_, TYPE)(hw); in glue()
328 QLIST_INSERT_HEAD (&s->glue (hw_head_, TYPE), hw, entries); in glue()
331 audio_attach_capture (hw); in glue()
333 return hw; in glue()
336 glue (hw->pcm_ops->fini_, TYPE) (hw); in glue()
338 g_free (hw); in glue()
401 static HW *glue(audio_pcm_hw_add_, TYPE)(AudioState *s, struct audsettings *as) in glue()
403 HW *hw; in glue() local
407 hw = glue(audio_pcm_hw_add_new_, TYPE)(s, as); in glue()
408 if (!pdo->mixing_engine || hw) { in glue()
409 return hw; in glue()
413 hw = glue(audio_pcm_hw_find_specific_, TYPE)(s, NULL, as); in glue()
414 if (hw) { in glue()
415 return hw; in glue()
418 hw = glue(audio_pcm_hw_add_new_, TYPE)(s, as); in glue()
419 if (hw) { in glue()
420 return hw; in glue()
433 HW *hw; in glue() local
446 hw = glue(audio_pcm_hw_add_, TYPE)(s, &hw_as); in glue()
447 if (!hw) { in glue()
452 glue (audio_pcm_hw_add_sw_, TYPE) (hw, sw); in glue()
454 if (glue (audio_pcm_sw_init_, TYPE) (sw, hw, sw_name, as)) { in glue()
462 glue (audio_pcm_hw_gc_, TYPE) (&hw); in glue()
472 glue (audio_pcm_hw_gc_, TYPE) (&sw->hw); in glue()
532 HW *hw = sw->hw; in glue() local
534 if (!hw) { in glue()
541 if (glue (audio_pcm_sw_init_, TYPE) (sw, hw, name, as)) { in glue()
558 audio_pcm_print_info ("hw", &sw->hw->info); in glue()
580 ts->old_ts = sw->hw->ts_helper; in glue()
591 cur_ts = sw->hw->ts_helper; in glue()
605 return muldiv64 (delta, sw->hw->info.freq, 1000000); in glue()
609 #undef HW