Skip to content

Commit 22ae84b

Browse files
committed
[#72] Add 'u' to undo last jump in video
1 parent 5088def commit 22ae84b

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

src/scripts/page/player.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { findTime } from './components/htmlhelper';
55
import createQueueButton, { toggleQueueButton } from './components/queue';
66
import createSpeedDial from './components/speeddial';
77
import attachVolumeText, { toggleVolumeShow } from './components/volume';
8-
import { init as initDispatch, loadPrefix } from './dispatcher';
8+
import { init as initDispatch, loadPrefix, navigatePrefix } from './dispatcher';
99
import { Message, arrFromLengthy, getFromStorage, notification, onStorageChange, parseTypeObject, replyMessage, sendMessage } from './sharedpage';
1010

1111
export type Player = HTMLVideoElement & { _enhancerInit: boolean; };
@@ -23,6 +23,7 @@ const optionsDefaults = {
2323
playerSettings: {} as Partial<Settings>,
2424
};
2525
let options = { ...optionsDefaults };
26+
let lastPositon: number | undefined = undefined;
2627
const msgs: Record<string, string> = {};
2728

2829
type Msg = { type: string, name?: string, [key: string]: any; };
@@ -59,6 +60,7 @@ export const init = async () => {
5960
document.addEventListener('wheel', wheelHandler, { passive: false });
6061
document.addEventListener('pointerup', clickHandler, { capture: true });
6162
document.addEventListener(`${loadPrefix}-video`, initPlayer);
63+
document.addEventListener(navigatePrefix, () => lastPositon = undefined);
6264
await initDispatch();
6365

6466
msgs['playerFrameBack'] = await sendMessage(Message.GET_MESSAGE, { message: 'playerFrameBack' });
@@ -255,12 +257,15 @@ const keydownHandler = (e: KeyboardEvent) => {
255257
break;
256258
case '0': case '1': case '2': case '3': case '4':
257259
case '5': case '6': case '7': case '8': case '9':
260+
lastPositon = player.currentTime;
258261
player.currentTime = player.duration * (+pressedKey) / 10;
259262
break;
260263
case 'Home':
264+
lastPositon = player.currentTime;
261265
player.currentTime = 0;
262266
break;
263267
case 'End':
268+
lastPositon = player.currentTime;
264269
player.currentTime = player.duration;
265270
break;
266271
case '<':
@@ -283,6 +288,9 @@ const keydownHandler = (e: KeyboardEvent) => {
283288
case 'p':
284289
sendMessage(Message.QUEUE_PREV, null, false);
285290
break;
291+
case 'u':
292+
if (lastPositon != undefined) player.currentTime = lastPositon;
293+
break;
286294
default:
287295
return;
288296
}

0 commit comments

Comments
 (0)