1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROME_BROWSER_SPEECH_EXTENSION_API_TTS_EXTENSION_API_H_
6 #define CHROME_BROWSER_SPEECH_EXTENSION_API_TTS_EXTENSION_API_H_
10 #include "chrome/browser/extensions/api/profile_keyed_api_factory.h"
11 #include "chrome/browser/extensions/chrome_extension_function.h"
12 #include "chrome/browser/speech/tts_controller.h"
16 const char *TtsEventTypeToString(TtsEventType event_type
);
17 TtsEventType
TtsEventTypeFromString(const std::string
& str
);
19 namespace extensions
{
21 class TtsSpeakFunction
: public ChromeAsyncExtensionFunction
{
23 virtual ~TtsSpeakFunction() {}
24 virtual bool RunImpl() OVERRIDE
;
25 DECLARE_EXTENSION_FUNCTION("tts.speak", TTS_SPEAK
)
28 class TtsStopSpeakingFunction
: public ChromeSyncExtensionFunction
{
30 virtual ~TtsStopSpeakingFunction() {}
31 virtual bool RunImpl() OVERRIDE
;
32 DECLARE_EXTENSION_FUNCTION("tts.stop", TTS_STOP
)
35 class TtsPauseFunction
: public ChromeSyncExtensionFunction
{
37 virtual ~TtsPauseFunction() {}
38 virtual bool RunImpl() OVERRIDE
;
39 DECLARE_EXTENSION_FUNCTION("tts.pause", TTS_PAUSE
)
42 class TtsResumeFunction
: public ChromeSyncExtensionFunction
{
44 virtual ~TtsResumeFunction() {}
45 virtual bool RunImpl() OVERRIDE
;
46 DECLARE_EXTENSION_FUNCTION("tts.resume", TTS_RESUME
)
49 class TtsIsSpeakingFunction
: public ChromeSyncExtensionFunction
{
51 virtual ~TtsIsSpeakingFunction() {}
52 virtual bool RunImpl() OVERRIDE
;
53 DECLARE_EXTENSION_FUNCTION("tts.isSpeaking", TTS_ISSPEAKING
)
56 class TtsGetVoicesFunction
: public ChromeSyncExtensionFunction
{
58 virtual ~TtsGetVoicesFunction() {}
59 virtual bool RunImpl() OVERRIDE
;
60 DECLARE_EXTENSION_FUNCTION("tts.getVoices", TTS_GETVOICES
)
63 class TtsAPI
: public ProfileKeyedAPI
{
65 explicit TtsAPI(Profile
* profile
);
68 // Convenience method to get the TtsAPI for a profile.
69 static TtsAPI
* Get(Profile
* profile
);
71 // ProfileKeyedAPI implementation.
72 static ProfileKeyedAPIFactory
<TtsAPI
>* GetFactoryInstance();
75 friend class ProfileKeyedAPIFactory
<TtsAPI
>;
77 // ProfileKeyedAPI implementation.
78 static const char* service_name() {
81 static const bool kServiceIsNULLWhileTesting
= true;
84 } // namespace extensions
86 #endif // CHROME_BROWSER_SPEECH_EXTENSION_API_TTS_EXTENSION_API_H_