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 }; 55