• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
4 
5 #ifndef CHROME_BROWSER_SPEECH_EXTENSION_API_TTS_EXTENSION_API_H_
6 #define CHROME_BROWSER_SPEECH_EXTENSION_API_TTS_EXTENSION_API_H_
7 
8 #include <string>
9 
10 #include "chrome/browser/extensions/chrome_extension_function.h"
11 #include "chrome/browser/speech/tts_controller.h"
12 #include "extensions/browser/browser_context_keyed_api_factory.h"
13 
14 namespace content {
15 class BrowserContext;
16 }
17 
18 const char *TtsEventTypeToString(TtsEventType event_type);
19 TtsEventType TtsEventTypeFromString(const std::string& str);
20 
21 namespace extensions {
22 
23 class TtsSpeakFunction : public ChromeAsyncExtensionFunction {
24  private:
~TtsSpeakFunction()25   virtual ~TtsSpeakFunction() {}
26   virtual bool RunAsync() OVERRIDE;
27   DECLARE_EXTENSION_FUNCTION("tts.speak", TTS_SPEAK)
28 };
29 
30 class TtsStopSpeakingFunction : public ChromeSyncExtensionFunction {
31  private:
~TtsStopSpeakingFunction()32   virtual ~TtsStopSpeakingFunction() {}
33   virtual bool RunSync() OVERRIDE;
34   DECLARE_EXTENSION_FUNCTION("tts.stop", TTS_STOP)
35 };
36 
37 class TtsPauseFunction : public ChromeSyncExtensionFunction {
38  private:
~TtsPauseFunction()39   virtual ~TtsPauseFunction() {}
40   virtual bool RunSync() OVERRIDE;
41   DECLARE_EXTENSION_FUNCTION("tts.pause", TTS_PAUSE)
42 };
43 
44 class TtsResumeFunction : public ChromeSyncExtensionFunction {
45  private:
~TtsResumeFunction()46   virtual ~TtsResumeFunction() {}
47   virtual bool RunSync() OVERRIDE;
48   DECLARE_EXTENSION_FUNCTION("tts.resume", TTS_RESUME)
49 };
50 
51 class TtsIsSpeakingFunction : public ChromeSyncExtensionFunction {
52  private:
~TtsIsSpeakingFunction()53   virtual ~TtsIsSpeakingFunction() {}
54   virtual bool RunSync() OVERRIDE;
55   DECLARE_EXTENSION_FUNCTION("tts.isSpeaking", TTS_ISSPEAKING)
56 };
57 
58 class TtsGetVoicesFunction : public ChromeSyncExtensionFunction {
59  private:
~TtsGetVoicesFunction()60   virtual ~TtsGetVoicesFunction() {}
61   virtual bool RunSync() OVERRIDE;
62   DECLARE_EXTENSION_FUNCTION("tts.getVoices", TTS_GETVOICES)
63 };
64 
65 class TtsAPI : public BrowserContextKeyedAPI {
66  public:
67   explicit TtsAPI(content::BrowserContext* context);
68   virtual ~TtsAPI();
69 
70   // BrowserContextKeyedAPI implementation.
71   static BrowserContextKeyedAPIFactory<TtsAPI>* GetFactoryInstance();
72 
73  private:
74   friend class BrowserContextKeyedAPIFactory<TtsAPI>;
75 
76   // BrowserContextKeyedAPI implementation.
service_name()77   static const char* service_name() {
78     return "TtsAPI";
79   }
80   static const bool kServiceIsNULLWhileTesting = true;
81 };
82 
83 }  // namespace extensions
84 
85 #endif  // CHROME_BROWSER_SPEECH_EXTENSION_API_TTS_EXTENSION_API_H_
86