diff --git a/inject.js b/inject.js index 2f2bafc..62cc05f 100644 --- a/inject.js +++ b/inject.js @@ -5,6 +5,7 @@ chrome.extension.sendMessage({}, function(response) { speed: 1.0, // default 1x speedStep: 0.1, // default 0.1x rewindTime: 10, // default 10s + resetKeyCode: 82, // default: R rewindKeyCode: 65, // default: A slowerKeyCode: 83, // default: S fasterKeyCode: 68, // default: D @@ -17,6 +18,7 @@ chrome.extension.sendMessage({}, function(response) { tc.settings.speed = Number(storage.speed); tc.settings.speedStep = Number(storage.speedStep); tc.settings.rewindTime = Number(storage.rewindTime); + tc.settings.resetKeyCode = Number(storage.resetKeyCode); tc.settings.rewindKeyCode = Number(storage.rewindKeyCode); tc.settings.slowerKeyCode = Number(storage.slowerKeyCode); tc.settings.fasterKeyCode = Number(storage.fasterKeyCode); @@ -146,6 +148,8 @@ chrome.extension.sendMessage({}, function(response) { // https://code.google.com/p/chromium/codesearch#chromium/src/media/filters/audio_renderer_algorithm.cc&l=49 var s = Math.max(v.playbackRate - tc.settings.speedStep, 0); setSpeed(v, s); + } else if (action === 'reset') { + setSpeed(v, 1.0); } } }); @@ -166,6 +170,8 @@ chrome.extension.sendMessage({}, function(response) { runAction('faster') } else if (keyCode == tc.settings.slowerKeyCode) { runAction('slower') + } else if (keyCode == tc.settings.resetKeyCode) { + runAction('reset') } return false; diff --git a/options.html b/options.html index e749301..b0fc1c0 100644 --- a/options.html +++ b/options.html @@ -15,13 +15,17 @@
-
+
- + + +
+
+
- +
diff --git a/options.js b/options.js index c7e954b..71c3730 100644 --- a/options.js +++ b/options.js @@ -1,3 +1,13 @@ +var tcDefaults = { + speedStep: 0.1, + rewindTime: 10, + resetKeyCode: 82, + rewindKeyCode: 65, + slowerKeyCode: 83, + fasterKeyCode: 68, + rememberSpeed: false +}; + function recordKeyPress(e) { var normalizedChar = String.fromCharCode(e.keyCode).toUpperCase(); e.target.value = normalizedChar; @@ -33,24 +43,27 @@ function save_options() { var speedStep = document.getElementById('speedStep').value; var rewindTime = document.getElementById('rewindTime').value; + var resetKeyCode = document.getElementById('resetKeyInput').keyCode; var rewindKeyCode = document.getElementById('rewindKeyInput').keyCode; var slowerKeyCode = document.getElementById('slowerKeyInput').keyCode; var fasterKeyCode = document.getElementById('fasterKeyInput').keyCode; var rememberSpeed = document.getElementById('rememberSpeed').checked; - speedStep = isNaN(speedStep) ? 0.1 : Number(speedStep); - rewindTime = isNaN(rewindTime) ? 10 : Number(rewindTime); - rewindKeyCode = isNaN(rewindKeyCode) ? 65 : rewindKeyCode; - slowerKeyCode = isNaN(slowerKeyCode) ? 83 : slowerKeyCode; - fasterKeyCode = isNaN(fasterKeyCode) ? 68 : fasterKeyCode; + speedStep = isNaN(speedStep) ? tcDefaults.speedStep : Number(speedStep); + rewindTime = isNaN(rewindTime) ? tcDefaults.rewindTime : Number(rewindTime); + resetKeyCode = isNaN(resetKeyCode) ? tcDefaults.resetKeyCode : resetKeyCode; + rewindKeyCode = isNaN(rewindKeyCode) ? tcDefaults.rewindKeyCode : rewindKeyCode; + slowerKeyCode = isNaN(slowerKeyCode) ? tcDefaults.slowerKeyCode : slowerKeyCode; + fasterKeyCode = isNaN(fasterKeyCode) ? tcDefaults.fasterKeyCode : fasterKeyCode; chrome.storage.sync.set({ speedStep: speedStep, rewindTime: rewindTime, + resetKeyCode: resetKeyCode, rewindKeyCode: rewindKeyCode, slowerKeyCode: slowerKeyCode, fasterKeyCode: fasterKeyCode, - rememberSpeed: rememberSpeed + rememberSpeed: rememberSpeed }, function() { // Update status to let user know options were saved. var status = document.getElementById('status'); @@ -63,16 +76,10 @@ function save_options() { // Restores options from chrome.storage function restore_options() { - chrome.storage.sync.get({ - speedStep: 0.1, - rewindTime: 10, - rewindKeyCode: 65, - slowerKeyCode: 83, - fasterKeyCode: 68, - rememberSpeed: false - }, function(storage) { + chrome.storage.sync.get(tcDefaults, function(storage) { document.getElementById('speedStep').value = storage.speedStep.toFixed(2); document.getElementById('rewindTime').value = storage.rewindTime; + updateShortcutInputText('resetKeyInput', storage.resetKeyCode); updateShortcutInputText('rewindKeyInput', storage.rewindKeyCode); updateShortcutInputText('slowerKeyInput', storage.slowerKeyCode); updateShortcutInputText('fasterKeyInput', storage.fasterKeyCode); @@ -81,14 +88,7 @@ function restore_options() { } function restore_defaults() { - chrome.storage.sync.set({ - speedStep: 0.1, - rewindTime: 10, - rewindKeyCode: 65, - slowerKeyCode: 83, - fasterKeyCode: 68, - rememberSpeed: false - }, function() { + chrome.storage.sync.set(tcDefaults, function() { restore_options(); // Update status to let user know options were saved. var status = document.getElementById('status'); @@ -111,6 +111,7 @@ document.addEventListener('DOMContentLoaded', function () { document.getElementById('save').addEventListener('click', save_options); document.getElementById('restore').addEventListener('click', restore_defaults); + initShortcutInput('resetKeyInput'); initShortcutInput('rewindKeyInput'); initShortcutInput('slowerKeyInput'); initShortcutInput('fasterKeyInput');