summaryrefslogtreecommitdiffstats
path: root/src/call-volume.c
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2009-09-29 14:28:40 -0500
committerDenis Kenzior <denkenz@gmail.com>2009-09-29 14:56:22 -0500
commit61cecf725613ee5eeee6733d93c3c74446771a13 (patch)
tree563723a76ab3c402b291376894b1740a8c976dd3 /src/call-volume.c
parentd0501c569458c64fdc76075eaa670e4789a333c7 (diff)
downloadofono-61cecf725613ee5eeee6733d93c3c74446771a13.tar.bz2
Fix: Don't try to set a value if already set
Diffstat (limited to 'src/call-volume.c')
-rw-r--r--src/call-volume.c9
1 files changed, 9 insertions, 0 deletions
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);