summaryrefslogtreecommitdiffstats
path: root/src/modules/module-alsa-sink.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/module-alsa-sink.c')
-rw-r--r--src/modules/module-alsa-sink.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/modules/module-alsa-sink.c b/src/modules/module-alsa-sink.c
index 1bcb30c0..70685e40 100644
--- a/src/modules/module-alsa-sink.c
+++ b/src/modules/module-alsa-sink.c
@@ -234,7 +234,7 @@ static int unix_write(struct userdata *u) {
l = snd_pcm_status_get_avail(status) * u->frame_size;
-/* pa_log("%u bytes to write", l); */
+/* pa_log("%u bytes to write", l); */
if (l <= 0)
return work_done;
@@ -248,7 +248,7 @@ static int unix_write(struct userdata *u) {
t = snd_pcm_writei(u->pcm_handle, (const uint8_t*) p + u->memchunk.index, u->memchunk.length / u->frame_size);
pa_memblock_release(u->memchunk.memblock);
-/* pa_log("wrote %i bytes of %u (%u)", t*u->frame_size, u->memchunk.length, l); */
+/* pa_log("wrote %i bytes of %u (%u)", t*u->frame_size, u->memchunk.length, l); */
pa_assert(t != 0);
@@ -834,16 +834,17 @@ int pa__init(pa_module*m) {
if (snd_mixer_selem_has_playback_volume(u->mixer_elem)) {
int i;
- for (i = 0;i < ss.channels; i++) {
+ for (i = 0; i < ss.channels; i++)
if (!snd_mixer_selem_has_playback_channel(u->mixer_elem, i))
break;
- }
if (i == ss.channels) {
+ pa_log_debug("ALSA device has separate volumes controls for all %u channels.", ss.channels);
u->sink->get_volume = sink_get_volume_cb;
u->sink->set_volume = sink_set_volume_cb;
snd_mixer_selem_get_playback_volume_range(u->mixer_elem, &u->hw_volume_min, &u->hw_volume_max);
- }
+ } else
+ pa_log_info("ALSA device lacks separate volumes controls for all %u channels (%u available), falling back to software volume control.", ss.channels, i+1);
}
if (snd_mixer_selem_has_playback_switch(u->mixer_elem)) {