Tizen Native API
7.0
|
The Device API provides functions to query the information of sound devices.
Required Header
#include <sound_manager.h>
Overview
The Sound Manager Device API allows you to:
- query the basic information of connected sound devices.
- handle the sound device's connection state change notification.
The list of currently connected sound device can be obtained by calling sound_manager_get_device_list(). To get the handle of each sound device, call sound_manager_get_next_device() and sound_manager_get_prev_device().
Device information, such as "type", "IO direction", "ID", "name", can be obtained by calling corresponding APIs.
Functions | |
int | sound_manager_get_device_list (int device_mask, sound_device_list_h *device_list) |
Gets the list consisting of connected devices. | |
int | sound_manager_free_device_list (sound_device_list_h device_list) |
Frees device list and each item of list. | |
int | sound_manager_get_next_device (sound_device_list_h device_list, sound_device_h *device) |
Gets the next item of the device list. | |
int | sound_manager_get_prev_device (sound_device_list_h device_list, sound_device_h *device) |
Gets the previous item of the device list. | |
int | sound_manager_get_device_type (sound_device_h device, sound_device_type_e *type) |
Gets the type of the device. | |
int | sound_manager_get_device_io_direction (sound_device_h device, sound_device_io_direction_e *io_direction) |
Gets the io direction of the device. | |
int | sound_manager_get_device_id (sound_device_h device, int *id) |
Gets the id of the device. | |
int | sound_manager_get_device_name (sound_device_h device, char **name) |
Gets the name of the device. | |
int | sound_manager_is_device_running (sound_device_h device, bool *is_running) |
Checks if the device is running. | |
int | sound_manager_get_supported_sample_formats (sound_device_h device, sound_sample_format_e **formats, unsigned int *num_of_elems) |
Gets the device's supported sample formats. | |
int | sound_manager_set_sample_format (sound_device_h device, sound_sample_format_e format) |
Sets the device's sample format. | |
int | sound_manager_get_sample_format (sound_device_h device, sound_sample_format_e *format) |
Gets the device's sample format. | |
int | sound_manager_get_supported_sample_rates (sound_device_h device, sound_sample_rate_e **rates, unsigned int *num_of_elems) |
Gets the device's supported sample rates. | |
int | sound_manager_set_sample_rate (sound_device_h device, sound_sample_rate_e rate) |
Sets the device's sample rate. | |
int | sound_manager_get_sample_rate (sound_device_h device, sound_sample_rate_e *rate) |
Gets the device's sample rate. | |
int | sound_manager_set_avoid_resampling (sound_device_h device, bool enable) |
Sets the device's 'avoid resampling' property. | |
int | sound_manager_get_avoid_resampling (sound_device_h device, bool *enabled) |
Gets the device's 'avoid resampling' property. | |
int | sound_manager_set_media_stream_only (sound_device_h device, bool enable) |
Sets the restriction of stream type only for media. | |
int | sound_manager_get_media_stream_only (sound_device_h device, bool *enabled) |
Gets the restriction of stream type only for media. | |
int | sound_manager_add_device_connection_changed_cb (int device_mask, sound_device_connection_changed_cb callback, void *user_data, int *id) |
Adds a callback function to be invoked when the connection state of a sound device was changed. | |
int | sound_manager_remove_device_connection_changed_cb (int id) |
Removes a callback function invoked when the connection of a sound device was changed. | |
int | sound_manager_add_device_running_changed_cb (int device_mask, sound_device_running_changed_cb callback, void *user_data, int *id) |
Adds a callback function to be invoked when the state of a sound device was changed. | |
int | sound_manager_remove_device_running_changed_cb (int id) |
Removes a callback function invoked when the state of a sound device was changed. | |
Typedefs | |
typedef void * | sound_device_h |
Sound device handle. | |
typedef void * | sound_device_list_h |
Sound device list handle. | |
typedef void(* | sound_device_connection_changed_cb )(sound_device_h device, bool is_connected, void *user_data) |
Called when the connection state of a sound device was changed. | |
typedef void(* | sound_device_running_changed_cb )(sound_device_h device, bool is_running, void *user_data) |
Called when the state of a sound device was changed. |
Typedef Documentation
typedef void(* sound_device_connection_changed_cb)(sound_device_h device, bool is_connected, void *user_data) |
Called when the connection state of a sound device was changed.
- Since :
- 3.0
- Remarks:
- device is freed by the platform after this callback exits.
- Parameters:
-
[in] device The sound_device [in] is_connected The state of device connection: ( true
= connected,false
= disconnected)[in] user_data The user data passed from the callback registration function
- Precondition:
- You should add this callback using sound_manager_add_device_connection_changed_cb().
typedef void* sound_device_h |
Sound device handle.
- Since :
- 2.3
typedef void* sound_device_list_h |
Sound device list handle.
- Since :
- 2.3
typedef void(* sound_device_running_changed_cb)(sound_device_h device, bool is_running, void *user_data) |
Called when the state of a sound device was changed.
- Since :
- 5.0
- Remarks:
- device is freed by the platform after this callback exits.
- Parameters:
-
[in] device The sound_device [in] is_running The state of the device: ( true
= running,false
= not running)[in] user_data The user data passed from the callback registration function
- Precondition:
- You should add this callback using sound_manager_add_device_running_changed_cb().
Enumeration Type Documentation
enum sound_device_mask_e |
Enumeration for sound device mask.
- Since :
- 2.3
- Enumerator:
enum sound_device_type_e |
Enumeration for sound device type.
- Since :
- 2.3
- Enumerator:
enum sound_sample_rate_e |
Enumeration for sound sample rate.
- Since :
- 5.0
- Enumerator:
Function Documentation
int sound_manager_add_device_connection_changed_cb | ( | int | device_mask, |
sound_device_connection_changed_cb | callback, | ||
void * | user_data, | ||
int * | id | ||
) |
Adds a callback function to be invoked when the connection state of a sound device was changed.
- Since :
- 3.0
- Parameters:
-
[in] device_mask Devices for which changes should be tracked, values of sound_device_mask_e combined with bitwise 'or' [in] callback The device connection state changed callback function [in] user_data The user data to be passed to the callback function [out] id The callback id
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
SOUND_MANAGER_ERROR_NONE Success SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
- Postcondition:
- sound_device_connection_changed_cb() will be invoked.
int sound_manager_add_device_running_changed_cb | ( | int | device_mask, |
sound_device_running_changed_cb | callback, | ||
void * | user_data, | ||
int * | id | ||
) |
Adds a callback function to be invoked when the state of a sound device was changed.
- Since :
- 5.0
- Parameters:
-
[in] device_mask Devices for which changes should be tracked, values of sound_device_mask_e combined with bitwise 'or' [in] callback The device state changed callback function [in] user_data The user data to be passed to the callback function [out] id The callback id
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
SOUND_MANAGER_ERROR_NONE Success SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
- Postcondition:
- sound_device_running_changed_cb() will be invoked.
int sound_manager_free_device_list | ( | sound_device_list_h | device_list | ) |
Frees device list and each item of list.
- Since :
- 3.0
- Remarks:
- This function will deallocate not only device list itself but also each item.
- Parameters:
-
[in] device_list The device list got with sound_manager_get_device_list().
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
SOUND_MANAGER_ERROR_NONE Success SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
int sound_manager_get_avoid_resampling | ( | sound_device_h | device, |
bool * | enabled | ||
) |
Gets the device's 'avoid resampling' property.
- Since :
- 5.0
- Remarks:
- device should be SOUND_DEVICE_USB_AUDIO type and an output device,
otherwise SOUND_MANAGER_ERROR_INVALID_OPERATION will be returned.
Use sound_manager_get_device_io_direction() to check if it is an output device or not.
The default value of 'avoid resampling' is false.
- Parameters:
-
[in] device The device item [in] enabled The value of 'avoid resampling' property: ( true
= enabled,false
= disabled)
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
SOUND_MANAGER_ERROR_NONE Success SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter SOUND_MANAGER_ERROR_INVALID_OPERATION Invalid operation SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
- See also:
- sound_manager_set_avoid_resampling()
int sound_manager_get_device_id | ( | sound_device_h | device, |
int * | id | ||
) |
Gets the id of the device.
- Since :
- 2.3
- Parameters:
-
[in] device The device item [out] id The id of the device
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
SOUND_MANAGER_ERROR_NONE Success SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
int sound_manager_get_device_io_direction | ( | sound_device_h | device, |
sound_device_io_direction_e * | io_direction | ||
) |
Gets the io direction of the device.
- Since :
- 2.3
- Parameters:
-
[in] device The device item [out] io_direction The io direction of the device
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
SOUND_MANAGER_ERROR_NONE Success SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
int sound_manager_get_device_list | ( | int | device_mask, |
sound_device_list_h * | device_list | ||
) |
Gets the list consisting of connected devices.
- Since :
- 3.0
- Remarks:
- device_list should be freed using sound_manager_free_device_list().
Use sound_manager_get_next_device() to get the first node of the list.
- Parameters:
-
[in] device_mask The mask values of sound_device_mask_e combined with bitwise 'or' [out] device_list The list of connected devices
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
SOUND_MANAGER_ERROR_NONE Success SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter SOUND_MANAGER_ERROR_NO_DATA No data SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
int sound_manager_get_device_name | ( | sound_device_h | device, |
char ** | name | ||
) |
Gets the name of the device.
- Since :
- 2.3
- Parameters:
-
[in] device The device item [out] name The name of the device
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
SOUND_MANAGER_ERROR_NONE Success SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
int sound_manager_get_device_type | ( | sound_device_h | device, |
sound_device_type_e * | type | ||
) |
Gets the type of the device.
- Since :
- 2.3
- Parameters:
-
[in] device The device item [out] type The type of the device
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
SOUND_MANAGER_ERROR_NONE Success SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
int sound_manager_get_media_stream_only | ( | sound_device_h | device, |
bool * | enabled | ||
) |
Gets the restriction of stream type only for media.
- Since :
- 5.0
- Remarks:
- device should be SOUND_DEVICE_USB_AUDIO type and an output device,
otherwise SOUND_MANAGER_ERROR_INVALID_OPERATION will be returned.
Use sound_manager_get_device_io_direction() to check if it is an output device or not.
The property is not enabled as default.
- Parameters:
-
[in] device The device item [out] enabled The value of 'media stream only' property: ( true
= enabled,false
= disabled)
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
SOUND_MANAGER_ERROR_NONE Success SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter SOUND_MANAGER_ERROR_INVALID_OPERATION Invalid operation SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
int sound_manager_get_next_device | ( | sound_device_list_h | device_list, |
sound_device_h * | device | ||
) |
Gets the next item of the device list.
- Since :
- 2.3
- Parameters:
-
[in] device_list The list of connected devices [out] device The device item
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
SOUND_MANAGER_ERROR_NONE Success SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter SOUND_MANAGER_ERROR_NO_DATA No data
int sound_manager_get_prev_device | ( | sound_device_list_h | device_list, |
sound_device_h * | device | ||
) |
Gets the previous item of the device list.
- Since :
- 2.3
- Parameters:
-
[in] device_list The list of connected devices [out] device The device item
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
SOUND_MANAGER_ERROR_NONE Success SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter SOUND_MANAGER_ERROR_NO_DATA No data
int sound_manager_get_sample_format | ( | sound_device_h | device, |
sound_sample_format_e * | format | ||
) |
Gets the device's sample format.
- Since :
- 5.0
- Remarks:
- device should be SOUND_DEVICE_USB_AUDIO type and an output device,
otherwise SOUND_MANAGER_ERROR_INVALID_OPERATION will be returned.
Use sound_manager_get_device_io_direction() to check if it is an output device or not.
- Parameters:
-
[in] device The device item [out] format The sample format
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
SOUND_MANAGER_ERROR_NONE Success SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter SOUND_MANAGER_ERROR_INVALID_OPERATION Invalid operation SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
int sound_manager_get_sample_rate | ( | sound_device_h | device, |
sound_sample_rate_e * | rate | ||
) |
Gets the device's sample rate.
- Since :
- 5.0
- Remarks:
- device should be SOUND_DEVICE_USB_AUDIO type and an output device,
otherwise SOUND_MANAGER_ERROR_INVALID_OPERATION will be returned.
Use sound_manager_get_device_io_direction() to check if it is an output device or not.
- Parameters:
-
[in] device The device item [out] rate The sample rate
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
SOUND_MANAGER_ERROR_NONE Success SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter SOUND_MANAGER_ERROR_INVALID_OPERATION Invalid operation SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
int sound_manager_get_supported_sample_formats | ( | sound_device_h | device, |
sound_sample_format_e ** | formats, | ||
unsigned int * | num_of_elems | ||
) |
Gets the device's supported sample formats.
- Since :
- 5.0
- Remarks:
- device should be SOUND_DEVICE_USB_AUDIO type and an output device,
otherwise SOUND_MANAGER_ERROR_INVALID_OPERATION will be returned.
Use sound_manager_get_device_io_direction() to check if it is an output device or not.
The formats should be released using free().
- Parameters:
-
[in] device The device item [out] formats The supported sample format list [out] num_of_elems The number of elements in the sample format list
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
SOUND_MANAGER_ERROR_NONE Success SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter SOUND_MANAGER_ERROR_INVALID_OPERATION Invalid operation SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
int sound_manager_get_supported_sample_rates | ( | sound_device_h | device, |
sound_sample_rate_e ** | rates, | ||
unsigned int * | num_of_elems | ||
) |
Gets the device's supported sample rates.
- Since :
- 5.0
- Remarks:
- device should be SOUND_DEVICE_USB_AUDIO type and an output device,
otherwise SOUND_MANAGER_ERROR_INVALID_OPERATION will be returned.
Use sound_manager_get_device_io_direction() to check if it is an output device or not.
The rates should be released using free().
- Parameters:
-
[in] device The device item [out] rates The supported sample rate list [out] num_of_elems The number of elements in the sample rate list
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
SOUND_MANAGER_ERROR_NONE Success SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter SOUND_MANAGER_ERROR_INVALID_OPERATION Invalid operation SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
int sound_manager_is_device_running | ( | sound_device_h | device, |
bool * | is_running | ||
) |
Checks if the device is running.
- Since :
- 5.0
- Parameters:
-
[in] device The device item [out] is_running Whether the device is running or not: ( true
= running,false
= not running)
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
SOUND_MANAGER_ERROR_NONE Success SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
int sound_manager_remove_device_connection_changed_cb | ( | int | id | ) |
Removes a callback function invoked when the connection of a sound device was changed.
- Since :
- 3.0
- Parameters:
-
[in] id The id of the callback to remove
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
SOUND_MANAGER_ERROR_NONE Success SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
int sound_manager_remove_device_running_changed_cb | ( | int | id | ) |
Removes a callback function invoked when the state of a sound device was changed.
- Since :
- 5.0
- Parameters:
-
[in] id The id of the callback to remove
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
SOUND_MANAGER_ERROR_NONE Success SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
int sound_manager_set_avoid_resampling | ( | sound_device_h | device, |
bool | enable | ||
) |
Sets the device's 'avoid resampling' property.
- Since :
- 5.0
- Remarks:
- device should be SOUND_DEVICE_USB_AUDIO type and an output device,
otherwise SOUND_MANAGER_ERROR_INVALID_OPERATION will be returned.
Use sound_manager_get_device_io_direction() to check if it is an output device or not.
The 'avoid resampling' property is not enabled as default. With this enabled, device will
use the first stream's original sample format and rate without resampling if supported.
- Parameters:
-
[in] device The device item [in] enable The 'avoid resampling' property value to set: ( true
= enable,false
= disable)
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
SOUND_MANAGER_ERROR_NONE Success SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter SOUND_MANAGER_ERROR_INVALID_OPERATION Invalid operation SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
- See also:
- sound_manager_get_avoid_resampling()
int sound_manager_set_media_stream_only | ( | sound_device_h | device, |
bool | enable | ||
) |
Sets the restriction of stream type only for media.
- Since :
- 5.0
- Remarks:
- device should be SOUND_DEVICE_USB_AUDIO type and an output device,
otherwise SOUND_MANAGER_ERROR_INVALID_OPERATION will be returned.
Use sound_manager_get_device_io_direction() to check if it is an output device or not.
This property is not enabled as default. With this enabled, no other stream type
is allowed to device to play sound except for SOUND_STREAM_TYPE_MEDIA.
- Parameters:
-
[in] device The device item [in] enable The 'media stream only' property value to set: ( true
= enable,false
= disable)
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
SOUND_MANAGER_ERROR_NONE Success SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter SOUND_MANAGER_ERROR_INVALID_OPERATION Invalid operation SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
int sound_manager_set_sample_format | ( | sound_device_h | device, |
sound_sample_format_e | format | ||
) |
Sets the device's sample format.
- Since :
- 5.0
- Remarks:
- device should be SOUND_DEVICE_USB_AUDIO type and an output device.
format should be one of the values received from sound_manager_get_supported_sample_formats(),
otherwise SOUND_MANAGER_ERROR_INVALID_OPERATION will be returned.
Use sound_manager_get_device_io_direction() to check if it is an output device or not.
- Parameters:
-
[in] device The device item [in] format The sample format
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
SOUND_MANAGER_ERROR_NONE Success SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter SOUND_MANAGER_ERROR_INVALID_OPERATION Invalid operation SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system
int sound_manager_set_sample_rate | ( | sound_device_h | device, |
sound_sample_rate_e | rate | ||
) |
Sets the device's sample rate.
- Since :
- 5.0
- Remarks:
- device should be SOUND_DEVICE_USB_AUDIO type and an output device.
rate should be one of the values received from sound_manager_get_supported_sample_rates(),
otherwise SOUND_MANAGER_ERROR_INVALID_OPERATION will be returned.
Use sound_manager_get_device_io_direction() to check if it is an output device or not.
- Parameters:
-
[in] device The device item [in] rate The sample rate
- Returns:
0
on success, otherwise a negative error value
- Return values:
-
SOUND_MANAGER_ERROR_NONE Success SOUND_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter SOUND_MANAGER_ERROR_INVALID_OPERATION Invalid operation SOUND_MANAGER_ERROR_INTERNAL Internal error inside the sound system