Home | History | Annotate | Download | only in extension_api
      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:
     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:
     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:
     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:
     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:
     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:
     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.
     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