fixup! Fix improper function reference
[platform/core/api/sound-manager.git] / include / sound_manager_internal.h
index 884a901..e684544 100644 (file)
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+* Copyright (c) 2015 - 2018 Samsung Electronics Co., Ltd All Rights Reserved
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
@@ -61,18 +61,56 @@ typedef enum {
  * @since_tizen 3.0
  */
 typedef enum {
-       SOUND_STREAM_TYPE_RINGTONE_CALL = 100, /**< Sound stream type for ringtone for call */
-       SOUND_STREAM_TYPE_RINGBACKTONE_CALL,   /**< Sound stream type for ringback tone for call */
-       SOUND_STREAM_TYPE_VOICE_CALL,          /**< Sound stream type for voice-call */
-       SOUND_STREAM_TYPE_VIDEO_CALL,          /**< Sound stream type for video-call */
-       SOUND_STREAM_TYPE_RADIO,               /**< Sound stream type for radio */
-       SOUND_STREAM_TYPE_LOOPBACK,            /**< Sound stream type for loopback */
-       SOUND_STREAM_TYPE_LOOPBACK_MIRRORING,  /**< Sound stream type for loopback-mirroring */
-       SOUND_STREAM_TYPE_SOLO,                /**< Sound stream type for solo */
+       SOUND_STREAM_TYPE_RINGTONE_CALL = 100,        /**< Sound stream type for ringtone for call */
+       SOUND_STREAM_TYPE_RINGBACKTONE_CALL,          /**< Sound stream type for ringback tone for call */
+       SOUND_STREAM_TYPE_VOICE_CALL,                 /**< Sound stream type for voice-call */
+       SOUND_STREAM_TYPE_VIDEO_CALL,                 /**< Sound stream type for video-call */
+       SOUND_STREAM_TYPE_RADIO,                      /**< Sound stream type for radio */
+       SOUND_STREAM_TYPE_LOOPBACK,                   /**< Sound stream type for loopback */
+       SOUND_STREAM_TYPE_LOOPBACK_MIRRORING,         /**< Sound stream type for loopback-mirroring */
+       SOUND_STREAM_TYPE_SOLO,                       /**< Sound stream type for solo */
+       SOUND_STREAM_TYPE_VOICE_RECOGNITION_SERVICE,  /**< Sound stream type for voice recognition by service (Since 4.0) */
+       SOUND_STREAM_TYPE_MEDIA_COMPRESSED,           /**< Sound stream type for compressed media (Since 4.0) */
+       SOUND_STREAM_TYPE_MEDIA_NETWORK_SOURCE,       /**< Sound stream type for network source media (Since 5.5) */
 } sound_stream_type_internal_e;
 
 /**
  * @internal
+ * @brief Enumeration for sound filters.
+ * @since_tizen 4.0
+ */
+typedef enum {
+       SOUND_FILTER_LOW_PASS = 0,
+       SOUND_FILTER_HIGH_PASS,
+       SOUND_FILTER_DELAY,
+       SOUND_FILTER_SOUNDALIVE,
+} sound_filter_e;
+
+/**
+ * @internal
+ * @brief Enumeration for filter preset.
+ * @since_tizen 4.0
+ */
+typedef enum {
+       SOUND_FILTER_PRESET_LOW_PASS_NONE = 0,       /**< Filter preset for SOUND_FILTER_LOW_PASS none */
+       SOUND_FILTER_PRESET_LOW_PASS_UNDER_240HZ,    /**< Filter preset for SOUND_FILTER_LOW_PASS under 240hz */
+       SOUND_FILTER_PRESET_LOW_PASS_UNDER_480HZ,    /**< Filter preset for SOUND_FILTER_LOW_PASS under 480hz */
+       SOUND_FILTER_PRESET_HIGH_PASS_NONE,          /**< Filter preset for SOUND_FILTER_HIGH_PASS none */
+       SOUND_FILTER_PRESET_HIGH_PASS_OVER_240HZ,    /**< Filter preset for SOUND_FILTER_HIGH_PASS over 240hz */
+       SOUND_FILTER_PRESET_HIGH_PASS_OVER_480HZ,    /**< Filter preset for SOUND_FILTER_HIGH_PASS over 480hz */
+       SOUND_FILTER_PRESET_DELAY_NONE,              /**< Filter preset for SOUND_FILTER_DELAY none */
+       SOUND_FILTER_PRESET_DELAY_1SEC,              /**< Filter preset for SOUND_FILTER_DELAY 1 second */
+       SOUND_FILTER_PRESET_DELAY_2SEC,              /**< Filter preset for SOUND_FILTER_DELAY 2 seconds */
+       SOUND_FILTER_PRESET_SOUNDALIVE_NORMAL,       /**< Filter preset for SOUND_FILTER_SOUNDALIVE normal */
+       SOUND_FILTER_PRESET_SOUNDALIVE_TUBE,         /**< Filter preset for SOUND_FILTER_SOUNDALIVE tube */
+       SOUND_FILTER_PRESET_SOUNDALIVE_VIRT71,       /**< Filter preset for SOUND_FILTER_SOUNDALIVE virtual7.1 */
+       SOUND_FILTER_PRESET_SOUNDALIVE_STUDIO,       /**< Filter preset for SOUND_FILTER_SOUNDALIVE studio */
+       SOUND_FILTER_PRESET_SOUNDALIVE_CLUB,         /**< Filter preset for SOUND_FILTER_SOUNDALIVE club */
+       SOUND_FILTER_PRESET_SOUNDALIVE_CONCERT_HALL, /**< Filter preset for SOUND_FILTER_SOUNDALIVE concert hall */
+} sound_filter_preset_e;
+
+/**
+ * @internal
  * @brief Gets the maximum master volume level.
  * @since_tizen 3.0
  * @param[out] max_level       The maximum volume level
@@ -118,6 +156,39 @@ int sound_manager_get_master_volume(int *level);
 
 /**
  * @internal
+ * @brief Sets the mute specified for a particular sound type.
+ * @since_tizen 5.5
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/volume.set
+ * @param[in]          type The sound type
+ * @param[in]          mute    The mute state to be set: (@c true = mute, @c false = unmute)
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #SOUND_MANAGER_ERROR_NONE Success
+ * @retval #SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #SOUND_MANAGER_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
+ * @see sound_manager_get_mute()
+ */
+int sound_manager_set_mute(sound_type_e type, bool mute);
+
+/**
+ * @internal
+ * @brief Gets the mute specified for a particular sound type.
+ * @since_tizen 5.5
+ * @param[in]          type The sound type
+ * @param[out] muted   The current mute state: (@c true = muted, @c false = unmuted)
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #SOUND_MANAGER_ERROR_NONE Success
+ * @retval #SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
+ * @see sound_manager_set_mute()
+ */
+int sound_manager_get_mute(sound_type_e type, bool *muted);
+
+/**
+ * @internal
  * @brief Creates a handle for stream information.
  * @since_tizen 3.0
  *
@@ -139,9 +210,10 @@ int sound_manager_get_master_volume(int *level);
  * @see sound_manager_destroy_stream_information()
  * @see sound_manager_add_device_for_stream_routing()
  * @see sound_manager_remove_device_for_stream_routing()
+ * @see sound_manager_remove_all_devices_for_stream_routing()
  * @see sound_manager_apply_stream_routing()
  * @see sound_manager_acquire_focus()
- * @see sound_manager_destroy_focus()
+ * @see sound_manager_release_focus()
  * @see sound_manager_get_focus_state()
  */
 int sound_manager_create_stream_information_internal(sound_stream_type_internal_e stream_type, sound_stream_focus_state_changed_cb callback, void *user_data, sound_stream_info_h *stream_info);
@@ -218,6 +290,354 @@ int sound_manager_get_index_from_stream_information(sound_stream_info_h stream_i
 
 /**
  * @internal
+ * @brief Adds the device id to the stream information for the stream routing.
+ * @since_tizen 4.0
+ *
+ * @remarks    Use sound_manager_get_device_list(), sound_manager_get_next_device() and sound_manager_get_device_id()\n
+ *     to get the device id.\n
+ *     #SOUND_MANAGER_ERROR_POLICY could be returned according to the stream type of the @a stream_info.\n
+ *     The available types of the @a stream_info for this function are #SOUND_STREAM_TYPE_VOIP and #SOUND_STREAM_TYPE_MEDIA_EXTERNAL_ONLY.
+ *
+ * @param[in]  stream_info     The handle of stream information
+ * @param[in]  device_id       The device id
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #SOUND_MANAGER_ERROR_NONE Success
+ * @retval #SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #SOUND_MANAGER_ERROR_POLICY Noncompliance with the sound system policy
+ * @pre Call sound_manager_create_stream_information() before calling this function.
+ * @post You can apply this setting by calling sound_manager_apply_stream_routing().
+ * @see sound_manager_create_stream_information()
+ * @see sound_manager_destroy_stream_information()
+ * @see sound_manager_remove_device_id_for_stream_routing()
+ * @see sound_manager_remove_all_devices_for_stream_routing()
+ * @see sound_manager_apply_stream_routing()
+ */
+int sound_manager_add_device_id_for_stream_routing(sound_stream_info_h stream_info, int device_id);
+
+/**
+ * @internal
+ * @brief Removes the device id to the stream information for the stream routing.
+ * @since_tizen 4.0
+ *
+ * @remarks    Use sound_manager_get_device_list(), sound_manager_get_next_device() and sound_manager_get_device_id()\n
+ *     to get the device id.\n
+ *
+ * @param[in]  stream_info     The handle of stream information
+ * @param[in]  device          The device id
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #SOUND_MANAGER_ERROR_NONE Success
+ * @retval #SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @pre Call sound_manager_create_stream_information() and sound_manager_add_device_for_stream_routing() before calling this function.
+ * @post You can apply this setting by calling sound_manager_apply_stream_routing().
+ * @see sound_manager_create_stream_information()
+ * @see sound_manager_destroy_stream_information()
+ * @see sound_manager_add_device_id_for_stream_routing()
+ * @see sound_manager_remove_all_devices_for_stream_routing()
+ * @see sound_manager_apply_stream_routing()
+ */
+int sound_manager_remove_device_id_for_stream_routing(sound_stream_info_h stream_info, int device_id);
+
+/**
+ * @internal
+ * @brief Sets the preferred built-in device id for the stream routing.
+ * @since_tizen 5.5
+ *
+ * @remarks    This function is to set a specific built-in device id when the system has multiple devices of the same built-in device type.
+ *     When there's only one device for a built-in device type in the system, nothing will happen even if this function succeeds in operation.
+ *     If the device type of @a device_id is not supported by @a stream_info, #SOUND_MANAGER_ERROR_POLICY will be returned.
+ *
+ * @param[in]  stream_info     The handle of stream information
+ * @param[in]  io_direction    The IO direction of the device
+ * @param[in]  device_id       The preferred device id (this can be #SOUND_MANAGER_STREAM_NO_PREFERRED_DEVICE to unset)
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #SOUND_MANAGER_ERROR_NONE Success
+ * @retval #SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #SOUND_MANAGER_ERROR_POLICY Noncompliance with the sound system policy
+ * @retval #SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
+ * @pre Call sound_manager_create_stream_information() before calling this function.
+ * @pre Get a device by calling sound_manager_get_device_list() and sound_manager_get_next_device().
+ * @pre Get a device id by calling sound_manager_get_device_id().
+ * @post You can get preferred devices by calling sound_manager_get_stream_preferred_device().
+ * @post Call sound_manager_free_device_list() to free the devices.
+ * @see sound_manager_get_stream_preferred_device()
+ * @see sound_manager_create_stream_information()
+ * @see sound_manager_destroy_stream_information()
+ * @see sound_manager_get_device_list()
+ * @see sound_manager_get_next_device()
+ * @see sound_manager_get_device_id()
+ * @see sound_manager_free_device_list()
+ */
+int sound_manager_set_stream_preferred_device_id(sound_stream_info_h stream_info, sound_device_io_direction_e io_direction, int device_id);
+
+/**
+ * @internal
+ * @brief Gets the state of the device by id.
+ * @since_tizen 4.0
+ * @param[in]  device_id       The device id
+ * @param[out] state   The state of the device
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #SOUND_MANAGER_ERROR_NONE Success
+ * @retval #SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @see sound_manager_get_device_list()
+ * @see sound_manager_get_next_device()
+ * @see sound_manager_get_prev_device()
+ * @see sound_manager_get_device_id()
+ * @see sound_manager_free_device_list()
+ */
+int sound_manager_get_device_state_by_id(int device_id, sound_device_state_e *state);
+
+/**
+ * @internal
+ * @brief Checks if the device is running.
+ * @since_tizen 5.0
+ * @param[in]  device_id       The device id
+ * @param[out] is_running      Whether the device is running or not: (@c true = running, @c false = not running)
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #SOUND_MANAGER_ERROR_NONE Success
+ * @retval #SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @see sound_manager_get_device_list()
+ * @see sound_manager_get_next_device()
+ * @see sound_manager_get_prev_device()
+ * @see sound_manager_get_device_id()
+ * @see sound_manager_free_device_list()
+ */
+int sound_manager_is_device_running_by_id(int device_id, bool *is_running);
+
+/**
+ * @internal
+ * @brief Gets the device's supported sample formats.
+ * @since_tizen 5.0
+ *
+ * @remarks    @a device_id should be #SOUND_DEVICE_USB_AUDIO type and an output device,\n
+ *     otherwise #SOUND_MANAGER_ERROR_INVALID_OPERATION will be returned.\n
+ *     Use sound_manager_get_device_io_direction() to check if it is an output device or not.\n
+ *     The @a formats should be released using free().
+ *
+ * @param[in]  device_id       The device id
+ * @param[out] formats The supported sample format list
+ * @param[out] num_of_elems    The number of elements in the sample format list
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #SOUND_MANAGER_ERROR_NONE Success
+ * @retval #SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #SOUND_MANAGER_ERROR_INVALID_OPERATION Invalid operation
+ * @retval #SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
+ * @see sound_manager_set_sample_format_by_id()
+ * @see sound_manager_get_sample_format_by_id()
+ */
+int sound_manager_get_supported_sample_formats_by_id(int device_id, sound_sample_format_e **formats, unsigned int *num_of_elems);
+
+/**
+ * @internal
+ * @brief Sets the device's sample format.
+ * @since_tizen 5.0
+ *
+ * @remarks    @a device_id should be #SOUND_DEVICE_USB_AUDIO type and an output device.\n
+ *     @a format should be one of the values received from sound_manager_get_supported_sample_formats_by_id(),\n
+ *     otherwise #SOUND_MANAGER_ERROR_INVALID_OPERATION will be returned.\n
+ *     Use sound_manager_get_device_io_direction() to check if it is an output device or not.
+ *
+ * @param[in]  device_id       The device id
+ * @param[in]  format  The sample format
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #SOUND_MANAGER_ERROR_NONE Success
+ * @retval #SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #SOUND_MANAGER_ERROR_INVALID_OPERATION Invalid operation
+ * @retval #SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
+ * @see sound_manager_get_supported_sample_formats_by_id()
+ * @see sound_manager_get_sample_format_by_id()
+ */
+int sound_manager_set_sample_format_by_id(int device_id, sound_sample_format_e format);
+
+/**
+ * @internal
+ * @brief Gets the device's sample format.
+ * @since_tizen 5.0
+ *
+ * @remarks    @a device_id should be #SOUND_DEVICE_USB_AUDIO type and an output device,\n
+ *     otherwise #SOUND_MANAGER_ERROR_INVALID_OPERATION will be returned.\n
+ *     Use sound_manager_get_device_io_direction() to check if it is an output device or not.
+ *
+ * @param[in]  device_id       The device id
+ * @param[out] format  The sample format
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #SOUND_MANAGER_ERROR_NONE Success
+ * @retval #SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #SOUND_MANAGER_ERROR_INVALID_OPERATION Invalid operation
+ * @retval #SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
+ * @see sound_manager_get_supported_sample_formats_by_id()
+ * @see sound_manager_set_sample_format_by_id()
+ */
+int sound_manager_get_sample_format_by_id(int device_id, sound_sample_format_e *format);
+
+/**
+ * @internal
+ * @brief Gets the device's supported sample rates.
+ * @since_tizen 5.0
+ *
+ * @remarks    @a device_id should be #SOUND_DEVICE_USB_AUDIO type and an output device,\n
+ *     otherwise #SOUND_MANAGER_ERROR_INVALID_OPERATION will be returned.\n
+ *     Use sound_manager_get_device_io_direction() to check if it is an output device or not.\n
+ *     The @a rates should be released using free().
+ *
+ * @param[in]  device_id       The device id
+ * @param[out] rates   The supported sample rate list
+ * @param[out] num_of_elems    The number of elements in the sample rate list
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #SOUND_MANAGER_ERROR_NONE Success
+ * @retval #SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #SOUND_MANAGER_ERROR_INVALID_OPERATION Invalid operation
+ * @retval #SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
+ * @see sound_manager_set_sample_rate_by_id()
+ * @see sound_manager_get_sample_rate_by_id()
+ */
+int sound_manager_get_supported_sample_rates_by_id(int device_id, sound_sample_rate_e **rates, unsigned int *num_of_elems);
+
+/**
+ * @internal
+ * @brief Sets the device's sample rate.
+ * @since_tizen 5.0
+ *
+ * @remarks    @a device_id should be #SOUND_DEVICE_USB_AUDIO type and an output device.\n
+ *     @a rate should be one of the values received from sound_manager_get_supported_sample_rates(),\n
+ *     otherwise #SOUND_MANAGER_ERROR_INVALID_OPERATION will be returned.\n
+ *     Use sound_manager_get_device_io_direction() to check if it is an output device or not.
+ *
+ * @param[in]  device_id       The device id
+ * @param[in]  rate    The sample rate
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #SOUND_MANAGER_ERROR_NONE Success
+ * @retval #SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #SOUND_MANAGER_ERROR_INVALID_OPERATION Invalid operation
+ * @retval #SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
+ * @see sound_manager_get_supported_sample_rates_by_id()
+ * @see sound_manager_get_sample_rate_by_id()
+ */
+int sound_manager_set_sample_rate_by_id(int device_id, sound_sample_rate_e rate);
+
+/**
+ * @internal
+ * @brief Gets the device's sample rate.
+ * @since_tizen 5.0
+ *
+ * @remarks    @a device_id should be #SOUND_DEVICE_USB_AUDIO type and an output device,\n
+ *     otherwise #SOUND_MANAGER_ERROR_INVALID_OPERATION will be returned.\n
+ *     Use sound_manager_get_device_io_direction() to check if it is an output device or not.
+ *
+ * @param[in]  device_id       The device id
+ * @param[out] rate    The sample rate
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #SOUND_MANAGER_ERROR_NONE Success
+ * @retval #SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #SOUND_MANAGER_ERROR_INVALID_OPERATION Invalid operation
+ * @retval #SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
+ * @see sound_manager_get_supported_sample_rates_by_id()
+ * @see sound_manager_set_sample_rate_by_id()
+ */
+int sound_manager_get_sample_rate_by_id(int device_id, sound_sample_rate_e *rate);
+
+/**
+ * @internal
+ * @brief Sets the device's 'avoid resampling' property.
+ * @since_tizen 5.0
+ *
+ * @remarks    @a device_id should be #SOUND_DEVICE_USB_AUDIO type and an output device,\n
+ *     otherwise #SOUND_MANAGER_ERROR_INVALID_OPERATION will be returned.\n
+ *     Use sound_manager_get_device_io_direction() to check if it is an output device or not.\n
+ *     The 'avoid resampling' property is not enabled as default. With this enabled, the device will\n
+ *     use the first stream's original sample format and rate without resampling if supported.
+ *
+ * @param[in]  device_id       The device id
+ * @param[in]  enable  The 'avoid resampling' property value to set: (@c true = enable, @c false = disable)
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #SOUND_MANAGER_ERROR_NONE Success
+ * @retval #SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #SOUND_MANAGER_ERROR_INVALID_OPERATION Invalid operation
+ * @retval #SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
+ * @see sound_manager_get_avoid_resampling_by_id()
+ */
+int sound_manager_set_avoid_resampling_by_id(int device_id, bool enable);
+
+/**
+ * @internal
+ * @brief Gets the device's 'avoid resampling' property.
+ * @since_tizen 5.0
+ *
+ * @remarks    @a device_id should be #SOUND_DEVICE_USB_AUDIO type and an output device,\n
+ *     otherwise #SOUND_MANAGER_ERROR_INVALID_OPERATION will be returned.\n
+ *     Use sound_manager_get_device_io_direction() to check if it is an output device or not.\n
+ *     The default value of 'avoid resampling' is false.
+ *
+ * @param[in]  device_id       The device id
+ * @param[in]  enabled The value of 'avoid resampling' property: (@c true = enabled, @c false = disabled)
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #SOUND_MANAGER_ERROR_NONE Success
+ * @retval #SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #SOUND_MANAGER_ERROR_INVALID_OPERATION Invalid operation
+ * @retval #SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
+ * @see sound_manager_set_avoid_resampling_by_id()
+ */
+int sound_manager_get_avoid_resampling_by_id(int device_id, bool *enabled);
+
+/**
+ * @internal
+ * @brief Sets the restriction of stream type only for media.
+ * @since_tizen 5.0
+ *
+ * @remarks    @a device_id should be #SOUND_DEVICE_USB_AUDIO type and an output device,\n
+ *     otherwise #SOUND_MANAGER_ERROR_INVALID_OPERATION will be returned.\n
+ *     Use sound_manager_get_device_io_direction() to check if it is an output device or not.\n
+ *     This property is not enabled as default. With this enabled, no other stream types\n
+ *     except #SOUND_STREAM_TYPE_MEDIA is not allowed to @a device.
+ *
+ * @param[in]  device_id       The device id
+ * @param[in]  enable  The 'media stream only' property value to set: (@c true = enable, @c false = disable)
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #SOUND_MANAGER_ERROR_NONE Success
+ * @retval #SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #SOUND_MANAGER_ERROR_INVALID_OPERATION Invalid operation
+ * @retval #SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
+ * @see sound_manager_get_media_stream_only_by_id()
+ */
+int sound_manager_set_media_stream_only_by_id(int device_id, bool enable);
+
+/**
+ * @internal
+ * @brief Gets the restriction of stream type only for media.
+ * @since_tizen 5.0
+ *
+ * @remarks    @a device_id should be #SOUND_DEVICE_USB_AUDIO type and an output device,\n
+ *     otherwise #SOUND_MANAGER_ERROR_INVALID_OPERATION will be returned.\n
+ *     Use sound_manager_get_device_io_direction() to check if it is an output device or not.\n
+ *     The property is not enabled as default.
+ *
+ * @param[in]  device_id       The device id
+ * @param[out] enabled The value of 'media stream only' property: (@c true = enabled, @c false = disabled)
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #SOUND_MANAGER_ERROR_NONE Success
+ * @retval #SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #SOUND_MANAGER_ERROR_INVALID_OPERATION Invalid operation
+ * @retval #SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
+ * @see sound_manager_set_media_stream_only_by_id()
+ */
+int sound_manager_get_media_stream_only_by_id(int device_id, bool *enabled);
+
+/**
+ * @internal
  * @brief Creates a virtual stream handle.
  * @since_tizen 3.0
  * @param[in]  stream_info     The handle of stream information
@@ -286,6 +706,164 @@ int sound_manager_start_virtual_stream(virtual_sound_stream_h virtual_stream);
 int sound_manager_stop_virtual_stream(virtual_sound_stream_h virtual_stream);
 
 /**
+ * @internal
+ * @brief Sets the virtual stream volume.
+ * @since_tizen 5.5
+ * @param[in]  virtual_stream  The handle of virtual stream
+ * @param[in]  ratio The volume ratio to be set (Min.:0.0 ~ Max.:1.0, default:1.0)
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #SOUND_MANAGER_ERROR_NONE Success
+ * @retval #SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #SOUND_MANAGER_ERROR_INVALID_STATE Invalid state
+ * @retval #SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
+ * @see sound_manager_create_virtual_stream()
+ * @see sound_manager_destroy_virtual_stream()
+ * @see sound_manager_start_virtual_stream()
+ */
+int sound_manager_set_virtual_stream_volume(virtual_sound_stream_h virtual_stream, double ratio);
+
+/**
+ * @internal
+ * @brief Set sound filter and apply to audio streams given selected stream type.
+ * @since_tizen 4.0
+ * @param[in]  stream_type             stream type to apply
+ * @param[in]  filter                  sound filter to apply
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #SOUND_MANAGER_ERROR_NONE Success
+ * @retval #SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
+ * @retval #SOUND_MANAGER_ERROR_NOT_SUPPORTED Not supported
+ * @see sound_manager_unset_filter()
+ */
+int sound_manager_set_filter(sound_stream_type_e stream_type, sound_filter_e filter);
+
+/**
+ * @internal
+ * @brief Unset sound filter and remove from audio streams given selected stream type.
+ * @since_tizen 4.0
+ * @param[in]  stream_type             stream type to remove
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #SOUND_MANAGER_ERROR_NONE Success
+ * @retval #SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
+ * @retval #SOUND_MANAGER_ERROR_NOT_SUPPORTED Not supported
+ * @see sound_manager_set_filter()
+ */
+int sound_manager_unset_filter(sound_stream_type_e stream_type);
+
+/**
+ * @internal
+ * @brief Apply preset configuration to the filter according to selected stream type.
+ * @since_tizen 4.0
+ * @param[in]  stream_type             given stream type
+ * @param[in]  filter                  given sound filter
+ * @param[in]  preset                  filter preset to apply
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #SOUND_MANAGER_ERROR_NONE Success
+ * @retval #SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
+ * @retval #SOUND_MANAGER_ERROR_NOT_SUPPORTED Not supported
+ * @see sound_manager_set_filter()
+ */
+int sound_manager_set_filter_preset(sound_stream_type_e stream_type, sound_filter_e filter, sound_filter_preset_e preset);
+
+/**
+ * @internal
+ * @brief Gets the vendor id of the device.
+ * @since_tizen 4.0
+ *
+ * @remarks    It works only with USB audio device. Otherwise, #SOUND_MANAGER_ERROR_NOT_SUPPORTED will be returned.\n
+ *
+ * @param[in]  device  The device item
+ * @param[out] vendor_id       The vendor id of the device
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #SOUND_MANAGER_ERROR_NONE Success
+ * @retval #SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #SOUND_MANAGER_ERROR_NOT_SUPPORTED Not supported
+ * @see sound_manager_get_device_list()
+ * @see sound_manager_get_next_device()
+ * @see sound_manager_get_prev_device()
+ * @see sound_manager_get_device_type()
+ * @see sound_manager_get_device_io_direction()
+ * @see sound_manager_get_device_name()
+ * @see sound_manager_get_device_state()
+ * @see sound_manager_get_device_id()
+ * @see sound_manager_get_device_product_id()
+ * @see sound_manager_free_device_list()
+ */
+int sound_manager_get_device_vendor_id(sound_device_h device, int *vendor_id);
+
+/**
+ * @internal
+ * @brief Gets the product id of the device.
+ * @since_tizen 4.0
+ *
+ * @remarks    It works only with USB audio device. Otherwise, #SOUND_MANAGER_ERROR_NOT_SUPPORTED will be returned.\n
+ *
+ * @param[in]  device  The device item
+ * @param[out] product_id      The product id of the device
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #SOUND_MANAGER_ERROR_NONE Success
+ * @retval #SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #SOUND_MANAGER_ERROR_NOT_SUPPORTED Not supported
+ * @see sound_manager_get_device_list()
+ * @see sound_manager_get_next_device()
+ * @see sound_manager_get_prev_device()
+ * @see sound_manager_get_device_type()
+ * @see sound_manager_get_device_io_direction()
+ * @see sound_manager_get_device_name()
+ * @see sound_manager_get_device_state()
+ * @see sound_manager_get_device_id()
+ * @see sound_manager_get_device_vendor_id()
+ * @see sound_manager_free_device_list()
+ */
+int sound_manager_get_device_product_id(sound_device_h device, int *product_id);
+
+/**
+ * @brief Checks if the stream information is using the device.
+ * @since_tizen 5.5
+ *
+ * @param[in]  stream_info     The handle of stream information
+ * @param[in]  device_id       The device id
+ * @param[out] is_on   Whether the stream info is using the device or not: (@c true = use, @c false = not use)
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ * @retval #SOUND_MANAGER_ERROR_NONE Success
+ * @retval #SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
+ * @see sound_manager_create_stream_information()
+ * @see sound_manager_destroy_stream_information()
+ * @see sound_manager_get_device_list()
+ * @see sound_manager_get_next_device()
+ * @see sound_manager_get_prev_device()
+ * @see sound_manager_get_device_id()
+ * @see sound_manager_get_device_name()
+ * @see sound_manager_free_device_list()
+ */
+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);
+
+/**
  * @}
  */