Added "Remember Playback Speed" option

Option to control the use of the last video's playback speed for a newly
loaded video
This commit is contained in:
Radu Filip
2014-08-16 17:18:52 +01:00
parent dfb86cd287
commit e366a38355
4 changed files with 21 additions and 6 deletions

View File

@@ -8,8 +8,11 @@ chrome.extension.sendMessage({}, function(response) {
this.video = target; this.video = target;
this.initializeControls(); this.initializeControls();
chrome.storage.sync.get('speed', function(storage) { chrome.storage.sync.get({
var speed = storage.speed ? storage.speed : '1.00'; speed: '1.00',
rememberSpeed: true
}, function(storage) {
var speed = storage.rememberSpeed ? storage.speed : '1.00';
target.playbackRate = speed; target.playbackRate = speed;
this.speedIndicator.textContent = speed; this.speedIndicator.textContent = speed;
}.bind(this)); }.bind(this));

View File

@@ -80,7 +80,11 @@ input[type="text"] {
label { label {
display: inline-block; display: inline-block;
width: 150px; width: 170px;
}
label[for=rememberSpeed] {
width: 200px;
} }
#status { #status {

View File

@@ -32,9 +32,13 @@
<input id="rewindTime" type="text" value=""/> <input id="rewindTime" type="text" value=""/>
</div> </div>
<div class="row"> <div class="row">
<label for="speedStep">Speed change step</label> <label for="speedStep">Speed Change Step</label>
<input id="speedStep" type="text" value=""/> <input id="speedStep" type="text" value=""/>
</div> </div>
<div class="row">
<label for="rememberSpeed">Remember Playback Speed</label>
<input id="rememberSpeed" type="checkbox"/>
</div>
</section> </section>
<button id="save">Save</button> <button id="restore">Restore Defaults</button> <button id="save">Save</button> <button id="restore">Restore Defaults</button>

View File

@@ -36,6 +36,7 @@ function save_options() {
var rewindKeyCode = document.getElementById('rewindKeyInput').keyCode; var rewindKeyCode = document.getElementById('rewindKeyInput').keyCode;
var slowerKeyCode = document.getElementById('slowerKeyInput').keyCode; var slowerKeyCode = document.getElementById('slowerKeyInput').keyCode;
var fasterKeyCode = document.getElementById('fasterKeyInput').keyCode; var fasterKeyCode = document.getElementById('fasterKeyInput').keyCode;
var rememberSpeed = document.getElementById('rememberSpeed').checked;
speedStep = isNaN(speedStep) ? 0.1 : Number(speedStep); speedStep = isNaN(speedStep) ? 0.1 : Number(speedStep);
rewindTime = isNaN(rewindTime) ? 10 : Number(rewindTime); rewindTime = isNaN(rewindTime) ? 10 : Number(rewindTime);
@@ -48,7 +49,8 @@ function save_options() {
rewindTime: rewindTime, rewindTime: rewindTime,
rewindKeyCode: rewindKeyCode, rewindKeyCode: rewindKeyCode,
slowerKeyCode: slowerKeyCode, slowerKeyCode: slowerKeyCode,
fasterKeyCode: fasterKeyCode fasterKeyCode: fasterKeyCode,
rememberSpeed: rememberSpeed
}, function() { }, function() {
// Update status to let user know options were saved. // Update status to let user know options were saved.
var status = document.getElementById('status'); var status = document.getElementById('status');
@@ -66,13 +68,15 @@ function restore_options() {
rewindTime: 10, rewindTime: 10,
rewindKeyCode: 65, rewindKeyCode: 65,
slowerKeyCode: 83, slowerKeyCode: 83,
fasterKeyCode: 68 fasterKeyCode: 68,
rememberSpeed: true
}, function(storage) { }, function(storage) {
document.getElementById('speedStep').value = storage.speedStep.toFixed(2); document.getElementById('speedStep').value = storage.speedStep.toFixed(2);
document.getElementById('rewindTime').value = storage.rewindTime; document.getElementById('rewindTime').value = storage.rewindTime;
updateShortcutInputText('rewindKeyInput', storage.rewindKeyCode); updateShortcutInputText('rewindKeyInput', storage.rewindKeyCode);
updateShortcutInputText('slowerKeyInput', storage.slowerKeyCode); updateShortcutInputText('slowerKeyInput', storage.slowerKeyCode);
updateShortcutInputText('fasterKeyInput', storage.fasterKeyCode); updateShortcutInputText('fasterKeyInput', storage.fasterKeyCode);
document.getElementById('rememberSpeed').checked = storage.rememberSpeed;
}); });
} }