summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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);