Send synthesized PCM data from TTS engine to client
[platform/core/uifw/tts.git] / common / tts_defs.h
1 /*
2 *  Copyright (c) 2011-2016 Samsung Electronics Co., Ltd All Rights Reserved
3 *  Licensed under the Apache License, Version 2.0 (the "License");
4 *  you may not use this file except in compliance with the License.
5 *  You may obtain a copy of the License at
6 *  http://www.apache.org/licenses/LICENSE-2.0
7 *  Unless required by applicable law or agreed to in writing, software
8 *  distributed under the License is distributed on an "AS IS" BASIS,
9 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10 *  See the License for the specific language governing permissions and
11 *  limitations under the License.
12 */
13
14
15 #ifndef _TTS_DEFS_H__
16 #define _TTS_DEFS_H__
17
18 /* For multi-user support */
19 #include <tzplatform_config.h>
20 #include <vconf.h>
21
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25
26 /******************************************************************************************
27 * Definition for IPC
28 *******************************************************************************************/
29 #define TTS_SERVER_ENGINE_DEFAULT "org.tizen.tts-engine-default"
30
31 #define TTS_CLIENT_SERVICE_NAME         "org.tizen.tts"
32 #define TTS_CLIENT_SERVICE_OBJECT_PATH  "/org/tizen/tts"
33 #define TTS_CLIENT_SERVICE_INTERFACE    "org.tizen.tts"
34
35 #define TTS_SERVER_SERVICE_NAME         "org.tizen.voice.ttsserver"
36 #define TTS_SERVER_SERVICE_OBJECT_PATH  "/org/tizen/voice/ttsserver"
37 #define TTS_SERVER_SERVICE_INTERFACE    "org.tizen.voice.ttsserver"
38
39 #define TTS_NOTI_SERVER_SERVICE_NAME            "org.tizen.voice.ttsnotiserver"
40 #define TTS_NOTI_SERVER_SERVICE_OBJECT_PATH     "/org/tizen/voice/ttsnotiserver"
41 #define TTS_NOTI_SERVER_SERVICE_INTERFACE       "org.tizen.voice.ttsnotiserver"
42 //#define TTS_NOTI_SERVER_MODE                "-noti"
43
44 #define TTS_SR_SERVER_SERVICE_NAME              "org.tizen.voice.ttssrserver"
45 #define TTS_SR_SERVER_SERVICE_OBJECT_PATH       "/org/tizen/voice/ttssrserver"
46 #define TTS_SR_SERVER_SERVICE_INTERFACE         "org.tizen.voice.ttssrserver"
47 //#define TTS_SR_SERVER_MODE                  "-sr"
48
49 #define TTS_INTERRUPT_SERVER_SERVICE_NAME               "org.tizen.voice.ttsinterruptserver"
50 #define TTS_INTERRUPT_SERVER_SERVICE_OBJECT_PATH        "/org/tizen/voice/ttsinterruptserver"
51 #define TTS_INTERRUPT_SERVER_SERVICE_INTERFACE          "org.tizen.voice.ttsinterruptserver"
52 #define TTS_INTERRUPT_SERVER_MODE                   "-interrupt"
53
54 /******************************************************************************************
55 * Message Definition for APIs
56 *******************************************************************************************/
57 #define TTS_BUNDLE_METHOD "method"
58 #define TTS_BUNDLE_MESSAGE "message"
59 #define TTS_BUNDLE_UTTID "uttid"
60 #define TTS_BUNDLE_REASON "reason"
61 #define TTS_BUNDLE_ERR_MSG "err_msg"
62 #define TTS_BUNDLE_CREDENTIAL_NEEDED "credential_needed"
63 #define TTS_BUNDLE_BEFORE_STATE "before_state"
64 #define TTS_BUNDLE_CURRENT_STATE "current_state"
65 #define TTS_BUNDLE_PCM_EVENT "pcm_event"
66 #define TTS_BUNDLE_PCM_DATA "pcm_data"
67 #define TTS_BUNDLE_PCM_AUDIO_TYPE "pcm_audio_type"
68 #define TTS_BUNDLE_PCM_SAMPLE_RATE "pcm_sample_rate"
69
70 #define TTS_METHOD_HELLO                "tts_method_hello"
71 #define TTS_METHOD_HELLO_SYNC       "tts_method_hello_sync"
72 #define TTS_METHOD_INITIALIZE           "tts_method_initialize"
73 #define TTS_METHOD_FINALIZE             "tts_method_finalilze"
74 #define TTS_METHOD_GET_SUPPORT_VOICES   "tts_method_get_support_voices"
75 #define TTS_METHOD_GET_CURRENT_VOICE    "tts_method_get_current_voice"
76 #define TTS_METHOD_ADD_TEXT             "tts_method_add_text"
77 #define TTS_METHOD_PLAY                 "tts_method_play"
78 #define TTS_METHOD_STOP                 "tts_method_stop"
79 #define TTS_METHOD_PAUSE                "tts_method_pause"
80 #define TTS_METHOD_PLAY_PCM             "tts_method_play_pcm"
81 #define TTS_METHOD_STOP_PCM             "tts_method_stop_pcm"
82 #define TTS_METHOD_ADD_PCM              "tts_method_add_pcm"
83 #define TTS_METHOD_GET_SERVICE_STATE            "tts_method_get_service_state"
84
85 #define TTS_METHOD_SET_PRIVATE_DATA     "tts_method_set_private_data"
86 #define TTS_METHOD_GET_PRIVATE_DATA     "tts_method_get_private_data"
87 #define TTS_METHOD_SET_CREDENTIAL       "tts_method_set_credential"
88
89 #define TTSD_METHOD_HELLO               "ttsd_method_hello"
90 #define TTSD_METHOD_UTTERANCE_STARTED   "ttsd_method_utterance_started"
91 #define TTSD_METHOD_UTTERANCE_COMPLETED "ttsd_method_utterance_completed"
92 #define TTSD_METHOD_ERROR               "ttsd_method_error"
93 #define TTSD_METHOD_SET_STATE           "ttsd_method_set_state"
94 #define TTSD_METHOD_SET_SERVICE_STATE           "ttsd_method_set_service_state"
95 #define TTSD_METHOD_SEND_PCM            "ttsd_method_send_pcm"
96
97
98 /******************************************************************************************
99 * Defines for configuration
100 *******************************************************************************************/
101
102 #define TTS_CONFIG_BASE         tzplatform_mkpath(tzplatform_getid("TZ_SYS_GLOBALUSER_DATA"), ".voice")
103 #define TTS_CONFIG                      tzplatform_mkpath(tzplatform_getid("TZ_SYS_GLOBALUSER_DATA"), ".voice/tts-config.xml")
104 #define TTS_DEFAULT_CONFIG              tzplatform_mkpath(tzplatform_getid("TZ_SYS_RO_SHARE"), "/voice/tts/1.0/tts-config.xml")
105
106 #define TTS_DEFAULT_ENGINE              tzplatform_mkpath(tzplatform_getid("TZ_SYS_RO_SHARE"), "/voice/tts/1.0/engine")
107 #define TTS_DEFAULT_ENGINE_INFO         tzplatform_mkpath(tzplatform_getid("TZ_SYS_RO_SHARE"), "/voice/tts/1.0/engine-info")
108 #define TTS_DEFAULT_ENGINE_SETTING      tzplatform_mkpath(tzplatform_getid("TZ_SYS_RO_SHARE"), "/voice/tts/1.0/engine-setting")
109
110 #define TTS_HOME                tzplatform_mkpath(tzplatform_getid("TZ_SYS_GLOBALUSER_DATA"), ".voice/tts")
111 #define TTS_DOWNLOAD_ENGINE_INFO                tzplatform_mkpath(tzplatform_getid("TZ_SYS_GLOBALUSER_DATA"), ".voice/tts/engine-info")
112
113
114
115 #define TTS_BASE_LANGUAGE               "en_US"
116
117 #define TTS_RETRY_COUNT                 7
118 #define TTS_RETRY_MIN_COUNT             2
119 #define TTS_CONNECTION_RETRY_COUNT      10
120 #define TTS_HELLO_RETRY_COUNT   40 // 500 ms * 40 = 20 sec
121
122 #define TTS_SPEED_MIN           1
123 #define TTS_SPEED_NORMAL        8
124 #define TTS_SPEED_MAX           15
125
126 #define TTS_PITCH_MIN           1
127 #define TTS_PITCH_NORMAL        8
128 #define TTS_PITCH_MAX           15
129
130 #define TTS_FEATURE_PATH        "tizen.org/feature/speech.synthesis"
131
132 #define TTS_ERROR_ALREADY_INITIALIZED   -999
133 #define TTS_CREDENTIAL_NEEDED_ALREADY_INITIALIZED       -1
134
135 #define TTS_ENGINE_APPID_LEN 256
136 #define TTS_INVALID_UID 0
137
138 /******************************************************************************************
139 * Defines for vconf key
140 *******************************************************************************************/
141
142 #define TTS_ACCESSIBILITY_KEY           VCONFKEY_SETAPPL_ACCESSIBILITY_TTS
143
144 #define TTS_LANGSET_KEY                 VCONFKEY_LANGSET
145
146 #define TTS_ENGINE_DB_DEFAULT       "db/voice/tts/engine/default"
147
148 #define TTS_PLAYING_STATUS_KEY "memory/tts/engine/voice-guide-playing"
149
150 #define TTS_VCONF_INSTANT_REPREPARE_CLIENT "db/voice/tts/instant-reprepare-client"
151
152
153 /******************************************************************************************
154 * Defines for log tag
155 *******************************************************************************************/
156 #define TAG_TTSC "ttsc"
157 #define TAG_TTSCONFIG   "ttsconfig"
158
159
160 /******************************************************************************************
161 * Enumeration for registered callbacks
162 *******************************************************************************************/
163 typedef enum {
164         TTS_EVENT_MASK_STATE_CHANGED = (0x01 << 0), /**< State changed event */
165         TTS_EVENT_MASK_UTTERANCE_STARTED = (0x01 << 1), /**< Utterance changed event */
166         TTS_EVENT_MASK_UTTERANCE_COMPLETED = (0x01 << 2), /**< Utterance completed event */
167         TTS_EVENT_MASK_ERROR = (0x01 << 3), /**< Error event */
168         TTS_EVENT_MASK_DEFAULT_VOICE_CHANGED = (0x01 << 4), /**< Default voice changed event */
169         TTS_EVENT_MASK_ENGINE_CHANGED = (0x01 << 5), /**< Engine changed event */
170         TTS_EVENT_MASK_SCREEN_READER_CHANGED = (0x01 << 6), /**< Screen reader changed event */
171         TTS_EVENT_MASK_SERVICE_STATE_CHANGED = (0x01 << 7), /**< Service state changed event */
172 } tts_event_mask_e;
173
174
175 #ifdef __cplusplus
176 }
177 #endif
178
179 #endif  /* _TTS_DEFS_H__ */