diff options
author | Lennart Poettering <lennart@poettering.net> | 2008-04-07 16:46:13 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2008-04-07 16:46:13 +0000 |
commit | 98b0152d7c9fe219448edfd61777b8f7357da25c (patch) | |
tree | e67d2fcbf1c49a639b8c571e246656c1db9b74c7 /src/modules/alsa-util.c | |
parent | b9c10f2c56fc34b5ff99b0a9b3959b4d37586a39 (diff) |
add utility functions to dump alsa PCM state
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/glitch-free@2219 fefdeb5f-60dc-0310-8127-8f9354f1896f
Diffstat (limited to 'src/modules/alsa-util.c')
-rw-r--r-- | src/modules/alsa-util.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/modules/alsa-util.c b/src/modules/alsa-util.c index 38ea8633..c8f594ac 100644 --- a/src/modules/alsa-util.c +++ b/src/modules/alsa-util.c @@ -894,3 +894,46 @@ void pa_alsa_0dB_capture(snd_mixer_elem_t *elem) { snd_mixer_selem_set_capture_volume_all(elem, v); } + +void pa_alsa_dump(snd_pcm_t *pcm) { + int err; + snd_output_t *out; + + pa_assert(pcm); + + pa_assert_se(snd_output_buffer_open(&out) == 0); + + if ((err = snd_pcm_dump(pcm, out)) < 0) + pa_log_debug("snd_pcm_dump(): %s", snd_strerror(err)); + else { + char *s = NULL; + snd_output_buffer_string(out, &s); + pa_log_debug("snd_pcm_dump():\n%s", pa_strnull(s)); + } + + pa_assert_se(snd_output_close(out) == 0); +} + +void pa_alsa_dump_status(snd_pcm_t *pcm) { + int err; + snd_output_t *out; + snd_pcm_status_t *status; + + pa_assert(pcm); + + snd_pcm_status_alloca(&status); + + pa_assert_se(snd_output_buffer_open(&out) == 0); + + pa_assert_se(snd_pcm_status(pcm, status) == 0); + + if ((err = snd_pcm_status_dump(status, out)) < 0) + pa_log_debug("snd_pcm_dump(): %s", snd_strerror(err)); + else { + char *s = NULL; + snd_output_buffer_string(out, &s); + pa_log_debug("snd_pcm_dump():\n%s", pa_strnull(s)); + } + + pa_assert_se(snd_output_close(out) == 0); +} |