05f4a10111907e5d310febf225db476b5609cf3b
[platform/core/uifw/tts.git] / server / ttsd_main.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 __TTSD_MAIN_H_
16 #define __TTSD_MAIN_H_
17
18 #include <stdio.h>
19 #include <stdbool.h>
20 #include <stdlib.h>
21 #include <tizen.h>
22 #include <unistd.h>
23 #include <string.h>
24 #include <glib.h>
25 #include <dlog.h>
26 #include <errno.h>
27
28 #include "ttse.h"
29 #include "tts_defs.h"
30
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34
35 /* for debug message */
36 #define DATA_DEBUG
37 #define ENGINE_AGENT_DEBUG
38
39 typedef enum {
40         TTSD_ERROR_NONE                         = TIZEN_ERROR_NONE,             /**< Successful */
41         TTSD_ERROR_OUT_OF_MEMORY                = TIZEN_ERROR_OUT_OF_MEMORY,    /**< Out of Memory */
42         TTSD_ERROR_IO_ERROR                     = TIZEN_ERROR_IO_ERROR,         /**< I/O error */
43         TTSD_ERROR_INVALID_PARAMETER            = TIZEN_ERROR_INVALID_PARAMETER,/**< Invalid parameter */
44         TTSD_ERROR_OUT_OF_NETWORK               = TIZEN_ERROR_NETWORK_DOWN,     /**< Out of network */
45         TTSD_ERROR_TIMED_OUT                    = TIZEN_ERROR_TIMED_OUT,        /**< No answer from the daemon */
46         TTSD_ERROR_PERMISSION_DENIED            = TIZEN_ERROR_PERMISSION_DENIED,/**< Permission denied */
47         TTSD_ERROR_NOT_SUPPORTED                = TIZEN_ERROR_NOT_SUPPORTED,    /**< TTS NOT supported */
48         TTSD_ERROR_INVALID_STATE                = TIZEN_ERROR_TTS | 0x01,       /**< Invalid state */
49         TTSD_ERROR_INVALID_VOICE                = TIZEN_ERROR_TTS | 0x02,       /**< Invalid voice */
50         TTSD_ERROR_ENGINE_NOT_FOUND             = TIZEN_ERROR_TTS | 0x03,       /**< No available engine */
51         TTSD_ERROR_OPERATION_FAILED             = TIZEN_ERROR_TTS | 0x04,       /**< Operation failed */
52         TTSD_ERROR_AUDIO_POLICY_BLOCKED         = TIZEN_ERROR_TTS | 0x05,       /**< Audio policy blocked */
53         TTSD_ERROR_NOT_SUPPORTED_FEATURE        = TIZEN_ERROR_TTS | 0x06,       /**< Not supported feature of current engine*/
54         TTSD_ERROR_SERVICE_RESET                = TIZEN_ERROR_TTS | 0x07        /**< Service reset */
55 } ttsd_error_e;
56
57 typedef enum {
58         TTSD_MODE_DEFAULT = 0,          /**< Default mode for normal application */
59         TTSD_MODE_NOTIFICATION,         /**< Notification mode */
60         TTSD_MODE_SCREEN_READER         /**< Screen reader mode */
61 } ttsd_mode_e;
62
63 typedef enum {
64         TTSD_INTERRUPTED_PAUSED = 0,    /**< Current state change 'Pause' */
65         TTSD_INTERRUPTED_STOPPED        /**< Current state change 'Ready' */
66 } ttsd_interrupted_code_e;
67
68 typedef struct {
69         char* engine_id;
70         char* engine_name;
71         char* ug_name;
72 } engine_s;
73
74 typedef struct {
75         char* language;
76         int type;
77 } voice_s;
78
79 typedef struct {
80         int version;
81
82         ttse_get_info_cb                        get_info;
83
84         ttse_initialize_cb                      initialize;
85         ttse_deinitialize_cb                    deinitialize;
86
87         ttse_foreach_supported_voices_cb        foreach_voices;
88         ttse_is_valid_voice_cb                  is_valid_voice;
89         ttse_set_pitch_cb                       set_pitch;
90
91         ttse_load_voice_cb                      load_voice;
92         ttse_unload_voice_cb                    unload_voice;
93
94         ttse_start_synthesis_cb                 start_synth;
95         ttse_cancel_synthesis_cb                cancel_synth;
96
97         ttse_check_app_agreed_cb                check_app_agreed;
98         ttse_need_app_credential_cb             need_app_credential;
99         ttse_private_data_set_cb                private_data_set;
100         ttse_private_data_requested_cb          private_data_requested;
101 } tts_engine_callback_s;
102
103
104 /* get daemon mode : default, notification or screen reader */
105 ttsd_mode_e ttsd_get_mode();
106
107 /* Get log tag : default, notification, screen reader */
108 //const char* get_tag();
109 const char* tts_tag();
110
111 #ifdef __cplusplus
112 }
113 #endif
114
115 #endif  /* __TTSD_MAIN_H_ */