/**
* @internal
- * @brief Starts AEC(Acoustic Echo Cancellation) and launch AEC service
- * @since_tizen 6.5
- * @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
- * @retval #SOUND_MANAGER_ERROR_INVALID_OPERATION Invalid operation
- * @see sound_manager_stop_aec()
- */
-int sound_manager_start_aec(void);
-
-/**
- * @internal
- * @brief Stops acoustic echo cancellation
- * @since_tizen 6.5
- * @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
- * @retval #SOUND_MANAGER_ERROR_INVALID_OPERATION Invalid operation
- * @pre You should start acoustic echo cancellation by sound_manager_start_aec().
- * @see sound_manager_start_aec()
- */
-int sound_manager_stop_aec(void);
-
-/**
- * @internal
* @brief Set force hdmi route
* @since_tizen 6.5
* @param[in] type The playback route type for rpi
int _set_remote_permission(int index, bool allowed);
-int _start_aec(void);
-
-int _stop_aec(void);
-
int _start_virtual_stream(virtual_sound_stream_info_s *virtual_stream);
int _stop_virtual_stream(virtual_sound_stream_info_s *virtual_stream);
Name: capi-media-sound-manager
Summary: Sound Manager library
-Version: 0.6.41
+Version: 0.6.42
Release: 0
Group: Multimedia/API
License: Apache-2.0
return _set_remote_permission(id, allowed);
}
-int sound_manager_start_aec(void)
-{
- return _start_aec();
-}
-
-int sound_manager_stop_aec(void)
-{
- return _stop_aec();
-}
-
int sound_manager_set_rpi_playback_route(sound_rpi_playback_route_type type)
{
return _set_rpi_playback_route(type);
int sound_manager_get_rpi_playback_route(sound_rpi_playback_route_type *type)
{
return _get_rpi_playback_route(type);
-}
\ No newline at end of file
+}
#define PA_DEVICE_MANAGER_METHOD_NAME_GET_SPECIFIED_STREAM "GetSpecifiedStream"
#define PA_DEVICE_MANAGER_METHOD_NAME_SET_ACM_MODE "SetAcmMode"
-#define AEC_BUS_NAME "org.tizen.AudioAec"
-#define AEC_OBJECT "/org/tizen/AudioAec"
-#define AEC_INTERFACE "org.tizen.AudioAec"
-#define AEC_METHOD_LAUNCH "Launch"
-#define AEC_METHOD_QUIT "Quit"
-
#define VCONF_PATH_PREFIX_VOLUME "file/private/sound/volume/"
#define VCONF_PATH_MAX 64
return ret;
}
-int _start_aec(void)
-{
- GDBusConnection *conn = NULL;
- GVariant *reply = NULL;
- GError *err = NULL;
- int ret;
-
- if ((ret = __get_dbus_connection(&conn)) != SOUND_MANAGER_ERROR_NONE)
- return SOUND_MANAGER_ERROR_INVALID_OPERATION;
-
- LOGI("start acoustic echo cancellation");
-
- reply = g_dbus_connection_call_sync(conn, AEC_BUS_NAME, AEC_OBJECT, AEC_INTERFACE,
- AEC_METHOD_LAUNCH, NULL, NULL, G_DBUS_CALL_FLAGS_NONE, -1, NULL, &err);
-
- g_object_unref(conn);
-
- if (!reply) {
- ret = _convert_dbus_error(err->message);
- LOGE("g_dbus_connection_call_sync() err-msg(%s)", err->message);
- g_error_free(err);
- return ret;
- }
-
- g_variant_unref(reply);
-
- return SOUND_MANAGER_ERROR_NONE;
-}
-
-int _stop_aec(void)
-{
-
- GDBusConnection *conn = NULL;
- GVariant *reply = NULL;
- GError *err = NULL;
- int ret;
-
- if ((ret = __get_dbus_connection(&conn)) != SOUND_MANAGER_ERROR_NONE)
- return SOUND_MANAGER_ERROR_INVALID_OPERATION;
-
- LOGI("stop acoustic echo cancellation");
-
- reply = g_dbus_connection_call_sync(conn, AEC_BUS_NAME, AEC_OBJECT, AEC_INTERFACE,
- AEC_METHOD_QUIT, NULL, NULL, G_DBUS_CALL_FLAGS_NONE, -1, NULL, &err);
-
- g_object_unref(conn);
-
- if (!reply) {
- ret = _convert_dbus_error(err->message);
- LOGE("g_dbus_connection_call_sync() err-msg(%s)", err->message);
- g_error_free(err);
- return ret;
- }
-
- g_variant_unref(reply);
-
- return SOUND_MANAGER_ERROR_NONE;
-}
-
int _set_rpi_playback_route(sound_rpi_playback_route_type type)
{
int ret;
CURRENT_STATUS_DISCOVER_REMOTE_DEVICE,
CURRENT_STATUS_PUBLISH_REMOTE_DEVICE,
CURRENT_STATUS_SET_REMOTE_PERMISSION,
- CURRENT_STATUS_LAUNCH_ECHO_CANCEL,
- CURRENT_STATUS_QUIT_ECHO_CANCEL,
CURRENT_STATUS_SET_RPI_PLAYBACK_ROUTE,
CURRENT_STATUS_GET_RPI_PLAYBACK_ROUTE,
};
g_menu_state = CURRENT_STATUS_PUBLISH_REMOTE_DEVICE;
else if (strncmp(cmd, "alw", MAX_CMD_LEN) == 0)
g_menu_state = CURRENT_STATUS_SET_REMOTE_PERMISSION;
- else if (strncmp(cmd, "lec", MAX_CMD_LEN) == 0)
- g_menu_state = CURRENT_STATUS_LAUNCH_ECHO_CANCEL;
- else if (strncmp(cmd, "qec", MAX_CMD_LEN) == 0)
- g_menu_state = CURRENT_STATUS_QUIT_ECHO_CANCEL;
else if (strncmp(cmd, "srpr", MAX_CMD_LEN) == 0)
g_menu_state = CURRENT_STATUS_SET_RPI_PLAYBACK_ROUTE;
else if (strncmp(cmd, "grpr", MAX_CMD_LEN) == 0)
g_print("dis. *Discover remote devices\n");
g_print("pub. *Publish remote devices\n");
g_print("alw. *Allow remote device\n");
- g_print("lec. *Launch EC\n");
- g_print("qec. *Quit EC\n");
g_print("srpr. *Set RPI playback route\t");
g_print("grpr. *Get RPI playback route\n");
g_print(" * is for internal usage.\n");
g_print("*** press enter 0:disable, 1:enable\n");
else if (g_menu_state == CURRENT_STATUS_SET_REMOTE_PERMISSION)
g_print("*** press enter number num, allow(0,1)\n");
- else if (g_menu_state == CURRENT_STATUS_LAUNCH_ECHO_CANCEL)
- g_print("*** press enter to launch acoustic echo cancellation service\n");
- else if (g_menu_state == CURRENT_STATUS_QUIT_ECHO_CANCEL)
- g_print("*** press enter to quit acoustic echo cancellation service\n");
else if (g_menu_state == CURRENT_STATUS_SET_RPI_PLAYBACK_ROUTE)
g_print("*** input rpi playback route to set (0:auto, 1:headphone, 2:HDMI1, 3:HDMI2(rpi4 only)\n");
else if (g_menu_state == CURRENT_STATUS_GET_RPI_PLAYBACK_ROUTE)
reset_menu_state();
break;
}
- case CURRENT_STATUS_LAUNCH_ECHO_CANCEL: {
- int ret;
-
- ret = sound_manager_start_aec();
- if (!ret)
- g_print("ec run\n");
- else
- g_print("ec fail ret(0x%x)\n", ret);
-
- reset_menu_state();
- break;
-
- }
- case CURRENT_STATUS_QUIT_ECHO_CANCEL: {
- int ret;
- ret = sound_manager_stop_aec();
- if (!ret)
- g_print("ec stop\n");
- else
- g_print("ec stop fail ret(0x%x)\n", ret);
-
- reset_menu_state();
- break;
- }
case CURRENT_STATUS_SET_RPI_PLAYBACK_ROUTE: {
int ret;
sound_rpi_playback_route_type type = atoi(cmd);