Index: chrome/browser/resources/whispernet_proxy/js/wrapper.js |
diff --git a/chrome/browser/resources/whispernet_proxy/js/wrapper.js b/chrome/browser/resources/whispernet_proxy/js/wrapper.js |
index 7c3262b1c5823fdcc6e280e47794b8337dfa2e28..064088d5139097fdeaaa0f3ace1a06f10a54b753 100644 |
--- a/chrome/browser/resources/whispernet_proxy/js/wrapper.js |
+++ b/chrome/browser/resources/whispernet_proxy/js/wrapper.js |
@@ -49,7 +49,7 @@ function WhisperEncoder(params, whisperNacl) { |
sample_rate: params.sampleRate || 48000.0, |
upsampling_factor: params.bitsPerSample || 16, |
}; |
- this.whisperNacl_.send(JSON.stringify(msg)); |
+ this.whisperNacl_.send(msg); |
} |
/** |
@@ -71,7 +71,7 @@ WhisperEncoder.prototype.encode = function(token, audible, raw) { |
use_dtmf: audible, |
return_raw_samples: raw |
}; |
- this.whisperNacl_.send(JSON.stringify(msg)); |
+ this.whisperNacl_.send(msg); |
}; |
/** |
@@ -119,7 +119,7 @@ function WhisperDecoder(params, whisperNacl) { |
max_candidates: 1, |
max_buffer_duration_in_seconds: 3 |
}; |
- this.whisperNacl_.send(JSON.stringify(msg)); |
+ this.whisperNacl_.send(msg); |
} |
/** |
@@ -129,7 +129,7 @@ WhisperDecoder.prototype.wipeDecoder = function() { |
var msg = { |
type: 'wipe_decode_buffer' |
}; |
- this.whisperNacl_.send(JSON.stringify(msg)); |
+ this.whisperNacl_.send(msg); |
}; |
/** |
@@ -139,17 +139,34 @@ WhisperDecoder.prototype.detectBroadcast = function() { |
var msg = { |
type: 'detect_broadcast' |
}; |
- this.whisperNacl_.send(JSON.stringify(msg)); |
+ this.whisperNacl_.send(msg); |
}; |
/** |
* Method to request the decoder to process samples. |
+ * @param {string} type Type of decoding to perform. |
Daniel Erat
2014/10/17 22:25:59
same here
rkc
2014/10/18 00:21:54
Ditto.
|
* @param {ArrayBuffer} samples Array of samples to process. |
*/ |
-WhisperDecoder.prototype.processSamples = function(samples) { |
- // For sample processing, the Nacl module doesn't expect any frills in the |
- // message, just send the samples directly. |
- this.whisperNacl_.send(samples); |
+WhisperDecoder.prototype.processSamples = function(type, samples) { |
+ // We set the type value to 01b for audible, 10b for inaudible and 11b for |
+ // both. This is due to not having any other way of actually sharing enum |
+ // values across JS/Nacl boundaries - hence, viva la 1980's coding vida! |
+ var typeVal = 0; |
+ if (type == 'audible') { |
+ typeVal = 1; |
+ } else if (type == 'inaudible') { |
+ typeVal = 2; |
+ } else if (type == 'both') { |
+ typeVal = 3; |
+ } |
+ |
+ var msg = { |
+ type: 'decode_tokens', |
+ request_type: typeVal, |
+ data: samples, |
+ }; |
+ |
+ this.whisperNacl_.send(msg); |
}; |
/** |
@@ -179,7 +196,7 @@ WhisperDecoder.prototype.onDetectBroadcast = function(callback) { |
WhisperDecoder.prototype.onNaclMessage_ = function(e) { |
var msg = e.data; |
if (msg.type == 'decode_tokens_response') { |
- this.handleCandidates_(JSON.parse(msg.tokens), msg.audible); |
+ this.handleCandidates_(msg.tokens, msg.audible); |
} else if (msg.type == 'detect_broadcast_response') { |
this.detectBroadcastCallback_(msg.detected); |
} |