Add a new TTS Interrupt mode
[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_INTERRUPT                     /**< Interrupt mode */
62 } ttsd_mode_e;
63
64 typedef enum {
65         TTSD_INTERRUPTED_PAUSED = 0,    /**< Current state change 'Pause' */
66         TTSD_INTERRUPTED_STOPPED        /**< Current state change 'Ready' */
67 } ttsd_interrupted_code_e;
68
69 typedef struct {
70         char* engine_id;
71         char* engine_name;
72         char* ug_name;
73 } engine_s;
74
75 typedef struct {
76         char* language;
77         int type;
78 } voice_s;
79
80 typedef struct {
81         int version;
82
83         ttse_get_info_cb                        get_info;
84
85         ttse_initialize_cb                      initialize;
86         ttse_deinitialize_cb                    deinitialize;
87
88         ttse_foreach_supported_voices_cb        foreach_voices;
89         ttse_is_valid_voice_cb                  is_valid_voice;
90         ttse_set_pitch_cb                       set_pitch;
91
92         ttse_load_voice_cb                      load_voice;
93         ttse_unload_voice_cb                    unload_voice;
94
95         ttse_start_synthesis_cb                 start_synth;
96         ttse_cancel_synthesis_cb                cancel_synth;
97
98         ttse_check_app_agreed_cb                check_app_agreed;
99         ttse_need_app_credential_cb             need_app_credential;
100         ttse_private_data_set_cb                private_data_set;
101         ttse_private_data_requested_cb          private_data_requested;
102 } tts_engine_callback_s;
103
104
105 /* get daemon mode : default, notification or screen reader */
106 ttsd_mode_e ttsd_get_mode();
107
108 /* Get log tag : default, notification, screen reader */
109 //const char* get_tag();
110 const char* tts_tag();
111
112 #ifdef __cplusplus
113 }
114 #endif
115
116 #endif  /* __TTSD_MAIN_H_ */