Add parameter to change system volume
[platform/core/uifw/voice-control.git] / include / voice_control_common.h
1 /**
2  * Copyright (c) 2011-2016 Samsung Electronics Co., Ltd All Rights Reserved
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  */
16
17
18 #ifndef __VOICE_CONTROL_COMMON_H__
19 #define __VOICE_CONTROL_COMMON_H__
20
21 #include <voice_control_command.h>
22
23
24 /**
25  * @addtogroup CAPI_UIX_VOICE_CONTROL_MODULE
26  * @{
27  */
28
29
30 #ifdef __cplusplus
31 extern "C"
32 {
33 #endif
34
35
36 /**
37  * @brief Enumeration for error codes.
38  * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
39  */
40 typedef enum {
41         VC_ERROR_NONE = TIZEN_ERROR_NONE, /**< Successful */
42         VC_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, /**< Out of Memory */
43         VC_ERROR_IO_ERROR = TIZEN_ERROR_IO_ERROR, /**< I/O error */
44         VC_ERROR_INVALID_PARAMETER      = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid parameter */
45         VC_ERROR_TIMED_OUT = TIZEN_ERROR_TIMED_OUT, /**< No answer from service */
46         VC_ERROR_RECORDER_BUSY = TIZEN_ERROR_RESOURCE_BUSY, /**< Busy recorder */
47         VC_ERROR_PERMISSION_DENIED      = TIZEN_ERROR_PERMISSION_DENIED, /**< Permission denied */
48         VC_ERROR_NOT_SUPPORTED = TIZEN_ERROR_NOT_SUPPORTED, /**< VC NOT supported */
49         VC_ERROR_INVALID_STATE = TIZEN_ERROR_VOICE_CONTROL | 0x011, /**< Invalid state */
50         VC_ERROR_INVALID_LANGUAGE = TIZEN_ERROR_VOICE_CONTROL | 0x012, /**< Invalid language */
51         VC_ERROR_ENGINE_NOT_FOUND = TIZEN_ERROR_VOICE_CONTROL | 0x013, /**< No available engine */
52         VC_ERROR_OPERATION_FAILED = TIZEN_ERROR_VOICE_CONTROL | 0x014, /**< Operation failed */
53         VC_ERROR_OPERATION_REJECTED     = TIZEN_ERROR_VOICE_CONTROL | 0x015, /**< Operation rejected */
54         VC_ERROR_ITERATION_END = TIZEN_ERROR_VOICE_CONTROL | 0x016, /**< List reached end */
55         VC_ERROR_EMPTY = TIZEN_ERROR_VOICE_CONTROL | 0x017, /**< List empty */
56         VC_ERROR_SERVICE_RESET = TIZEN_ERROR_VOICE_CONTROL | 0x018, /**< Service daemon reset (Since 3.0) */
57         VC_ERROR_IN_PROGRESS_TO_READY = TIZEN_ERROR_VOICE_CONTROL | 0x019, /**< In progress to ready (Since 3.0) */
58         VC_ERROR_IN_PROGRESS_TO_RECORDING = TIZEN_ERROR_VOICE_CONTROL | 0x020, /**< In progress to recording (Since 3.0) */
59         VC_ERROR_IN_PROGRESS_TO_PROCESSING = TIZEN_ERROR_VOICE_CONTROL | 0x021, /**< In progress to processing (Since 3.0) */
60         VC_ERROR_NOT_SUPPORTED_FEATURE = TIZEN_ERROR_VOICE_CONTROL | 0x022 /**< Not supported feature of current engine (Since 4.0) */
61 } vc_error_e;
62
63
64 /**
65  * @brief Enumeration for result event.
66  * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
67  */
68 typedef enum {
69         VC_RESULT_EVENT_RESULT_SUCCESS  = 0, /**< Normal result */
70         VC_RESULT_EVENT_REJECTED = 1 /**< Rejected result */
71 } vc_result_event_e;
72
73
74 /**
75  * @brief Enumeration for service state.
76  * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
77  */
78 typedef enum {
79         VC_SERVICE_STATE_NONE = 0, /**< 'None' state */
80         VC_SERVICE_STATE_READY = 1, /**< 'Ready' state */
81         VC_SERVICE_STATE_RECORDING      = 2, /**< 'Recording' state */
82         VC_SERVICE_STATE_PROCESSING     = 3 /**< 'Processing' state */
83 } vc_service_state_e;
84
85
86 /**
87  * @brief Enumeration for client state.
88  * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
89  */
90 typedef enum {
91         VC_STATE_NONE = 0, /**< 'None' state */
92         VC_STATE_INITIALIZED = 1, /**< 'Initialized' state */
93         VC_STATE_READY = 2      /**< 'Ready' state */
94 } vc_state_e;
95
96 /**
97 * @brief Enumerations of audio types.
98 * @since_tizen 5.0
99 */
100 typedef enum {
101         VC_AUDIO_TYPE_PCM_S16_LE = 0,   /**< Signed 16bit audio type, Little endian */
102         VC_AUDIO_TYPE_PCM_U8                    /**< Unsigned 8bit audio type */
103 } vc_audio_type_e;
104
105 /**
106  * @brief Enumerations for audio channels
107  * @since_tizen 5.0
108  */
109 typedef enum {
110         VC_AUDIO_CHANNEL_MONO = 0,              /**< 1 channel, mono */
111         VC_AUDIO_CHANNEL_STEREO = 1             /**< 2 channels, stereo */
112 } vc_audio_channel_e;
113
114 /**
115  * @brief Enumeration for TTS feedback events
116  * @since_tizen 5.0
117  */
118 typedef enum {
119         VC_FEEDBACK_EVENT_FAIL = -1,    /**< Failed */
120         VC_FEEDBACK_EVENT_START = 1,    /**< Start event */
121         VC_FEEDBACK_EVENT_CONTINUE = 2, /**< Continue event */
122         VC_FEEDBACK_EVENT_FINISH = 3    /**< Finish event */
123 } vc_feedback_event_e;
124
125
126 /**
127  * @brief Called when client gets the recognition result.
128  * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
129  * @remarks If the duplicated commands are recognized, the event(e.g. #VC_RESULT_EVENT_REJECTED) of command may be rejected
130  *          for selecting command as priority. If you set similar or same commands or the recognized results are multi-results,
131  *          vc_cmd_list has the multi commands.
132  * @param[in] event The result event (e.g. #VC_RESULT_EVENT_RESULT_SUCCESS, #VC_RESULT_EVENT_REJECTED)
133  * @param[in] vc_cmd_list The recognized command list
134  * @param[in] result The spoken text
135  * @param[in] user_data The user data passed from the callback registration function
136  * @pre An application registers callback function.
137  * @see vc_set_result_cb()
138  */
139 typedef void (*vc_result_cb)(vc_result_event_e event, vc_cmd_list_h vc_cmd_list, const char* result, void *user_data);
140
141
142 /**
143  * @brief Called when default language is changed.
144  * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
145  * @param[in] previous Previous language
146  * @param[in] current Current language
147  * @param[in] user_data The user data passed from the callback registration function
148  * @pre An application registers this callback to detect changing mode.
149  * @see vc_set_current_language_changed_cb()
150  */
151 typedef void (*vc_current_language_changed_cb)(const char* previous, const char* current, void* user_data);
152
153
154 /**
155  * @brief Called to retrieve supported language.
156  * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
157  * @param[in] language A language is specified as an ISO 3166 alpha-2 two letter country-code
158  *                     followed by ISO 639-1 for the two-letter language code.
159  *                     For example, "ko_KR" for Korean, "en_US" for American English
160  * @param[in] user_data The user data passed from the foreach function
161  * @return @c true to continue with the next iteration of the loop, 
162  *         @c false to break out of the loop
163  * @pre The function will invoke this callback.
164  */
165 typedef bool (*vc_supported_language_cb)(const char* language, void* user_data);
166
167
168 /**
169  * @brief Called when the state of voice control client is changed.
170  * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
171  * @param[in] previous A previous state
172  * @param[in] current A current state
173  * @param[in] user_data The user data passed from the callback registration function
174  * @pre An application registers this callback to detect changing state.
175  * @see vc_set_state_changed_cb()
176  */
177 typedef void (*vc_state_changed_cb)(vc_state_e previous, vc_state_e current, void* user_data);
178
179
180 /**
181  * @brief Called when the state of voice control service is changed.
182  * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
183  * @param[in] previous A previous state
184  * @param[in] current A current state
185  * @param[in] user_data The user data passed from the callback registration function
186  * @pre An application registers this callback to detect changing service state.
187  * @see vc_set_service_state_changed_cb()
188  */
189 typedef void (*vc_service_state_changed_cb)(vc_service_state_e previous, vc_service_state_e current, void* user_data);
190
191
192 /**
193  * @brief Called when error occurred.
194  * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
195  * @param[in] reason The error type (e.g. #VC_ERROR_OUT_OF_MEMORY, #VC_ERROR_TIMED_OUT)
196  * @param[in] user_data The user data passed from the callback registration function
197  * @pre An application registers this callback to detect error.
198  * @see vc_set_error_cb()
199  */
200 typedef void (*vc_error_cb)(vc_error_e reason, void *user_data);
201
202
203 #ifdef __cplusplus
204 }
205 #endif
206
207
208 /**
209  * @}
210  */
211
212 #endif /* VOICE_CONTROL_COMMON */