Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / chrome / common / extensions / api / copresence_private.idl
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.
7 namespace 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 };