• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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// Use the <code>chrome.copresencePrivate</code> API to interface with Chrome
6// from the whispernet_proxy extension.
7namespace copresencePrivate {
8
9  dictionary PlayParameters {
10    double sampleRate;
11    long bitsPerSample;
12    double carrierFrequency;
13    long repetitions;
14  };
15
16  dictionary RecordParameters {
17    double sampleRate;
18    long bitsPerSample;
19    long channels;
20    double carrierFrequency;
21  };
22
23  dictionary AudioParameters {
24    PlayParameters play;
25    RecordParameters record;
26  };
27
28  dictionary Token {
29    DOMString token;
30    boolean audible;
31  };
32
33  interface Functions {
34    // Send a boolean indicating whether our initialization was successful.
35    static void sendInitialized(boolean success);
36    // Sends an array of found tokens to Chrome.
37    static void sendFound(Token[] tokens);
38    // Send an array buffer of samples encoded for the specified token.
39    static void sendSamples(Token token, ArrayBuffer samples);
40    // Send a boolean indicating whether we detected a broadcast or not.
41    static void sendDetect(boolean detected);
42  };
43
44  interface Events {
45    // Fired to request initialization of the whisper.net library.
46    static void onInitialize(AudioParameters audioParams);
47    // Fired to request encoding of the given token.
48    static void onEncodeTokenRequest(DOMString base64Token, boolean audible);
49    // Fired when we have new samples to decode.
50    static void onDecodeSamplesRequest(ArrayBuffer audioSamples);
51    // Fired to request a DetectBroadcast.
52    static void onDetectBroadcastRequest();
53  };
54};
55