2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
5 // Licensed under the Flora License, Version 1.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://floralicense.org/license/
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an AS IS BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
19 #include <FLclLocale.h>
20 #include <FBaseSysLog.h>
21 #include <FUixSpeechTextToSpeech.h>
22 #include "FUi_AccessibilityTtsPlayer.h"
23 #include "FUi_AccessibilityManager.h"
25 using namespace Tizen::Uix::Speech;
27 namespace Tizen { namespace Ui {
29 _AccessibilityTtsPlayer::_AccessibilityTtsPlayer(_AccessibilityManager& manager)
33 ,__status(ACCESSIBILITY_SCREEN_READER_STATUS_ERROR)
37 _AccessibilityTtsPlayer::~_AccessibilityTtsPlayer(void)
43 _AccessibilityTtsPlayer::ReadGrammar(const Tizen::Base::String& grammar, bool bInit)
45 if(grammar.GetLength() == 0)
49 if(bInit && GetStatus() == ACCESSIBILITY_SCREEN_READER_STATUS_PLAYING)
53 SetStatus(ACCESSIBILITY_SCREEN_READER_STATUS_PLAYING);
57 __pTts->Speak(grammar, TEXT_TO_SPEECH_REQUEST_MODE_REPLACE);
62 _AccessibilityTtsPlayer::StopReading(void)
71 AccessibilityScreenReaderStatus
72 _AccessibilityTtsPlayer::GetStatus(void)
77 _AccessibilityTtsPlayer::GetCurrentGrammar(void)
82 _AccessibilityTtsPlayer::Activate(void)
89 __pTts = new (std::nothrow) TextToSpeech;
90 SysTryReturn(NID_UI, __pTts != null, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation is failed");
91 r = __pTts->Construct(*this);
92 SysTryCatch(NID_UI, r == E_SUCCESS, , E_SYSTEM, "[E_SYSTEM] System error");
103 _AccessibilityTtsPlayer::Deactivate(void)
111 _AccessibilityTtsPlayer::OnTextToSpeechInitialized(void)
113 result r = E_SUCCESS;
114 Tizen::Locales::Locale locale(Tizen::Locales::LANGUAGE_ENG,Tizen::Locales::COUNTRY_US);
117 r=__pTts->SetLocale(locale);
118 SysTryReturn(NID_UI, r == E_SUCCESS, , E_SYSTEM, "[E_SYSTEM] System error");
123 _AccessibilityTtsPlayer::OnTextToSpeechCompleted(void)
125 SetStatus(ACCESSIBILITY_SCREEN_READER_STATUS_READY);
126 __pManager->OnFinishReading(__grammar);
130 _AccessibilityTtsPlayer::OnTextToSpeechErrorOccurred (TextToSpeechError error)
136 _AccessibilityTtsPlayer::OnTextToSpeechStatusChanged (TextToSpeechStatus status)
140 case TEXT_TO_SPEECH_STATUS_SYNTHESIZING:
141 SetStatus(ACCESSIBILITY_SCREEN_READER_STATUS_PLAYING);
142 __pManager->OnStartReading(__grammar);
144 case TEXT_TO_SPEECH_STATUS_PLAYING:
145 SetStatus(ACCESSIBILITY_SCREEN_READER_STATUS_PLAYING);
147 case TEXT_TO_SPEECH_STATUS_PAUSED:
155 _AccessibilityTtsPlayer::SetStatus(AccessibilityScreenReaderStatus status)