Change to STT engine process
[platform/core/uifw/stt.git] / server / stte.c
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 #include <Ecore.h>
15
16 #include "stt_engine.h"
17 #include "stt_defs.h"
18 #include "stt_network.h"
19 #include "sttd_dbus.h"
20 #include "sttd_server.h"
21
22 #include "stte.h"
23
24
25 #define CLIENT_CLEAN_UP_TIME 500
26
27 static Ecore_Timer* g_check_client_timer = NULL;
28
29 int stte_main(int argc, char**argv, stte_request_callback_s *callback)
30 {
31         SLOG(LOG_DEBUG, TAG_STTD, "===== Start engine");
32
33         if (!ecore_init()) {
34                 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Fail to initialize Ecore");
35                 return EXIT_FAILURE;
36         }
37
38         if (0 != sttd_dbus_open_connection()) {
39                 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Fail to open connection");
40                 return EXIT_FAILURE;
41         }
42
43         if (0 != sttd_initialize(callback)) {
44                 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Fail to initialize stt-service");
45                 return EXIT_FAILURE;
46         }
47
48         stt_network_initialize();
49
50         g_check_client_timer = ecore_timer_add(CLIENT_CLEAN_UP_TIME, sttd_cleanup_client, NULL);
51         if (NULL == g_check_client_timer) {
52                 SLOG(LOG_WARN, TAG_STTD, "[Main Warning] Fail to create timer of client check");
53         }
54
55         SLOG(LOG_DEBUG, TAG_STTD, "[Main] stt-service start...");
56
57         SLOG(LOG_DEBUG, TAG_STTD, "=====");
58         SLOG(LOG_DEBUG, TAG_STTD, "  ");
59         SLOG(LOG_DEBUG, TAG_STTD, "  ");
60
61         return 0;
62 }
63
64 int stte_send_result(stte_result_event_e event, const char* type, const char** result, int result_count,
65                                 const char* msg, void* time_info, void* user_data)
66 {
67         if (NULL == type || NULL == result) {
68                 SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Invalid parameter");
69         }
70
71         int ret = STTE_ERROR_NONE;
72         ret = stt_engine_send_result(event, type, result, result_count, msg, time_info, user_data);
73         if (0 != ret) {
74                 SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to send result");
75         }
76         return ret;
77 }
78
79 int stte_send_error(stte_error_e error, const char* msg)
80 {
81         if (NULL == msg) {
82                 SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Invalid parameter");
83         }
84
85         int ret = STTE_ERROR_NONE;
86         ret = stt_engine_send_error(error, msg);
87         if (0 != ret) {
88                 SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to send error info");
89         }
90         return ret;
91 }
92
93 int stte_send_speech_status(stte_speech_status_e status, void* user_data)
94 {
95         int ret = STTE_ERROR_NONE;
96         ret = stt_engine_send_speech_status(status, user_data);
97         if (0 != ret) {
98                 SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to send speech status");
99         }
100         return ret;
101 }
102
103 int stte_set_private_data_set_cb(stte_private_data_set_cb callback)
104 {
105         int ret = STTE_ERROR_NONE;
106         ret = stt_engine_set_private_data_set_cb(callback, NULL);
107         if (0 != ret) {
108                 SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to send speech status");
109         }
110         return ret;
111 }
112
113 int stte_set_private_data_requested_cb(stte_private_data_requested_cb callback)
114 {
115         int ret = STTE_ERROR_NONE;
116         ret = stt_engine_set_private_data_requested_cb(callback, NULL);
117         if (0 != ret) {
118                 SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to send speech status");
119         }
120         return ret;
121 }