return TTS_ERROR_NONE;
}
+int tts_set_mode(tts_h tts, tts_mode_e mode)
+{
+ SLOG(LOG_DEBUG, TAG_TTSC, "===== Set TTS mode");
+
+ tts_client_s* client = tts_client_get(tts);
+
+ /* check handle */
+ if (NULL == client) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] A handle is not available");
+ SLOG(LOG_DEBUG, TAG_TTSC, "=====");
+ SLOG(LOG_DEBUG, TAG_TTSC, " ");
+ return TTS_ERROR_INVALID_PARAMETER;
+ }
+
+ /* check state */
+ if (client->current_state != TTS_STATE_CREATED) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Invalid State: Current state is not 'CREATED'");
+ SLOG(LOG_DEBUG, TAG_TTSC, "=====");
+ SLOG(LOG_DEBUG, TAG_TTSC, " ");
+ return TTS_ERROR_INVALID_STATE;
+ }
+
+ if (TTS_MODE_DEFAULT <= mode && mode <= TTS_MODE_SCREEN_READER) {
+ client->mode = mode;
+ } else {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] mode is not valid : %d", mode);
+ SLOG(LOG_DEBUG, TAG_TTSC, "=====");
+ SLOG(LOG_DEBUG, TAG_TTSC, " ");
+ return TTS_ERROR_INVALID_PARAMETER;
+ }
+
+ SLOG(LOG_DEBUG, TAG_TTSC, "=====");
+ SLOG(LOG_DEBUG, TAG_TTSC, " ");
+
+ return TTS_ERROR_NONE;
+}
+
+int tts_get_mode(tts_h tts, tts_mode_e* mode)
+{
+ SLOG(LOG_DEBUG, TAG_TTSC, "===== Get TTS mode");
+
+ tts_client_s* client = tts_client_get(tts);
+
+ /* check handle */
+ if (NULL == client) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] A handle is not available");
+ SLOG(LOG_DEBUG, TAG_TTSC, "=====");
+ SLOG(LOG_DEBUG, TAG_TTSC, " ");
+ return TTS_ERROR_INVALID_PARAMETER;
+ }
+
+ /* check state */
+ if (client->current_state != TTS_STATE_CREATED) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Invalid State: Current state is not 'CREATED'");
+ SLOG(LOG_DEBUG, TAG_TTSC, "=====");
+ SLOG(LOG_DEBUG, TAG_TTSC, " ");
+ return TTS_ERROR_INVALID_STATE;
+ }
+
+ if (NULL == mode) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Input parameter(mode) is NULL");
+ SLOG(LOG_DEBUG, TAG_TTSC, "=====");
+ SLOG(LOG_DEBUG, TAG_TTSC, " ");
+ return TTS_ERROR_INVALID_PARAMETER;
+ }
+
+ *mode = client->mode;
+
+ SLOG(LOG_DEBUG, TAG_TTSC, "=====");
+ SLOG(LOG_DEBUG, TAG_TTSC, " ");
+
+ return TTS_ERROR_NONE;
+}
+
static Eina_Bool __tts_connect_daemon(void *data)
{
SLOG(LOG_DEBUG, TAG_TTSC, "===== Connect daemon");
return EINA_FALSE;
}
-
int tts_prepare(tts_h tts)
{
SLOG(LOG_DEBUG, TAG_TTSC, "===== Prepare TTS");
int __get_cmd_line(char *file, char *buf)
{
FILE *fp = NULL;
- int i;
fp = fopen(file, "r");
if (fp == NULL) {
}
memset(buf, 0, 256);
- fgets(buf, 256, fp);
+ if (NULL == fgets(buf, 256, fp)) {
+ SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Fail to fget command line");
+ fclose(fp);
+ return -1;
+ }
fclose(fp);
-
return 0;
}
} tts_error_e;
/**
+* @brief Enumerations of tts mode.
+*/
+typedef enum {
+ TTS_MODE_DEFAULT = 0, /**< Default mode for normal application */
+ TTS_MODE_NOTIFICATION, /**< Notification mode */
+ TTS_MODE_SCREEN_READER /**< Screen reader mode */
+}tts_mode_e;
+
+/**
* @brief Enumerations of speaking speed.
*/
typedef enum {
TTS_SPEED_NORMAL, /**< Normal */
TTS_SPEED_FAST, /**< Fast */
TTS_SPEED_VERY_FAST /**< Very fast */
-} tts_speed_e;
+}tts_speed_e;
/**
* @brief Enumerations of voice type.
TTS_VOICE_TYPE_USER1, /**< Engine defined */
TTS_VOICE_TYPE_USER2, /**< Engine defined */
TTS_VOICE_TYPE_USER3 /**< Engine defined */
-} tts_voice_type_e;
+}tts_voice_type_e;
/**
* @brief Enumerations of state.
int tts_destroy(tts_h tts);
/**
+* @brief Set tts mode.
+*
+* @param[in] tts The handle for TTS
+* @param[in] mode The mode
+*
+* @return 0 on success, otherwise a negative error value
+* @retval #TTS_ERROR_NONE Successful
+* @retval #TTS_ERROR_INVALID_PARAMETER Invalid parameter
+* @retval #TTS_ERROR_INVALID_STATE Invalid state
+*
+* @pre The state should be #TTS_STATE_CREATED.
+*
+* @see tts_get_mode()
+*/
+int tts_set_mode(tts_h tts, tts_mode_e mode);
+
+/**
+* @brief Get tts mode.
+*
+* @param[in] tts The handle for TTS
+* @param[out] mode The mode
+*
+* @return 0 on success, otherwise a negative error value
+* @retval #TTS_ERROR_NONE Successful
+* @retval #TTS_ERROR_INVALID_PARAMETER Invalid parameter
+* @retval #TTS_ERROR_INVALID_STATE Invalid state
+*
+* @pre The state should be #TTS_STATE_CREATED.
+*
+* @see tts_set_mode()
+*/
+int tts_get_mode(tts_h tts, tts_mode_e* mode);
+
+/**
* @brief Connects the daemon asynchronously.
*
* @param[in] tts The handle for TTS