diff options
author | Juho Hämäläinen <ext-juho.hamalainen@nokia.com> | 2010-12-20 18:25:59 +0200 |
---|---|---|
committer | Colin Guthrie <colin@mageia.org> | 2011-06-22 22:45:27 +0100 |
commit | 4eb513cbf45b46c83f4b3456d66277183615da8e (patch) | |
tree | bcb0188329d97f860797c9c9901d40d3d3c6767e /src/modules/alsa/alsa-source.c | |
parent | 1e7c4dd3e6af5bb91bf5e9985725396ebd06293f (diff) |
alsa-mixer: select nearest alsa volume step in sync-volume mode
Diffstat (limited to 'src/modules/alsa/alsa-source.c')
-rw-r--r-- | src/modules/alsa/alsa-source.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/modules/alsa/alsa-source.c b/src/modules/alsa/alsa-source.c index adec8f64..fb96ed01 100644 --- a/src/modules/alsa/alsa-source.c +++ b/src/modules/alsa/alsa-source.c @@ -1129,7 +1129,7 @@ static void source_set_volume_cb(pa_source *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_SOURCE_SYNC_VOLUME) ? FALSE : TRUE; + pa_bool_t sync_volume = !!(s->flags & PA_SOURCE_SYNC_VOLUME); pa_assert(u); pa_assert(u->mixer_path); @@ -1138,7 +1138,7 @@ static void source_set_volume_cb(pa_source *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 */ @@ -1195,7 +1195,7 @@ static void source_write_volume_cb(pa_source *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; |