introduce pa_sink_input_get_relative_volume()

This commit is contained in:
Lennart Poettering 2009-03-20 13:50:26 +01:00
parent bd3154a861
commit a998038ee2
2 changed files with 23 additions and 0 deletions

View file

@ -923,6 +923,28 @@ const pa_cvolume *pa_sink_input_get_volume(pa_sink_input *i) {
return &i->virtual_volume;
}
/* Called from main context */
pa_cvolume *pa_sink_input_get_relative_volume(pa_sink_input *i, pa_cvolume *v) {
pa_sink_input_assert_ref(i);
pa_assert(v);
pa_assert(PA_SINK_INPUT_IS_LINKED(i->state));
*v = i->virtual_volume;
/* This always returns a relative volume, even in flat volume mode */
if (i->sink->flags & PA_SINK_FLAT_VOLUME) {
pa_cvolume sv;
sv = *pa_sink_get_volume(i->sink, FALSE);
pa_sw_cvolume_divide(v, v,
pa_cvolume_remap(&sv, &i->sink->channel_map, &i->channel_map));
}
return v;
}
/* Called from main context */
void pa_sink_input_set_mute(pa_sink_input *i, pa_bool_t mute, pa_bool_t save) {
pa_assert(i);

View file

@ -302,6 +302,7 @@ pa_usec_t pa_sink_input_get_latency(pa_sink_input *i, pa_usec_t *sink_latency);
void pa_sink_input_set_volume(pa_sink_input *i, const pa_cvolume *volume, pa_bool_t save);
const pa_cvolume *pa_sink_input_get_volume(pa_sink_input *i);
pa_cvolume *pa_sink_input_get_relative_volume(pa_sink_input *i, pa_cvolume *v);
void pa_sink_input_set_mute(pa_sink_input *i, pa_bool_t mute, pa_bool_t save);
pa_bool_t pa_sink_input_get_mute(pa_sink_input *i);
void pa_sink_input_update_proplist(pa_sink_input *i, pa_update_mode_t mode, pa_proplist *p);