From 61cecf725613ee5eeee6733d93c3c74446771a13 Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Tue, 29 Sep 2009 14:28:40 -0500 Subject: [PATCH] Fix: Don't try to set a value if already set --- src/call-volume.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/call-volume.c b/src/call-volume.c index 95ed5d65..8d99c479 100644 --- a/src/call-volume.c +++ b/src/call-volume.c @@ -244,6 +244,9 @@ static DBusMessage *cv_set_property(DBusConnection *conn, DBusMessage *msg, if (percent > 100) return __ofono_error_invalid_format(msg); + if (percent == cv->speaker_volume) + return dbus_message_new_method_return(msg); + cv->pending_volume = percent; cv->pending = dbus_message_ref(msg); cv->driver->speaker_volume(cv, percent, sv_set_callback, cv); @@ -263,6 +266,9 @@ static DBusMessage *cv_set_property(DBusConnection *conn, DBusMessage *msg, if (percent > 100) return __ofono_error_invalid_format(msg); + if (percent == cv->microphone_volume) + return dbus_message_new_method_return(msg); + cv->pending_volume = percent; cv->pending = dbus_message_ref(msg); cv->driver->speaker_volume(cv, percent, mv_set_callback, cv); @@ -279,6 +285,9 @@ static DBusMessage *cv_set_property(DBusConnection *conn, DBusMessage *msg, dbus_message_iter_get_basic(&var, &muted); + if (muted == cv->muted) + return dbus_message_new_method_return(msg); + cv->muted_pending = muted; cv->pending = dbus_message_ref(msg); cv->driver->mute(cv, muted, muted_set_callback, cv);