Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / extensions / api / hotword_private / hotword_private_api.h
index 3086277..c628ab3 100644 (file)
@@ -7,9 +7,9 @@
 
 #include "base/prefs/pref_change_registrar.h"
 #include "base/values.h"
-#include "chrome/browser/extensions/api/profile_keyed_api_factory.h"
 #include "chrome/browser/extensions/chrome_extension_function.h"
 #include "chrome/common/extensions/api/hotword_private.h"
+#include "extensions/browser/browser_context_keyed_api_factory.h"
 
 class Profile;
 
@@ -17,23 +17,31 @@ namespace extensions {
 
 // Listens for changes in disable/enabled state and forwards as an extension
 // event.
-class HotwordPrivateEventService : public ProfileKeyedAPI  {
+class HotwordPrivateEventService : public BrowserContextKeyedAPI {
  public:
-  explicit HotwordPrivateEventService(Profile* profile);
-  virtual ~HotwordPrivateEventService();
+  explicit HotwordPrivateEventService(content::BrowserContext* context);
+  ~HotwordPrivateEventService() override;
 
-  // ProfileKeyedAPI implementation.
-  virtual void Shutdown() OVERRIDE;
-  static ProfileKeyedAPIFactory<HotwordPrivateEventService>*
+  // BrowserContextKeyedAPI implementation.
+  void Shutdown() override;
+  static BrowserContextKeyedAPIFactory<HotwordPrivateEventService>*
       GetFactoryInstance();
   static const char* service_name();
 
   void OnEnabledChanged(const std::string& pref_name);
 
+  void OnHotwordSessionRequested();
+
+  void OnHotwordSessionStopped();
+
+  void OnHotwordTriggered();
+
+  void OnFinalizeSpeakerModel();
+
  private:
-  friend class ProfileKeyedAPIFactory<HotwordPrivateEventService>;
+  friend class BrowserContextKeyedAPIFactory<HotwordPrivateEventService>;
 
-  void SignalEvent();
+  void SignalEvent(const std::string& event_name);
 
   Profile* profile_;
   PrefChangeRegistrar pref_change_registrar_;
@@ -46,10 +54,36 @@ class HotwordPrivateSetEnabledFunction : public ChromeSyncExtensionFunction {
                              HOTWORDPRIVATE_SETENABLED)
 
  protected:
-  virtual ~HotwordPrivateSetEnabledFunction() {}
+  ~HotwordPrivateSetEnabledFunction() override {}
+
+  // ExtensionFunction:
+  bool RunSync() override;
+};
+
+class HotwordPrivateSetAudioLoggingEnabledFunction
+    : public ChromeSyncExtensionFunction {
+ public:
+  DECLARE_EXTENSION_FUNCTION("hotwordPrivate.setAudioLoggingEnabled",
+                             HOTWORDPRIVATE_SETAUDIOLOGGINGENABLED)
+
+ protected:
+  ~HotwordPrivateSetAudioLoggingEnabledFunction() override {}
+
+  // ExtensionFunction:
+  bool RunSync() override;
+};
+
+class HotwordPrivateSetHotwordAlwaysOnSearchEnabledFunction
+    : public ChromeSyncExtensionFunction {
+ public:
+  DECLARE_EXTENSION_FUNCTION("hotwordPrivate.setHotwordAlwaysOnSearchEnabled",
+                             HOTWORDPRIVATE_SETHOTWORDALWAYSONSEARCHENABLED)
+
+ protected:
+  ~HotwordPrivateSetHotwordAlwaysOnSearchEnabledFunction() override {}
 
   // ExtensionFunction:
-  virtual bool RunImpl() OVERRIDE;
+  bool RunSync() override;
 };
 
 class HotwordPrivateGetStatusFunction : public ChromeSyncExtensionFunction {
@@ -58,10 +92,88 @@ class HotwordPrivateGetStatusFunction : public ChromeSyncExtensionFunction {
                              HOTWORDPRIVATE_GETSTATUS)
 
  protected:
-  virtual ~HotwordPrivateGetStatusFunction() {}
+  ~HotwordPrivateGetStatusFunction() override {}
+
+  // ExtensionFunction:
+  bool RunSync() override;
+};
+
+class HotwordPrivateSetHotwordSessionStateFunction
+    : public ChromeSyncExtensionFunction {
+ public:
+  DECLARE_EXTENSION_FUNCTION("hotwordPrivate.setHotwordSessionState",
+                             HOTWORDPRIVATE_SETHOTWORDSESSIONSTATE);
+
+ protected:
+  ~HotwordPrivateSetHotwordSessionStateFunction() override {}
+
+  // ExtensionFunction:
+  bool RunSync() override;
+};
+
+class HotwordPrivateNotifyHotwordRecognitionFunction
+    : public ChromeSyncExtensionFunction {
+ public:
+  DECLARE_EXTENSION_FUNCTION("hotwordPrivate.notifyHotwordRecognition",
+                             HOTWORDPRIVATE_NOTIFYHOTWORDRECOGNITION);
+
+ protected:
+  ~HotwordPrivateNotifyHotwordRecognitionFunction() override {}
+
+  // ExtensionFunction:
+  bool RunSync() override;
+};
+
+class HotwordPrivateGetLaunchStateFunction :
+    public ChromeSyncExtensionFunction {
+ public:
+  DECLARE_EXTENSION_FUNCTION("hotwordPrivate.getLaunchState",
+                             HOTWORDPRIVATE_GETLAUNCHSTATE)
+
+ protected:
+  ~HotwordPrivateGetLaunchStateFunction() override {}
+
+  // ExtensionFunction:
+  bool RunSync() override;
+};
+
+class HotwordPrivateStartTrainingFunction :
+    public ChromeSyncExtensionFunction {
+ public:
+  DECLARE_EXTENSION_FUNCTION("hotwordPrivate.startTraining",
+                             HOTWORDPRIVATE_STARTTRAINING)
+
+ protected:
+  ~HotwordPrivateStartTrainingFunction() override {}
+
+  // ExtensionFunction:
+  bool RunSync() override;
+};
+
+class HotwordPrivateFinalizeSpeakerModelFunction :
+    public ChromeSyncExtensionFunction {
+ public:
+  DECLARE_EXTENSION_FUNCTION("hotwordPrivate.finalizeSpeakerModel",
+                             HOTWORDPRIVATE_FINALIZESPEAKERMODEL)
+
+ protected:
+  ~HotwordPrivateFinalizeSpeakerModelFunction() override {}
+
+  // ExtensionFunction:
+  bool RunSync() override;
+};
+
+class HotwordPrivateStopTrainingFunction :
+    public ChromeSyncExtensionFunction {
+ public:
+  DECLARE_EXTENSION_FUNCTION("hotwordPrivate.stopTraining",
+                             HOTWORDPRIVATE_STOPTRAINING)
+
+ protected:
+  ~HotwordPrivateStopTrainingFunction() override {}
 
   // ExtensionFunction:
-  virtual bool RunImpl() OVERRIDE;
+  bool RunSync() override;
 };
 
 }  // namespace extensions