int sound_manager_is_stream_on_device_by_id(sound_stream_info_h stream_info, int device_id, bool *is_on);
/**
+ * @internal
+ * @brief Sets ACM master mode.
+ * @since_tizen 5.5
+ *
+ * @remarks The master mode is not enabled as default.
+ *
+ * @param[in] enable The master mode to be set: (@c true = master, @c false = slave)
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #SOUND_MANAGER_ERROR_NONE Success
+ * @retval #SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
+ */
+int sound_manager_set_acm_master_mode(bool enable);
+
+/**
* @}
*/
int _set_virtual_stream_volume(virtual_sound_stream_info_s *virtual_stream, double ratio);
+int _set_acm_master_mode(bool on);
+
#ifdef __cplusplus
}
#endif
Name: capi-media-sound-manager
Summary: Sound Manager library
-Version: 0.5.25
+Version: 0.5.26
Release: 0
Group: Multimedia/API
License: Apache-2.0
ret = mm_sound_is_stream_on_device_by_id(stream_h->pa_index, device_id, is_on);
return _convert_sound_manager_error_code(__func__, ret);
-}
\ No newline at end of file
+}
+
+int sound_manager_set_acm_master_mode(bool enable)
+{
+ int ret = MM_ERROR_NONE;
+
+ ret = _set_acm_master_mode(enable);
+
+ return _convert_sound_manager_error_code(__func__, ret);
+}
#define PA_DEVICE_MANAGER_METHOD_NAME_GET_AVOID_RESAMPLING "GetAvoidResampling"
#define PA_DEVICE_MANAGER_METHOD_NAME_SET_SPECIFIC_STREAM "SetSpecificStreamOnly"
#define PA_DEVICE_MANAGER_METHOD_NAME_GET_SPECIFIED_STREAM "GetSpecifiedStream"
+#define PA_DEVICE_MANAGER_METHOD_NAME_SET_ACM_MODE "SetAcmMode"
#define VCONF_PATH_PREFIX_VOLUME "file/private/sound/volume/"
#define VCONF_PATH_MAX 64
return ret;
}
+
+int _set_acm_master_mode(bool on)
+{
+ int ret = MM_ERROR_NONE;
+ GVariant *result = NULL;
+ GDBusConnection *conn = NULL;
+ GError *err = NULL;
+
+ if ((ret = __get_dbus_connection(&conn)))
+ return ret;
+
+ result = g_dbus_connection_call_sync(conn,
+ PA_BUS_NAME,
+ PA_DEVICE_MANAGER_OBJECT_PATH,
+ PA_DEVICE_MANAGER_INTERFACE,
+ PA_DEVICE_MANAGER_METHOD_NAME_SET_ACM_MODE,
+ g_variant_new("(u)", (unsigned int)on),
+ NULL,
+ G_DBUS_CALL_FLAGS_NONE,
+ 2000,
+ NULL,
+ &err);
+ if (err) {
+ LOGE("g_dbus_connection_call_sync() for SET ACM MODE error (%s)", err->message);
+ ret = _convert_dbus_error(err->message);
+ g_error_free(err);
+ goto LEAVE;
+ } else {
+ LOGI("ACM master mode [%s]", on ? "ON" : "OFF");
+ }
+
+LEAVE:
+ g_variant_unref(result);
+ g_object_unref(conn);
+
+ return ret;
+}
CURRENT_STATUS_GET_MAX_MASTER_VOLUME,
CURRENT_STATUS_SET_MASTER_VOLUME,
CURRENT_STATUS_GET_MASTER_VOLUME,
+ CURRENT_STATUS_SET_ACM_MASTER_MODE,
#endif
};
g_menu_state = CURRENT_STATUS_SET_MASTER_VOLUME;
else if (strncmp(cmd, "mgv", MAX_CMD_LEN) == 0)
g_menu_state = CURRENT_STATUS_GET_MASTER_VOLUME;
+ else if (strncmp(cmd, "acm", MAX_CMD_LEN) == 0)
+ g_menu_state = CURRENT_STATUS_SET_ACM_MASTER_MODE;
#endif
else if (strncmp(cmd, "q", MAX_CMD_LEN) == 0) {
g_print("closing the test suite\n");
g_print("sfp. *Set Filter Preset\t");
g_print("uft. *Unset Filter\n");
g_print("isd. *Is Stream on Device by ID\n");
+#ifndef TIZEN_FEATURE_TV_PROD
+ g_print("acm. *Set ACM Master mode\n");
+#endif
g_print(" * is for internal usage.\n");
g_print("=========================================================================================\n");
}
g_print("*** input master volume level\n");
else if (g_menu_state == CURRENT_STATUS_GET_MASTER_VOLUME)
g_print("*** press enter to get master volume level\n");
+ else if (g_menu_state == CURRENT_STATUS_SET_ACM_MASTER_MODE)
+ g_print("*** input master mode enable or disable (0:disable 1:enable)\n");
#endif
else {
g_print("*** unknown status.\n");
reset_menu_state();
break;
}
+ case CURRENT_STATUS_SET_ACM_MASTER_MODE: {
+ int ret = SOUND_MANAGER_ERROR_NONE;
+ int selection = atoi(cmd);
+
+ if (selection < 0 || selection > 1) {
+ g_print("invalid selection(%d)\n", selection);
+ reset_menu_state();
+ break;
+ }
+
+ if ((ret = sound_manager_set_acm_master_mode((bool)selection)))
+ g_print("fail to sound_manager_set_acm_master_mode(), ret(0x%x)\n", ret);
+ else
+ g_print("success to sound_manager_set_acm_master_mode(), ret(0x%x)\n", ret);
+
+ reset_menu_state();
+ break;
+ }
#endif
}
g_timeout_add(100, timeout_menu_display, 0);