Index: chrome/browser/resources/chromeos/chromevox/cvox2/background/earcon_engine.js |
diff --git a/chrome/browser/resources/chromeos/chromevox/cvox2/background/earcon_engine.js b/chrome/browser/resources/chromeos/chromevox/cvox2/background/earcon_engine.js |
index 10ab4d749687511e677466f85b149b9e039d72f5..8d00b9683e6e9d7761e82f04f53fbc78da310c5d 100644 |
--- a/chrome/browser/resources/chromeos/chromevox/cvox2/background/earcon_engine.js |
+++ b/chrome/browser/resources/chromeos/chromevox/cvox2/background/earcon_engine.js |
@@ -157,6 +157,11 @@ EarconEngine.HALF_STEP = Math.pow(2.0, 1.0 / 12.0); |
EarconEngine.BASE_URL = chrome.extension.getURL('cvox2/background/earcons/'); |
/** |
+ * The maximum value to pass to PannerNode.setPosition. |
+ */ |
+EarconEngine.MAX_PAN_X_POSITION = 2; |
dmazzoni
2016/12/05 20:07:45
I'd call it something like ABS_POSITION or MAGNITU
David Tseng
2016/12/08 19:05:37
Sure; done.
|
+ |
+/** |
* Fetches a sound asynchronously and loads its data into an AudioBuffer. |
* |
* @param {string} name The name of the sound to load. |
@@ -208,10 +213,11 @@ EarconEngine.prototype.createCommonFilters = function(properties) { |
if (properties.pan !== undefined) { |
pan = properties.pan; |
} |
+ |
if (pan != 0) { |
var panNode = this.context_.createPanner(); |
- panNode.setPosition(pan, 0, -1); |
- panNode.setOrientation(0, 0, 1); |
+ panNode.setPosition(pan, 0, 0); |
+ panNode.setOrientation(0, -1, 0); |
dmazzoni
2016/12/05 20:07:45
Are you sure this is right? Did the original orien
David Tseng
2016/12/08 19:05:37
I was fiddling with the audio listener earlier. Re
|
last.connect(panNode); |
last = panNode; |
} |
@@ -713,3 +719,23 @@ EarconEngine.prototype.cancelProgress = function() { |
window.clearInterval(this.progressIntervalID_); |
this.progressIntervalID_ = null; |
}; |
+ |
+/** |
+ * @param {chrome.automation.Rect} rect |
+ * @param {chrome.automation.Rect} container |
+ */ |
+EarconEngine.prototype.setPositionForRect = function(rect, container) { |
+ // The horizontal position computed as a percentage relative to its container. |
+ var left = (rect.left + rect.width / 2) / container.width; |
dmazzoni
2016/12/05 20:07:45
Maybe just x? It's really the midpoint of the rect
David Tseng
2016/12/08 19:05:37
Done.
|
+ |
+ // Clamp. |
+ left = left > 1.0 ? 1.0 : left; |
dmazzoni
2016/12/05 20:07:45
x = Math.max(Math.min(x, 1.0), 0.0) or something l
David Tseng
2016/12/08 19:05:37
Done.
|
+ left = left < 0 ? 0 : left; |
+ |
+ // Map to between the negative maximum pan x position and the positive max x |
+ // pan position. |
+ left = left * 2 * EarconEngine.MAX_PAN_X_POSITION - |
dmazzoni
2016/12/05 20:07:45
x = (2 * x - 1) * EarconEngine.MAX_PAN_X_POSITION
David Tseng
2016/12/08 19:05:37
Done.
|
+ EarconEngine.MAX_PAN_X_POSITION; |
+ |
+ this.masterPan = left; |
+}; |