Merge "Support Multi-Assistant" into tizen
[platform/core/uifw/voice-control.git] / include / voice_control_manager_internal.h
1 /*
2  * Copyright (c) 2011-2018 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_MANAGER_INTERNAL_H__
19 #define __VOICE_CONTROL_MANAGER_INTERNAL_H__
20
21 #include <voice_control_command.h>
22 #include <voice_control_command_expand.h>
23 #include <voice_control_common.h>
24
25 #ifdef __cplusplus
26 extern "C"
27 {
28 #endif
29
30 typedef enum {
31         VC_AUDIO_STREAMING_EVENT_FAIL = -1,             /**< Failed */
32         VC_AUDIO_STREAMING_EVENT_START = 1,             /**< Start event */
33         VC_AUDIO_STREAMING_EVENT_CONTINUE = 2,  /**< Continue event */
34         VC_AUDIO_STREAMING_EVENT_FINISH = 3             /**< Finish event */
35 } vc_audio_streaming_event_e;
36
37 typedef enum {
38         VC_AUDIO_STREAMING_MODE_VC_SERVICE = 0,                 /**< Use audio recording from vc service */
39         VC_AUDIO_STREAMING_MODE_MULTI_ASSISTANT = 1,    /**< Use audio streaming from multi-assistant */
40         VC_AUDIO_STREAMING_MODE_OUTSIDE = 2,                    /**< Use audio streaming from outside */
41 } vc_audio_streaming_mode_e;
42
43 /**
44  * @brief Sets demandable client list.
45  *
46  * @param[in] rule demandable client list rule path
47  *
48  * @return 0 on success, otherwise a negative error value
49  * @retval #VC_ERROR_NONE                Successful
50  * @retval #VC_ERROR_INVALID_PARAMETER   Invalid parameter
51  * @retval #VC_ERROR_INVALID_STATE       Invalid state
52  * @retval #VC_ERROR_OPERATION_FAILED    Operation failure
53  * @retval #VC_ERROR_PERMISSION_DENIED   Permission denied
54  * @retval #VC_ERROR_NOT_SUPPORTED       VC not supported
55  *
56  * @pre The state should be #VC_STATE_READY.
57  *
58  * @see vc_mgr_get_demandable_client_rule()
59  */
60 int vc_mgr_set_demandable_client_rule(const char* rule);
61
62 /**
63  * @brief Gets demandable client list.
64  *
65  * @return 0 on success, otherwise a negative error value
66  * @retval #VC_ERROR_NONE                Successful
67  * @retval #VC_ERROR_INVALID_STATE       Invalid state
68  * @retval #VC_ERROR_PERMISSION_DENIED   Permission denied
69  * @retval #VC_ERROR_NOT_SUPPORTED       VC not supported
70  *
71  * @pre The state should be #VC_STATE_READY.
72  *
73  * @see vc_mgr_set_demandable_client_rule()
74  */
75 int vc_mgr_unset_demandable_client_rule(void);
76
77 /**
78  * @brief Sets domain such as agent or device type.
79  * @since_tizen 5.0
80  *
81  * @param[in] domain Available agent or device type
82  *
83  * @return 0 on success, otherwise a negative error value
84  * @retval #VC_ERROR_NONE                Successful
85  * @retval #VC_ERROR_INVALID_PARAMETER   Invalid parameter
86  * @retval #VC_ERROR_INVALID_STATE       Invalid state
87  * @retval #VC_ERROR_PERMISSION_DENIED   Permission denied
88  * @retval #VC_ERROR_NOT_SUPPORTED       VC not supported
89  *
90  * @pre The service state should be #VC_SERVICE_STATE_READY.
91  */
92 int vc_mgr_set_domain(const char* domain);
93
94 /**
95  * @brief Sends audio streaming to the engine service.
96  * @since_tizen 5.0
97  *
98  */
99 int vc_mgr_send_audio_streaming(vc_audio_streaming_event_e event, unsigned char* buffer, unsigned int len);
100
101 int vc_mgr_set_audio_streaming_mode(vc_audio_streaming_mode_e streaming_mode);
102
103
104 #ifdef __cplusplus
105 }
106 #endif
107
108 /**
109  * @}
110  */
111
112 #endif /* __VOICE_CONTROL_MANAGER_INTERNAL_H__ */
113