From 1fd742464d258ce75ffc02ee526952c543884ebd Mon Sep 17 00:00:00 2001 From: Chrysa Papadopoulou Date: Tue, 14 Feb 2017 16:04:58 +0200 Subject: Added key bindings for loop --- src/js/plyr.js | 42 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/js/plyr.js b/src/js/plyr.js index 490c2626..4f158f04 100644 --- a/src/js/plyr.js +++ b/src/js/plyr.js @@ -40,6 +40,11 @@ loop: false, loopin: 0, loopout: null, + loopKeyEvents: { + toggleLoop: 76, + loopin: 73, + loopout: 79 + }, seekTime: 10, volume: 10, volumeMin: 0, @@ -2463,7 +2468,7 @@ // Toggle loop function toggleLoop(toggle) { - if (['loopin', 'loopout', 'loopall'].indexOf(toggle) === -1) { + if (['loopin', 'loopout', 'loopall', 'toggle'].indexOf(toggle) === -1) { toggle = 'loopclear'; } @@ -2486,6 +2491,15 @@ config.loopin = 0; config.loopout = plyr.media.duration - 2; break; + case 'toggle': + if (config.loop) { + config.loopin = 0; + config.loopout = null; + } else { + config.loopin = 0; + config.loopout = plyr.media.duration - 2; + } + break; default: config.loopin = 0; config.loopout = null; @@ -3528,8 +3542,9 @@ // Which keycodes should we prevent default var preventDefault = [48, 49, 50, 51, 52, 53, 54, 56, 57, 32, 75, 38, 40, 77, 39, 37, 70, 67]; var checkFocus = [38, 40]; + var loopKeyEventsValues = Object.values(config.loopKeyEvents); - if (inArray(checkFocus, code)) { + if (inArray(checkFocus, code) || inArray(loopKeyEventsValues, code)) { var focused = getFocusElement(); if (is.htmlElement(focused) && getFocusElement().type === "radio") { @@ -3608,6 +3623,29 @@ break; } + //Loop events + var loopKeyBindings = config.loopKeyEvents; + var hasBindedKey = loopKeyEventsValues.filter(function(el) { + return preventDefault.indexOf(el) > -1; + }).length >= 1; + + if (hasBindedKey) { + loopKeyBindings = defaults.loopKeyEvents; + } + console.log(loopKeyBindings,'~~~loopKeyBindings') + + switch (code) { + case loopKeyBindings.toggleLoop: + toggleLoop('toggle'); + break; + case loopKeyBindings.loopin: + toggleLoop('loopin'); + break; + case loopKeyBindings.loopout: + toggleLoop('loopout'); + break; + } + // Escape is handle natively when in full screen // So we only need to worry about non native if (!support.fullscreen && plyr.isFullscreen && code === 27) { -- cgit v1.2.3 From 3f45ef4908e560a130f0d3bffbddf216d89423fe Mon Sep 17 00:00:00 2001 From: Chrysa Papadopoulou Date: Tue, 14 Feb 2017 16:29:05 +0200 Subject: Removed console --- src/js/plyr.js | 1 - 1 file changed, 1 deletion(-) (limited to 'src') diff --git a/src/js/plyr.js b/src/js/plyr.js index 4f158f04..d2973952 100644 --- a/src/js/plyr.js +++ b/src/js/plyr.js @@ -3632,7 +3632,6 @@ if (hasBindedKey) { loopKeyBindings = defaults.loopKeyEvents; } - console.log(loopKeyBindings,'~~~loopKeyBindings') switch (code) { case loopKeyBindings.toggleLoop: -- cgit v1.2.3 From 21d478d39602408aeb968c4e263d8e9bc712757e Mon Sep 17 00:00:00 2001 From: Chrysa Papadopoulou Date: Tue, 14 Feb 2017 17:15:27 +0200 Subject: Add looping key bindings to allowed array --- src/js/plyr.js | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src') diff --git a/src/js/plyr.js b/src/js/plyr.js index d2973952..6043eef6 100644 --- a/src/js/plyr.js +++ b/src/js/plyr.js @@ -3497,6 +3497,9 @@ allowed = [48, 49, 50, 51, 52, 53, 54, 56, 57, 75, 77, 70, 67], count = get().length; + //add also to allowed the keys of looping events + allowed = allowed.concat(Object.values(config.loopKeyEvents)); + // Only handle global key press if there's only one player // and the key is in the allowed keys // and if the focused element is not editable (e.g. text input) -- cgit v1.2.3