Lines Matching full:handle
40 snd_pcm_t *handle; member
49 snd_pcm_t *handle; member
56 snd_pcm_t *handle; member
117 hlp->handle = NULL; in alsa_fini_poll()
124 alsa_logerr (err, "Failed to close PCM handle %p\n", *handlep); in alsa_anal_close1()
135 static int alsa_recover (snd_pcm_t *handle) in alsa_recover() argument
137 int err = snd_pcm_prepare (handle); in alsa_recover()
139 alsa_logerr (err, "Failed to prepare handle %p\n", handle); in alsa_recover()
145 static int alsa_resume (snd_pcm_t *handle) in alsa_resume() argument
147 int err = snd_pcm_resume (handle); in alsa_resume()
149 alsa_logerr (err, "Failed to resume handle %p\n", handle); in alsa_resume()
174 err = snd_pcm_poll_descriptors_revents (hlp->handle, hlp->pfds, in alsa_poll_handler()
186 state = snd_pcm_state (hlp->handle); in alsa_poll_handler()
189 alsa_recover (hlp->handle); in alsa_poll_handler()
193 alsa_recover (hlp->handle); in alsa_poll_handler()
197 alsa_resume (hlp->handle); in alsa_poll_handler()
213 static int alsa_poll_helper (snd_pcm_t *handle, struct pollhlp *hlp, int mask) in alsa_poll_helper() argument
218 count = snd_pcm_poll_descriptors_count (handle); in alsa_poll_helper()
227 err = snd_pcm_poll_descriptors (handle, pfds, count); in alsa_poll_helper()
248 hlp->handle = handle; in alsa_poll_helper()
257 return alsa_poll_helper (alsa->handle, &alsa->pollhlp, POLLOUT); in alsa_poll_out()
264 return alsa_poll_helper (alsa->handle, &alsa->pollhlp, POLLIN); in alsa_poll_in()
408 static void alsa_set_threshold (snd_pcm_t *handle, snd_pcm_uframes_t threshold) in alsa_set_threshold() argument
415 err = snd_pcm_sw_params_current (handle, sw_params); in alsa_set_threshold()
422 err = snd_pcm_sw_params_set_start_threshold (handle, sw_params, threshold); in alsa_set_threshold()
430 err = snd_pcm_sw_params (handle, sw_params); in alsa_set_threshold()
444 snd_pcm_t *handle; in alsa_open() local
459 &handle, in alsa_open()
469 err = snd_pcm_hw_params_any (handle, hw_params); in alsa_open()
476 handle, in alsa_open()
485 err = snd_pcm_hw_params_set_format (handle, hw_params, req->fmt); in alsa_open()
490 err = snd_pcm_hw_params_set_rate_near (handle, hw_params, &freq, 0); in alsa_open()
497 handle, in alsa_open()
512 handle, hw_params, &btime, &dir); in alsa_open()
530 err = snd_pcm_hw_params_set_period_time_near(handle, hw_params, &ptime, in alsa_open()
545 err = snd_pcm_hw_params (handle, hw_params); in alsa_open()
568 err = snd_pcm_prepare (handle); in alsa_open()
570 alsa_logerr2 (err, typ, "Could not prepare handle %p\n", handle); in alsa_open()
577 handle, in alsa_open()
586 *handlep = handle; in alsa_open()
597 alsa_anal_close1 (&handle); in alsa_open()
607 avail = snd_pcm_avail_update(alsa->handle); in alsa_buffer_get_free()
610 if (!alsa_recover(alsa->handle)) { in alsa_buffer_get_free()
611 avail = snd_pcm_avail_update(alsa->handle); in alsa_buffer_get_free()
647 written = snd_pcm_writei(alsa->handle, src, len_frames); in alsa_write()
656 if (alsa_recover(alsa->handle)) { in alsa_write()
669 if (alsa_resume(alsa->handle)) { in alsa_write()
702 alsa_anal_close (&alsa->handle, &alsa->pollhlp); in alsa_fini_out()
711 snd_pcm_t *handle; in alsa_init_out() local
719 if (alsa_open(0, &req, &obt, &handle, dev)) { in alsa_init_out()
732 alsa->handle = handle; in alsa_init_out()
741 static int alsa_voice_ctl (snd_pcm_t *handle, const char *typ, int ctl) in alsa_voice_ctl() argument
746 err = snd_pcm_drop (handle); in alsa_voice_ctl()
752 err = snd_pcm_prepare (handle); in alsa_voice_ctl()
754 alsa_logerr (err, "Could not prepare handle for %s\n", typ); in alsa_voice_ctl()
758 err = snd_pcm_start(handle); in alsa_voice_ctl()
760 alsa_logerr (err, "Could not start handle for %s\n", typ); in alsa_voice_ctl()
782 alsa_voice_ctl(alsa->handle, "playback", VOICE_CTL_PREPARE); in alsa_enable_out()
789 alsa_voice_ctl(alsa->handle, "playback", VOICE_CTL_PAUSE); in alsa_enable_out()
798 snd_pcm_t *handle; in alsa_init_in() local
806 if (alsa_open(1, &req, &obt, &handle, dev)) { in alsa_init_in()
819 alsa->handle = handle; in alsa_init_in()
828 alsa_anal_close (&alsa->handle, &alsa->pollhlp); in alsa_fini_in()
841 alsa->handle, dst, len / hw->info.bytes_per_frame); in alsa_read()
850 if (alsa_recover(alsa->handle)) { in alsa_read()
888 alsa_voice_ctl(alsa->handle, "capture", VOICE_CTL_START); in alsa_enable_in()
895 alsa_voice_ctl(alsa->handle, "capture", VOICE_CTL_PAUSE); in alsa_enable_in()