2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 #ifndef __TIZEN_MEDIA_SOUND_MANAGER_DOC_H__
19 #define __TIZEN_MEDIA_SOUND_MANAGER_DOC_H__
23 * @file sound_manager_doc.h
24 * @brief This file contains high level documentation of the Sound Manager API.
28 * @ingroup CAPI_MEDIA_FRAMEWORK
29 * @defgroup CAPI_MEDIA_SOUND_MANAGER_MODULE Sound Manager
30 * @brief The @ref CAPI_MEDIA_SOUND_MANAGER_MODULE API provides functions to get and set sound parameters like volume, stream policy, session policy and devices.
32 * @section CAPI_MEDIA_SOUND_MANAGER_MODULE_HEADER Required Header
33 * \#include <sound_manager.h>
35 * @section CAPI_MEDIA_SOUND_MANAGER_OVERVIEW Overview
36 * The Sound Manager service allows APIs to manage audio output.
38 * The Sound Manager API allows you to:
39 * - check/control output volumes
40 * - handle a volume changed notification
41 * - determine/control a sound stream policy
42 * - handle the notification of a sound focus status change
43 * - determine a sound session policy (Deprecated)
44 * - handle the notification of a sound session interruption (Deprecated)
45 * - query the basic information of connected sound devices
46 * - handle the notification for connection of a sound device, and for changed information of a sound device
48 * @subsection CAPI_MEDIA_SOUND_MANAGER_LIFE_CYCLE_ASYNCHRONOUS_OPERATIONS Asynchronous operations
49 * The Sound Manager API allows only asynchronous operations. \n
50 * Thus the result will be passed to the application via the callback mechanism.
51 * An appropriate callback can be called in response to changes initiated from outside the application. \n
52 * Possible callbacks are listed below:
55 * <li> sound_manager_volume_changed_cb() - invoked when volume level is changed.<p></li>
56 * <li> sound_stream_focus_state_changed_cb() - invoked when the state of focus that belongs to the stream_info is changed.<p></li>
57 * <li> sound_stream_focus_state_watch_cb() - invoked when the focus state for each sound stream type is changed.<p></li>
58 * <li> sound_session_interrupted_cb() - invoked when the session is interrupted. (Deprecated)<p></li>
59 * <li> sound_device_connected_cb() - invoked when the connection of a sound device is changed.<p></li>
60 * <li> sound_device_information_changed_cb() - invoked when the information of a sound device is changed.<p></li>
63 * @subsection CAPI_MEDIA_SOUND_MANAGER_MODULE_LIFE_CYCLE_CALLBACK_OPERATIONS Callback(Event) Operations
64 * The callback mechanism is used to notify the application about significant sound manager events.
65 * <div><table class="doxtable" >
67 * <th><b> REGISTER</b></th>
68 * <th><b> UNREGISTER</b></th>
69 * <th><b> CALLBACK</b></th>
70 * <th><b> DESCRIPTION</b></th>
73 * <td> sound_manager_set_volume_changed_cb()</td>
74 * <td> sound_manager_unset_volume_changed_cb()</td>
75 * <td> sound_manager_volume_changed_cb()</td>
76 * <td> This callback is called when volume value is changed.</td>
79 * <td> sound_manager_create_stream_information()</td>
80 * <td> sound_manager_destroy_stream_information()</td>
81 * <td> sound_stream_focus_state_changed_cb()</td>
82 * <td> This callback is called when the state of focus that belongs to the stream_info is changed.</td>
85 * <td> sound_manager_add_focus_state_watch_cb()</td>
86 * <td> sound_manager_remove_foucs_state_watch_cb()</td>
87 * <td> sound_stream_focus_state_watch_cb()</td>
88 * <td> This callback is called when the focus state for each sound stream type is changed regardless of the process.</td>
91 * <td> sound_manager_set_session_interrupted_cb()</td>
92 * <td> sound_manager_unset_session_interrupted_cb()</td>
93 * <td> sound_session_interrupted_cb()</td>
94 * <td> This callback is called when audio session is interrupted. (Deprecated)</td>
97 * <td> sound_manager_set_device_connected_cb()</td>
98 * <td> sound_manager_unset_device_connected_cb()</td>
99 * <td> sound_device_connected_cb()</td>
100 * <td> This callback is called when the connection of a sound device is changed.</td>
103 * <td> sound_manager_set_device_information_changed_cb()</td>
104 * <td> sound_manager_unset_device_information_changed_cb()</td>
105 * <td> sound_device_information_changed_cb()</td>
106 * <td> This callback is called when the information of a sound device is changed.</td>
113 * @ingroup CAPI_MEDIA_SOUND_MANAGER_MODULE
114 * @defgroup CAPI_MEDIA_SOUND_MANAGER_VOLUME_MODULE Volume
115 * @brief The @ref CAPI_MEDIA_SOUND_MANAGER_VOLUME_MODULE API provides functions to check and control volumes.
116 * @section CAPI_MEDIA_SOUND_MANAGER_VOLUME_MODULE_HEADER Required Header
117 * \#include <sound_manager.h>
119 * @section CAPI_MEDIA_SOUND_MANAGER_VOLUME_MODULE_OVERVIEW Overview
120 * The Sound Manager Volume API allows you to:
121 * - check/control output volumes
122 * - handle a volume changed notification
124 * The Sound Manager has predefined types of sounds.(system, notification, alarm, ringtone, media, call, voip, voice).
126 * Current volume level of each type can be checked with sound_manager_get_volume().
127 * To get the maximum supported volume level of each type, call sound_manager_get_max_volume().
128 * The volume level of each type can be adjusted with sound_manager_set_volume().
130 * The type of currently playing sound may be obtained by calling sound_manager_get_current_sound_type().
131 * To set the type of the currently playing sound forcibly, call sound_manager_set_current_sound_type().
137 * @ingroup CAPI_MEDIA_SOUND_MANAGER_MODULE
138 * @defgroup CAPI_MEDIA_SOUND_MANAGER_STREAM_POLICY_MODULE Stream Policy
139 * @brief The @ref CAPI_MEDIA_SOUND_MANAGER_STREAM_POLICY_MODULE API provides functions to control a sound stream.
140 * @section CAPI_MEDIA_SOUND_MANAGER_STREAM_POLICY_MODULE_HEADER Required Header
141 * \#include <sound_manager.h>
143 * @section CAPI_MEDIA_SOUND_MANAGER_STREAM_POLICY_MODULE_OVERVIEW Overview
144 * The Sound Manager Stream API allows you to:
145 * - determine/control a sound stream policy
146 * - handle the notification of a sound focus status change
148 * The Sound Manager has predefined sound stream types (media, system, alarm, notification, emergency, voip, etc)
153 * @ingroup CAPI_MEDIA_SOUND_MANAGER_MODULE
154 * @defgroup CAPI_MEDIA_SOUND_MANAGER_SESSION_MODULE Session
155 * @brief The @ref CAPI_MEDIA_SOUND_MANAGER_SESSION_MODULE API provides functions to control a session. (Deprecated)
156 * @section CAPI_MEDIA_SOUND_MANAGER_SESSION_MODULE_HEADER Required Header
157 * \#include <sound_manager.h>
159 * @section CAPI_MEDIA_SOUND_MANAGER_SESSION_MODULE_OVERVIEW Overview
160 * The Sound Manager Session API allows you to:
161 * - determine a sound session policy
162 * - handle the notification of a sound session interruption
164 * The Sound Manager has predefined sound sessions (media, alarm, notification, emergency, voip)
166 * @section CAPI_MEDIA_SOUND_MANAGER_MODULE_FEATURE Related Features
167 * APIs for voip sound session and voip stream type are related with the following features:\n
168 * - http://tizen.org/feature/microphone\n
170 * It is recommended to design feature related codes in your application for reliability.\n
172 * You can check if a device supports the related features for this API by using @ref CAPI_SYSTEM_SYSTEM_INFO_MODULE, thereby controlling the procedure of your application.\n
174 * To ensure your application is only running on the device with specific features, please define the features in your manifest file using the manifest editor in the SDK.\n
176 * More details on featuring your application can be found from <a href="../org.tizen.mobile.native.appprogramming/html/ide_sdk_tools/feature_element.htm"><b>Feature Element</b>.</a>
181 * @ingroup CAPI_MEDIA_SOUND_MANAGER_MODULE
182 * @defgroup CAPI_MEDIA_SOUND_MANAGER_DEVICE_MODULE Device
183 * @brief The @ref CAPI_MEDIA_SOUND_MANAGER_DEVICE_MODULE API provides functions to query the information of sound devices.
184 * @section CAPI_MEDIA_SOUND_MANAGER_DEIVCE_MODULE_HEADER Required Header
185 * \#include <sound_manager.h>
187 * @section CAPI_MEDIA_SOUND_MANAGER_DEVICE_MODULE_OVERVIEW Overview
188 * The Sound Manager Device API allows you to:
189 * - query the basic information of connected sound devices.
190 * - handle the sound device's connection and information change notification.
192 * The list of currently connected sound device can be obtained by calling sound_manager_get_current_device_list().
193 * To get the handle of each sound device, call sound_manager_get_next_device() and sound_manager_get_prev_device().
195 * Device information, such as "type", "IO direction", "state", "ID", "name", can be obtained by calling corresponding APIs.
200 #endif /* __TIZEN_MEDIA_SOUND_MANAGER_DOC_H__ */