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 | |
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
-rw-r--r-- | src/modules/alsa-util.c | 43 | ||||
-rw-r--r-- | src/modules/alsa-util.h | 3 |
2 files changed, 46 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); +} diff --git a/src/modules/alsa-util.h b/src/modules/alsa-util.h index dee955fd..0e536f1b 100644 --- a/src/modules/alsa-util.h +++ b/src/modules/alsa-util.h @@ -82,4 +82,7 @@ int pa_alsa_calc_mixer_map(snd_mixer_elem_t *elem, const pa_channel_map *channel void pa_alsa_0dB_playback(snd_mixer_elem_t *elem); void pa_alsa_0dB_capture(snd_mixer_elem_t *elem); +void pa_alsa_dump(snd_pcm_t *pcm); +void pa_alsa_dump_status(snd_pcm_t *pcm); + #endif |