mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2026-03-21 05:33:54 -04:00
volume hooks
Signed-off-by: Lennart Poettering <lennart@poettering.net>
This commit is contained in:
parent
fa93cb71e8
commit
45412740b8
6 changed files with 52 additions and 9 deletions
|
|
@ -843,13 +843,21 @@ pa_usec_t pa_sink_get_latency(pa_sink *s) {
|
|||
/* Called from main thread */
|
||||
void pa_sink_set_volume(pa_sink *s, const pa_cvolume *volume) {
|
||||
pa_bool_t changed;
|
||||
pa_sink_set_volume_data data;
|
||||
|
||||
pa_sink_assert_ref(s);
|
||||
pa_assert(PA_SINK_IS_LINKED(s->state));
|
||||
pa_assert(volume);
|
||||
|
||||
changed = !pa_cvolume_equal(volume, &s->volume);
|
||||
s->volume = *volume;
|
||||
data.sink = s;
|
||||
data.volume = *volume;
|
||||
|
||||
changed = !pa_cvolume_equal(&data.volume, &s->volume);
|
||||
|
||||
if (changed && pa_hook_fire(&s->core->hooks[PA_CORE_HOOK_SINK_SET_VOLUME], &data) < 0)
|
||||
return;
|
||||
|
||||
s->volume = data.volume;
|
||||
|
||||
if (s->set_volume && s->set_volume(s) < 0)
|
||||
s->set_volume = NULL;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue