3ee3f209d8c0f20b044b2be36adfe4c202d5a8e7
[platform/framework/native/uifw.git] / src / ui / inc / FUi_AccessibilityTtsPlayer.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4 //
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
8 //
9 //     http://floralicense.org/license/
10 //
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.
16 //
17
18 /**
19  * @fileFUi_AccessibilityTtsPlayer.h
20  * @brief This is the header file for the _AccessibilityTtsPlayer class.
21  *
22  * This header file contains the declarations of the _AccessibilityTtsPlayer class.
23  *
24  */
25 #ifndef _FUI_INTERNAL_ACCESSIBILITY_TTS_PLAYER_H_
26 #define _FUI_INTERNAL_ACCESSIBILITY_TTS_PLAYER_H_
27
28 #include <tts.h>
29 #include <FBaseResult.h>
30 #include <FUiAccessibilityTypes.h>
31
32 namespace Tizen { namespace Base
33 {
34 class String;
35 }}
36 namespace Tizen { namespace Locales
37 {
38 class Locale;
39 }}
40 namespace Tizen { namespace Ui
41 {
42 class _AccessibilityManager;
43
44 class _AccessibilityTtsPlayer
45 {
46 public:
47         _AccessibilityTtsPlayer(_AccessibilityManager& manager);
48         virtual ~_AccessibilityTtsPlayer(void);
49         result Construct(void);
50         result ReadGrammar(const Tizen::Base::String& grammar, bool init = true);
51         result StopReading(void);
52
53         AccessibilityScreenReaderStatus GetStatus(void);
54         Tizen::Base::String GetCurrentGrammar(void);
55
56         void OnStatusChanged(AccessibilityScreenReaderStatus status);
57         void OnErrorOccurred(Tizen::Base::String& errorString);
58         result Activate(void);
59         result Deactivate(void);
60         result SetLocale(const Tizen::Locales::Locale& locale);
61 private:
62         void SetStatus(AccessibilityScreenReaderStatus status);
63
64         static const char* GetEngineStateMessage(const tts_state_e state);
65         static const char* GetEngineErrorMessage(const int errorType);
66         static void TtsStateChangedReceiver(tts_h ttsHandle, tts_state_e previousState, tts_state_e currentState, void* pTtsInstance);
67         static void TtsStartedReceiver(tts_h ttsHandle, int utteranceId, void* pListener);
68         static void TtsCompletedReceiver(tts_h ttsHandle, int utteranceId, void* pTtsInstance);
69         static void TtsErrorReceiver(tts_h ttsHandle, int ttsUtteranceId, tts_error_e error, void* pTtsInstance);
70         static bool TtsSupportedLocaleListGetter(tts_h ttsHandle, const char* pLanguage, tts_voice_type_e voiceType, void* pLocaleList);
71         static const char* ConvertTizenLocaleToEngineN(const Tizen::Locales::Locale& locale);
72         static const Tizen::Locales::Locale* ConvertEngineLocaleToNativeN(const Tizen::Base::String& strSource);
73         result Speak(const Tizen::Base::String& text);
74         result Stop(void);
75         result Pause(void);
76         result Resume(void);
77         Tizen::Locales::Locale GetLocale(void) const;
78         const Tizen::Base::Collection::IList* GetSupportedLocales(void) const;
79         bool IsLocaleSupported(const Tizen::Locales::Locale& locale) const;
80         result SetSpeechRate(tts_speed_e speechRate);
81         
82 private:
83         _AccessibilityTtsPlayer(const _AccessibilityTtsPlayer& rhs);
84         _AccessibilityTtsPlayer& operator =(const _AccessibilityTtsPlayer& rhs);
85         
86 private:
87         bool __initialized;
88         tts_h __ttsHandle;
89         int __localeIdx;
90         tts_speed_e __speed;
91         AccessibilityScreenReaderStatus __status;
92         Tizen::Base::String __grammar;
93         Tizen::Locales::Locale* __pCurrentLocale;
94         Tizen::Base::Collection::IList* __pSupportedLocaleList;
95         _AccessibilityManager* __pManager;
96 }; //class _AccessibilityTtsPlayer
97 }} //Tizen::Ui
98
99 #endif //_FUI_INTERNAL_ACCESSIBILITY_TTS_PLAYER_H_