Home | History | Annotate | Download | only in api
      1 // Copyright 2014 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 // The <code>chrome.hotwordPrivate</code> API allows extensions to access and
      6 // mutate the preference for enabling hotword search. It also provides
      7 // information on whether the hotword search is available. This API provides an
      8 // event interface to transmit to the extension a signal that the preference fo
      9 // hotword search has change.
     10 //
     11 // For an FYI, visit http://goo.gl/AyHbkH
     12 
     13 [nodoc] namespace hotwordPrivate {
     14 
     15   dictionary StatusDetails {
     16     // Whether the hotword preference has been set.
     17     boolean enabledSet;
     18 
     19     // If the hotword extension is enabled. Will always be false if |available|
     20     // is false.
     21     boolean enabled;
     22 
     23     // Whether the hotword extension is available to be enabled
     24     boolean available;
     25 
     26     // Whether the sound of "Ok, Google" plus a few seconds before is sent
     27     // back to Google.
     28     boolean audioLoggingEnabled;
     29   };
     30 
     31   // The type of the recognized hotword. Right now it only has 'search' but
     32   // could be expanded to other types of actions in the future.
     33   enum HotwordType { search };
     34 
     35   callback GenericDoneCallback = void ();
     36   callback StatusDetailsCallback = void(StatusDetails result);
     37 
     38   interface Functions {
     39     // Sets the current enabled state of hotword search.
     40     // True: enable hotword search. False: disable hotword search.
     41     static void setEnabled(boolean state,
     42                            optional GenericDoneCallback callback);
     43 
     44     // Retrieves the current state of hotword search.
     45     // The result is put into a StatusDetails object.
     46     static void getStatus(StatusDetailsCallback callback);
     47 
     48     // Sets the current enabled state of audio logging in the extension.
     49     // True: logging enabled. False: no logging.
     50     static void setAudioLoggingEnabled(boolean state,
     51                                        optional GenericDoneCallback callback);
     52 
     53     // Sets the current state of the browser-requested hotword session.
     54     static void setHotwordSessionState(boolean started,
     55                                        optional GenericDoneCallback callback);
     56 
     57     // Notifies that a hotword has been recognized in the browser-requested
     58     // hotword session.
     59     static void notifyHotwordRecognition(HotwordType type,
     60                                          optional GenericDoneCallback callback);
     61   };
     62 
     63   interface Events {
     64     // Fired when the hotword search enabled preference is changed.
     65     static void onEnabledChanged();
     66 
     67     // Fired when the browser wants to start a hotword session.
     68     static void onHotwordSessionRequested();
     69 
     70     // Fired when the browser wants to stop the requested hotword session.
     71     static void onHotwordSessionStopped();
     72   };
     73 };
     74