summaryrefslogtreecommitdiffstats
path: root/src/modules/module-position-event-sounds.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2009-01-27 23:52:35 +0100
committerLennart Poettering <lennart@poettering.net>2009-01-27 23:55:37 +0100
commite439c18785fa0130ecff164e36e0096c4fd92866 (patch)
treef3b509630fb6701d3d8c4540c77a7fe260baf669 /src/modules/module-position-event-sounds.c
parentd1b754d99867e68dea71d4d6726949d0ce8ba0fa (diff)
make m-p-e-s use pa_cvolume_set_balance()
Diffstat (limited to 'src/modules/module-position-event-sounds.c')
-rw-r--r--src/modules/module-position-event-sounds.c34
1 files changed, 3 insertions, 31 deletions
diff --git a/src/modules/module-position-event-sounds.c b/src/modules/module-position-event-sounds.c
index e75b1c50..8e4f4c32 100644
--- a/src/modules/module-position-event-sounds.c
+++ b/src/modules/module-position-event-sounds.c
@@ -58,30 +58,9 @@ struct userdata {
pa_hook_slot *sink_input_fixate_hook_slot;
};
-static pa_bool_t is_left(pa_channel_position_t p) {
- return
- p == PA_CHANNEL_POSITION_FRONT_LEFT ||
- p == PA_CHANNEL_POSITION_REAR_LEFT ||
- p == PA_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER ||
- p == PA_CHANNEL_POSITION_SIDE_LEFT ||
- p == PA_CHANNEL_POSITION_TOP_FRONT_LEFT ||
- p == PA_CHANNEL_POSITION_TOP_REAR_LEFT;
-}
-
-static pa_bool_t is_right(pa_channel_position_t p) {
- return
- p == PA_CHANNEL_POSITION_FRONT_RIGHT ||
- p == PA_CHANNEL_POSITION_REAR_RIGHT||
- p == PA_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER ||
- p == PA_CHANNEL_POSITION_SIDE_RIGHT ||
- p == PA_CHANNEL_POSITION_TOP_FRONT_RIGHT ||
- p == PA_CHANNEL_POSITION_TOP_REAR_RIGHT;
-}
-
static pa_hook_result_t sink_input_fixate_hook_callback(pa_core *core, pa_sink_input_new_data *data, struct userdata *u) {
const char *hpos;
double f;
- unsigned c;
char t[PA_CVOLUME_SNPRINT_MAX];
pa_assert(data);
@@ -104,18 +83,11 @@ static pa_hook_result_t sink_input_fixate_hook_callback(pa_core *core, pa_sink_i
if (!data->virtual_volume_is_set) {
pa_cvolume_reset(&data->virtual_volume, data->sample_spec.channels);
data->virtual_volume_is_set = TRUE;
+ data->virtual_volume_is_absolute = FALSE;
}
- for (c = 0; c < data->sample_spec.channels; c++) {
-
- if (is_left(data->channel_map.map[c]))
- data->virtual_volume.values[c] =
- pa_sw_volume_multiply(data->virtual_volume.values[c], (pa_volume_t) (PA_VOLUME_NORM * (1.0 - f)));
-
- if (is_right(data->channel_map.map[c]))
- data->virtual_volume.values[c] =
- pa_sw_volume_multiply(data->virtual_volume.values[c], (pa_volume_t) (PA_VOLUME_NORM * f));
- }
+ pa_cvolume_set_balance(&data->virtual_volume, &data->channel_map, f*2.0-1.0);
+ data->save_volume = FALSE;
pa_log_debug("Final volume %s.", pa_cvolume_snprint(t, sizeof(t), &data->virtual_volume));