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.
15 #include "ttsd_main.h"
16 #include "ttsd_server.h"
17 #include "ttsd_dbus.h"
19 #include "ttsd_network.h"
23 #include <bundle_internal.h>
29 #include "ttse_internal.h"
31 static ttsd_mode_e g_tts_mode = TTSD_MODE_DEFAULT;
35 if (TTSD_MODE_NOTIFICATION == g_tts_mode) {
37 } else if (TTSD_MODE_SCREEN_READER == g_tts_mode) {
39 } else if (TTSD_MODE_INTERRUPT == g_tts_mode) {
40 return "ttsdinterrupt";
46 ttsd_mode_e ttsd_get_mode()
51 void ttsd_set_mode(ttsd_mode_e mode)
57 static bool __is_default_engine()
60 engine = vconf_get_str(VCONFKEY_TTS_ENGINE_DEFAULT);
62 SLOG(LOG_ERROR, tts_tag(), "[Server ERROR] Fail to get sting for vc engine");
66 char appid[1024] = {'\0', };
67 if (0 != aul_app_get_appid_bypid(getpid(), appid, sizeof(appid) - 1)) {
68 SLOG(LOG_ERROR, tts_tag(), "[Server ERROR] Fail to get callee appid by pid");
71 SLOG(LOG_DEBUG, tts_tag(), "[Server] TTS Default Engine(%s), appId(%s)", engine, appid);
72 if (0 == strncmp(engine, appid, strlen(engine))) {
80 int ttse_main(int argc, char** argv, ttse_request_callback_s *callback)
83 ttsd_mode_e mode = TTSD_MODE_DEFAULT;
84 int ret = TTSE_ERROR_NONE;
86 b = bundle_import_from_argv(argc, argv);
89 if (0 == bundle_get_str(b, "mode", &val)) {
91 if (!strcmp("noti", val)) {
92 mode = TTSD_MODE_NOTIFICATION;
93 } else if (!strcmp("sr", val)) {
94 mode = TTSD_MODE_SCREEN_READER;
95 } else if (!strcmp("interrupt", val)) {
96 mode = TTSD_MODE_INTERRUPT;
98 SLOG(LOG_WARN, tts_tag(), "[WARNING] mode (%s)", val);
101 SLOG(LOG_ERROR, tts_tag(), "[ERROR] NULL data");
104 SLOG(LOG_ERROR, tts_tag(), "[ERROR] Fail to get data from bundle");
109 SLOG(LOG_ERROR, tts_tag(), "[ERROR] Fail to get bundle");
114 SLOG(LOG_DEBUG, tts_tag(), "Start engine as [%d] mode", mode);
117 SLOG(LOG_ERROR, tts_tag(), "[ERROR] Fail to initialize Ecore");
118 return TTSE_ERROR_OPERATION_FAILED;
121 ret = ttsd_initialize(callback);
123 SLOG(LOG_ERROR, tts_tag(), "[ERROR] Fail to initialize");
128 if (TRUE == __is_default_engine()) {
129 if (0 != ttsd_ipc_open_connection()) {
130 SLOG(LOG_ERROR, tts_tag(), "[ERROR] Fail to open ipc connection");
132 return TTSE_ERROR_OPERATION_FAILED;
136 if (0 != ttsd_network_initialize()) {
137 SLOG(LOG_WARN, tts_tag(), "[WARNING] Fail to initialize network");
140 SLOG(LOG_DEBUG, tts_tag(), "@@@");
142 return TTSE_ERROR_NONE;
149 return TTSE_ERROR_NONE;
152 int ttse_get_speed_range(int* min, int* normal, int* max)
154 if (NULL == min || NULL == normal || NULL == max) {
155 SLOG(LOG_ERROR, tts_tag(), "[ERROR] Input parameter is null");
156 return TTSE_ERROR_INVALID_PARAMETER;
159 *min = TTS_SPEED_MIN;
160 *normal = TTS_SPEED_NORMAL;
161 *max = TTS_SPEED_MAX;
166 int ttse_get_pitch_range(int* min, int* normal, int* max)
168 if (NULL == min || NULL == normal || NULL == max) {
169 SLOG(LOG_ERROR, tts_tag(), "[ERROR] Input parameter is null");
170 return TTSE_ERROR_INVALID_PARAMETER;
173 *min = TTS_PITCH_MIN;
174 *normal = TTS_PITCH_NORMAL;
175 *max = TTS_PITCH_MAX;
180 int ttse_send_result(ttse_result_event_e event, const void* data, unsigned int data_size, ttse_audio_type_e audio_type, int rate, void* user_data)
185 SLOG(LOG_ERROR, tts_tag(), "[ERROR] Input parameter is null");
188 ret = ttsd_send_result(event, data, data_size, audio_type, rate, user_data);
191 SLOG(LOG_ERROR, tts_tag(), "[ERROR] Fail to send result");
197 int ttse_send_error(ttse_error_e error, const char* msg)
201 ret = ttsd_send_error(error, msg);
204 SLOG(LOG_ERROR, tts_tag(), "[ERROR] Fail to send error");
210 int ttse_set_private_data_set_cb(ttse_private_data_set_cb callback_func)
212 if (NULL == callback_func) {
213 SLOG(LOG_ERROR, tts_tag(), "[ERROR] Invalid parameter");
214 return TTSE_ERROR_INVALID_PARAMETER;
217 int ret = ttsd_set_private_data_set_cb(callback_func);
220 SLOG(LOG_ERROR, tts_tag(), "[ERROR] Fail to set private data set cb");
226 int ttse_set_private_data_requested_cb(ttse_private_data_requested_cb callback_func)
228 if (NULL == callback_func) {
229 SLOG(LOG_ERROR, tts_tag(), "[ERROR] Invalid parameter");
230 return TTSE_ERROR_INVALID_PARAMETER;
233 int ret = ttsd_set_private_data_requested_cb(callback_func);
236 SLOG(LOG_ERROR, tts_tag(), "[ERROR] Fail to set private data requested cb");