summaryrefslogtreecommitdiffstats
path: root/src/modules/alsa/alsa-sink.c
diff options
context:
space:
mode:
authorJuho Hämäläinen <ext-juho.hamalainen@nokia.com>2010-12-20 18:25:59 +0200
committerColin Guthrie <colin@mageia.org>2011-06-22 22:45:27 +0100
commit4eb513cbf45b46c83f4b3456d66277183615da8e (patch)
treebcb0188329d97f860797c9c9901d40d3d3c6767e /src/modules/alsa/alsa-sink.c
parent1e7c4dd3e6af5bb91bf5e9985725396ebd06293f (diff)
alsa-mixer: select nearest alsa volume step in sync-volume mode
Diffstat (limited to 'src/modules/alsa/alsa-sink.c')
-rw-r--r--src/modules/alsa/alsa-sink.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/modules/alsa/alsa-sink.c b/src/modules/alsa/alsa-sink.c
index 96812c7f..a042c2d1 100644
--- a/src/modules/alsa/alsa-sink.c
+++ b/src/modules/alsa/alsa-sink.c
@@ -1253,7 +1253,7 @@ static void sink_set_volume_cb(pa_sink *s) {
struct userdata *u = s->userdata;
pa_cvolume r;
char vol_str_pcnt[PA_CVOLUME_SNPRINT_MAX];
- pa_bool_t write_to_hw = (s->flags & PA_SINK_SYNC_VOLUME) ? FALSE : TRUE;
+ pa_bool_t sync_volume = !!(s->flags & PA_SINK_SYNC_VOLUME);
pa_assert(u);
pa_assert(u->mixer_path);
@@ -1262,7 +1262,7 @@ static void sink_set_volume_cb(pa_sink *s) {
/* Shift up by the base volume */
pa_sw_cvolume_divide_scalar(&r, &s->real_volume, s->base_volume);
- if (pa_alsa_path_set_volume(u->mixer_path, u->mixer_handle, &s->channel_map, &r, write_to_hw) < 0)
+ if (pa_alsa_path_set_volume(u->mixer_path, u->mixer_handle, &s->channel_map, &r, sync_volume, !sync_volume) < 0)
return;
/* Shift down by the base volume, so that 0dB becomes maximum volume */
@@ -1319,7 +1319,7 @@ static void sink_write_volume_cb(pa_sink *s) {
/* Shift up by the base volume */
pa_sw_cvolume_divide_scalar(&hw_vol, &hw_vol, s->base_volume);
- if (pa_alsa_path_set_volume(u->mixer_path, u->mixer_handle, &s->channel_map, &hw_vol, TRUE) < 0)
+ if (pa_alsa_path_set_volume(u->mixer_path, u->mixer_handle, &s->channel_map, &hw_vol, TRUE, TRUE) < 0)
pa_log_error("Writing HW volume failed");
else {
pa_cvolume tmp_vol;