Add support for mute API set
[platform/core/multimedia/libmm-sound.git] / mm_sound_proxy.c
index 0351640..31cfafe 100644 (file)
@@ -711,6 +711,40 @@ int mm_sound_proxy_remove_volume_changed_callback(unsigned subs_id)
        return ret;
 }
 
+int mm_sound_proxy_set_mute_by_type(const char *volume_type, bool mute)
+{
+       int ret = MM_ERROR_NONE;
+       char *reply = NULL, *direction = "out";
+       GVariant *params = NULL, *result = NULL;
+
+       debug_fenter();
+
+       if ((params = g_variant_new("(ssu)", direction, volume_type, (unsigned int)mute)) == NULL) {
+               debug_error("Construct Param for method call failed");
+               return MM_ERROR_SOUND_INTERNAL;
+       }
+
+       if ((ret = mm_sound_dbus_method_call_to(AUDIO_PROVIDER_STREAM_MANAGER, AUDIO_METHOD_SET_MUTE, params, &result)) != MM_ERROR_NONE) {
+               debug_error("dbus set mute by type failed");
+               g_variant_unref(result);
+               return ret;
+       }
+
+       if (result) {
+               g_variant_get(result, "(&s)",  &reply);
+               debug_log("reply : %s", reply);
+               if (strcmp(reply, "STREAM_MANAGER_RETURN_OK"))
+                       ret = MM_ERROR_SOUND_INTERNAL;
+               g_variant_unref(result);
+       } else {
+               debug_error("reply null");
+               ret = MM_ERROR_SOUND_INTERNAL;
+       }
+
+       debug_fleave();
+       return ret;
+}
+
 int mm_sound_proxy_set_filter_by_type(const char *stream_type, const char *filter_name, const char *filter_parameters, const char *filter_group)
 {
        int ret = MM_ERROR_NONE;