Add g_steal_pointer to avoid double-free
[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_ADD_SILENT_UTTERANCE         "tts_method_add_silent_utterance"
78 #define TTS_METHOD_ADD_TEXT_WITH_SYNTHESIS_PARAMETER            "tts_method_add_text_with_systhesis_parameter"
79 #define TTS_METHOD_PLAY                 "tts_method_play"
80 #define TTS_METHOD_STOP                 "tts_method_stop"
81 #define TTS_METHOD_PAUSE                "tts_method_pause"
82 #define TTS_METHOD_PLAY_PCM             "tts_method_play_pcm"
83 #define TTS_METHOD_STOP_PCM             "tts_method_stop_pcm"
84 #define TTS_METHOD_ADD_PCM              "tts_method_add_pcm"
85 #define TTS_METHOD_GET_SERVICE_STATE            "tts_method_get_service_state"
86
87 #define TTS_METHOD_SET_PRIVATE_DATA     "tts_method_set_private_data"
88 #define TTS_METHOD_GET_PRIVATE_DATA     "tts_method_get_private_data"
89 #define TTS_METHOD_SET_CREDENTIAL       "tts_method_set_credential"
90
91 #define TTSD_METHOD_HELLO               "ttsd_method_hello"
92 #define TTSD_METHOD_UTTERANCE_STARTED   "ttsd_method_utterance_started"
93 #define TTSD_METHOD_UTTERANCE_COMPLETED "ttsd_method_utterance_completed"
94 #define TTSD_METHOD_ERROR               "ttsd_method_error"
95 #define TTSD_METHOD_SET_STATE           "ttsd_method_set_state"
96 #define TTSD_METHOD_SET_SERVICE_STATE           "ttsd_method_set_service_state"
97 #define TTSD_METHOD_SEND_PCM            "ttsd_method_send_pcm"
98
99
100 /******************************************************************************************
101 * Defines for configuration
102 *******************************************************************************************/
103
104 #define TTS_CONFIG_BASE         tzplatform_mkpath(tzplatform_getid("TZ_SYS_GLOBALUSER_DATA"), ".voice")
105 #define TTS_CONFIG                      tzplatform_mkpath(tzplatform_getid("TZ_SYS_GLOBALUSER_DATA"), ".voice/tts-config.xml")
106 #define TTS_DEFAULT_CONFIG              tzplatform_mkpath(tzplatform_getid("TZ_SYS_RO_SHARE"), "/voice/tts/1.0/tts-config.xml")
107
108 #define TTS_DEFAULT_ENGINE              tzplatform_mkpath(tzplatform_getid("TZ_SYS_RO_SHARE"), "/voice/tts/1.0/engine")
109 #define TTS_DEFAULT_ENGINE_INFO         tzplatform_mkpath(tzplatform_getid("TZ_SYS_RO_SHARE"), "/voice/tts/1.0/engine-info")
110 #define TTS_DEFAULT_ENGINE_SETTING      tzplatform_mkpath(tzplatform_getid("TZ_SYS_RO_SHARE"), "/voice/tts/1.0/engine-setting")
111
112 #define TTS_HOME                tzplatform_mkpath(tzplatform_getid("TZ_SYS_GLOBALUSER_DATA"), ".voice/tts")
113 #define TTS_DOWNLOAD_ENGINE_INFO                tzplatform_mkpath(tzplatform_getid("TZ_SYS_GLOBALUSER_DATA"), ".voice/tts/engine-info")
114
115
116
117 #define TTS_BASE_LANGUAGE               "en_US"
118
119 #define TTS_RETRY_COUNT                 7
120 #define TTS_RETRY_MIN_COUNT             2
121 #define TTS_CONNECTION_RETRY_COUNT      10
122 #define TTS_HELLO_RETRY_COUNT   40 // 500 ms * 40 = 20 sec
123
124 #define TTS_SPEED_MIN           1
125 #define TTS_SPEED_NORMAL        8
126 #define TTS_SPEED_MAX           15
127
128 #define TTS_PITCH_MIN           1
129 #define TTS_PITCH_NORMAL        8
130 #define TTS_PITCH_MAX           15
131
132 #define TTS_FEATURE_PATH        "tizen.org/feature/speech.synthesis"
133
134 #define TTS_ERROR_ALREADY_INITIALIZED   -999
135 #define TTS_CREDENTIAL_NEEDED_ALREADY_INITIALIZED       -1
136
137 #define TTS_ENGINE_APPID_LEN 256
138 #define TTS_INVALID_UID 0
139
140 /******************************************************************************************
141 * Defines for vconf key
142 *******************************************************************************************/
143
144 #define TTS_ACCESSIBILITY_KEY           VCONFKEY_SETAPPL_ACCESSIBILITY_TTS
145
146 #define TTS_LANGSET_KEY                 VCONFKEY_LANGSET
147
148 #define TTS_ENGINE_DB_DEFAULT       "db/voice/tts/engine/default"
149
150 #define TTS_PLAYING_STATUS_KEY "memory/tts/engine/voice-guide-playing"
151
152 #define TTS_VCONF_INSTANT_REPREPARE_CLIENT "db/voice/tts/instant-reprepare-client"
153
154
155 /******************************************************************************************
156 * Defines for log tag
157 *******************************************************************************************/
158 #define TAG_TTSC "ttsc"
159 #define TAG_TTSCONFIG   "ttsconfig"
160
161
162 /******************************************************************************************
163 * Enumeration for registered callbacks
164 *******************************************************************************************/
165 typedef enum {
166         TTS_EVENT_MASK_STATE_CHANGED = (0x01 << 0), /**< State changed event */
167         TTS_EVENT_MASK_UTTERANCE_STARTED = (0x01 << 1), /**< Utterance changed event */
168         TTS_EVENT_MASK_UTTERANCE_COMPLETED = (0x01 << 2), /**< Utterance completed event */
169         TTS_EVENT_MASK_ERROR = (0x01 << 3), /**< Error event */
170         TTS_EVENT_MASK_DEFAULT_VOICE_CHANGED = (0x01 << 4), /**< Default voice changed event */
171         TTS_EVENT_MASK_ENGINE_CHANGED = (0x01 << 5), /**< Engine changed event */
172         TTS_EVENT_MASK_SCREEN_READER_CHANGED = (0x01 << 6), /**< Screen reader changed event */
173         TTS_EVENT_MASK_SERVICE_STATE_CHANGED = (0x01 << 7), /**< Service state changed event */
174 } tts_event_mask_e;
175
176
177 #ifdef __cplusplus
178 }
179 #endif
180
181 #endif  /* _TTS_DEFS_H__ */