From c4f895daf4bcfcda2ea892896f999911f37cec26 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 23 Oct 2009 10:32:25 +0200 Subject: mixer_plugin: get_volume() may return -1 if unavailable If the method get_volume() returns -1 and no error object is set, then the volume is currently unavailable, but the mixer should not be closed immediately. --- src/mixer_control.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/mixer_control.c') diff --git a/src/mixer_control.c b/src/mixer_control.c index 7def51cb..7a8ba48e 100644 --- a/src/mixer_control.c +++ b/src/mixer_control.c @@ -140,9 +140,13 @@ mixer_get_volume(struct mixer *mixer, GError **error_r) g_mutex_lock(mixer->mutex); if (mixer->open) { - volume = mixer->plugin->get_volume(mixer, error_r); - if (volume < 0) + GError *error = NULL; + + volume = mixer->plugin->get_volume(mixer, &error); + if (volume < 0 && error != NULL) { + g_propagate_error(error_r, error); mixer_failed(mixer); + } } else volume = -1; -- cgit v1.2.3