diff --git a/src/ext/conf/ActionList.js b/src/ext/conf/ActionList.js index 74fdc76..ccc3687 100644 --- a/src/ext/conf/ActionList.js +++ b/src/ext/conf/ActionList.js @@ -101,7 +101,7 @@ var ActionList = { page: true } }, - 'set-zoom': { + 'change-zoom': { name: 'Zoom', args: [{ name: 'Zoom level increase/decrease', @@ -112,6 +112,17 @@ var ActionList = { page: true, } }, + 'set-zoom': { + name: 'Set zoom level', + args: [{ + name: 'Zoom level increase/decrease', + customArg: true, + hintHTML: 'Examples: 0.5 sets zoom to 50%, 1 sets zoom to 100%, 2 sets zoom to 200%. Don\'t use negative values unless you want to experience Australian youtube.' + }], + scopes: { + page: true, + } + }, 'set-extension-mode': { name: 'Set extension mode', args: [{ diff --git a/src/ext/conf/ExtensionConf.js b/src/ext/conf/ExtensionConf.js index 0855298..7aa4c5e 100644 --- a/src/ext/conf/ExtensionConf.js +++ b/src/ext/conf/ExtensionConf.js @@ -329,7 +329,7 @@ var ExtensionConf = { name: 'Zoom in', label: 'Zoom', cmd: [{ - action: 'set-zoom', + action: 'change-zoom', arg: 0.1 }], scopes: { @@ -353,7 +353,7 @@ var ExtensionConf = { name: 'Zoom out', label: 'Unzoom', cmd: [{ - action: 'set-zoom', + action: 'change-zoom', arg: -0.1 }], scopes: { diff --git a/src/ext/lib/ActionHandler.js b/src/ext/lib/ActionHandler.js index 9b590b3..ae48785 100644 --- a/src/ext/lib/ActionHandler.js +++ b/src/ext/lib/ActionHandler.js @@ -184,8 +184,10 @@ class ActionHandler { if (action.scope === 'page') { if (cmd.action === "set-ar") { this.pageInfo.setAr(cmd.arg); - } else if (cmd.action === "set-zoom") { + } else if (cmd.action === "change-zoom") { this.pageInfo.zoomStep(cmd.arg); + } else if (cmd.action === "set-zoom") { + this.pageInfo.setZoom(cmd.arg); } else if (cmd.action === "set-stretch") { this.pageInfo.setStretchMode(cmd.arg); } else if (cmd.action === "toggle-pan") { diff --git a/src/ext/lib/comms/CommsClient.js b/src/ext/lib/comms/CommsClient.js index 4c5f4da..6a7d188 100644 --- a/src/ext/lib/comms/CommsClient.js +++ b/src/ext/lib/comms/CommsClient.js @@ -84,7 +84,9 @@ class CommsClient { // todo: autoArStatus this.pageInfo.resumeProcessing(message.autoArStatus, message.playing); } else if (message.cmd === 'set-zoom') { - this.pageInfo.setZoom(message.zoom, true, message.playing); + this.pageInfo.setZoom(message.arg, true, message.playing); + } else if (message.cmd === 'change-zoom') { + this.pageInfo.zoomStep(message.arg, message.playing); } else if (message.cmd === 'mark-player') { this.pageInfo.markPlayer(message.name, message.color); } else if (message.cmd === 'unmark-player') { diff --git a/src/ext/lib/video-transform/Zoom.js b/src/ext/lib/video-transform/Zoom.js index 2f82e67..32a7a83 100644 --- a/src/ext/lib/video-transform/Zoom.js +++ b/src/ext/lib/video-transform/Zoom.js @@ -39,10 +39,14 @@ class Zoom { } setZoom(scale, no_announce){ + if (Debug.debug) { + console.log("[Zoom::setZoom] Setting zoom to", scale, "!"); + } + // NOTE: SCALE IS NOT LOGARITHMIC - if(scale < Math.pow(this.minScale)) { + if(scale < Math.pow(2, this.minScale)) { scale = this.minScale; - } else if (scale > Math.pow(this.maxScale)) { + } else if (scale > Math.pow(2, this.maxScale)) { scale = this.maxScale; } @@ -55,8 +59,16 @@ class Zoom { } applyZoom(stretchFactors){ + if (Debug.debug) { + console.log("[Zoom::setZoom] Applying zoom. Stretch factors pre:", stretchFactors, " —> scale:", this.scale); + } + stretchFactors.xFactor *= this.scale; stretchFactors.yFactor *= this.scale; + + if (Debug.debug) { + console.log("[Zoom::setZoom] Applying zoom. Stretch factors post:", stretchFactors); + } } } diff --git a/src/options/controls-settings/controls-settings.vue b/src/options/controls-settings/controls-settings.vue index 672f341..ba2d351 100644 --- a/src/options/controls-settings/controls-settings.vue +++ b/src/options/controls-settings/controls-settings.vue @@ -43,6 +43,7 @@ + + + + + diff --git a/src/popup/panels/VideoPanel.vue b/src/popup/panels/VideoPanel.vue index 8d00ebf..e728fb0 100644 --- a/src/popup/panels/VideoPanel.vue +++ b/src/popup/panels/VideoPanel.vue @@ -2,10 +2,10 @@
Cropping mode:
-
+