Stop reading, if new text comes 58/44558/1
authorShinwoo Kim <cinoo.kim@samsung.com>
Thu, 23 Jul 2015 08:05:42 +0000 (17:05 +0900)
committerShinwoo Kim <cinoo.kim@samsung.com>
Thu, 23 Jul 2015 08:05:42 +0000 (17:05 +0900)
Change-Id: Iaaa09e9370b13bde5b946bf714c2822c26ab46d0

src/screen_reader_spi.c
src/screen_reader_tts.c

index 2b3bba7..f8391e3 100644 (file)
@@ -296,7 +296,7 @@ void spi_event_listener_cb(AtspiEvent *event, void *user_data)
          return;
       }
    DEBUG("SPEAK: %s", text_to_read)
-   tts_speak(text_to_read, EINA_FALSE);
+   tts_speak(text_to_read, EINA_TRUE);
 
    tts_state_e state;
    Service_Data *sd = (Service_Data*)user_data;
index 6080f6b..db07934 100644 (file)
@@ -197,6 +197,7 @@ Eina_Bool tts_pause_set(Eina_Bool pause_switch)
 
 void tts_speak(char *text_to_speak, Eina_Bool flush_switch)
 {
+   int ret = 0;
    Service_Data *sd = get_pointer_to_service_data_struct();
    int speak_id;
 
@@ -213,14 +214,24 @@ void tts_speak(char *text_to_speak, Eina_Bool flush_switch)
         return;
      }
 
-   if(flush_flag || flush_switch)
-      tts_stop(sd->tts);
+   if (flush_flag || flush_switch)
+     {
+        if (state == TTS_STATE_PLAYING ||
+            state == TTS_STATE_PAUSED)
+          {
+             ret = tts_stop(sd->tts);
+             if (TTS_ERROR_NONE != ret)
+               {
+                  DEBUG("Fail to stop TTS: resultl(%d)", ret);
+               }
+          }
+     }
 
    DEBUG( "tts_speak\n");
    DEBUG( "text to say:%s\n", text_to_speak);
    if ( !text_to_speak ) return;
    if ( !text_to_speak[0] ) return;
-   int ret = 0;
+
    if((ret = tts_add_text( sd->tts, text_to_speak, NULL, TTS_VOICE_TYPE_AUTO, TTS_SPEED_AUTO, &speak_id)))
    {
        switch(ret) {