annotate web/light9-vidref-replay-stack.js @ 2417:ae4b90efb55a

start calibration tool
author drewp@bigasterisk.com
date Mon, 20 May 2024 01:28:12 -0700
parents 4556eebe5d73
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1951
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
1 import { LitElement, TemplateResult, html, css } from '/node_modules/lit-element/lit-element.js';
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
2 import debug from '/lib/debug/debug-build-es6.js';
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
3 import _ from '/lib/underscore/underscore-min-es6.js';
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
4 import { rounding } from '/node_modules/significant-rounding/index.js';
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
5
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
6 const log = debug('stack');
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
7
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
8 class Light9VidrefReplayStack extends LitElement {
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
9
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
10 static get properties() {
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
11 return {
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
12 songTime: { type: Number, attribute: false }, // from musicState.t but higher res
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
13 musicState: { type: Object, attribute: false },
1994
1b690005aabd little vidref player inside timeline
Drew Perttula <drewp@bigasterisk.com>
parents: 1986
diff changeset
14 players: { type: Array, attribute: false },
1b690005aabd little vidref player inside timeline
Drew Perttula <drewp@bigasterisk.com>
parents: 1986
diff changeset
15 size: { type: String, attribute: true }
1951
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
16 };
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
17 }
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
18
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
19 constructor() {
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
20 super();
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
21 this.musicState = {};
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
22 }
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
23
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
24 setVideoTimesFromSongTime() {
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
25 this.shadowRoot.querySelectorAll('light9-vidref-replay').forEach(
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
26 (r) => {
1954
3ae1e7f8db23 vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents: 1951
diff changeset
27 r.setVideoTimeFromSongTime(this.songTime, this.musicState.playing);
1951
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
28 });
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
29 }
1954
3ae1e7f8db23 vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents: 1951
diff changeset
30 nudgeTime(dt) {
3ae1e7f8db23 vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents: 1951
diff changeset
31 this.songTime += dt;
3ae1e7f8db23 vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents: 1951
diff changeset
32 log('song now', this.songTime);
3ae1e7f8db23 vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents: 1951
diff changeset
33 }
1994
1b690005aabd little vidref player inside timeline
Drew Perttula <drewp@bigasterisk.com>
parents: 1986
diff changeset
34 fineTime() {
1951
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
35 if (this.musicState.playing) {
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
36 const sinceLastUpdate = (Date.now() - this.musicState.reportTime) / 1000;
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
37 this.songTime = sinceLastUpdate + this.musicState.tStart;
1994
1b690005aabd little vidref player inside timeline
Drew Perttula <drewp@bigasterisk.com>
parents: 1986
diff changeset
38 } else if (this.lastFineTimePlayingState) {
1b690005aabd little vidref player inside timeline
Drew Perttula <drewp@bigasterisk.com>
parents: 1986
diff changeset
39 this.songTime = this.musicState.t;
1951
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
40 }
1994
1b690005aabd little vidref player inside timeline
Drew Perttula <drewp@bigasterisk.com>
parents: 1986
diff changeset
41 this.lastFineTimePlayingState = this.musicState.playing;
1951
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
42 requestAnimationFrame(this.fineTime.bind(this));
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
43 }
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
44
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
45 updated(changedProperties) {
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
46 if (changedProperties.has('songTime')) {
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
47 this.setVideoTimesFromSongTime();
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
48 }
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
49 }
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
50
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
51 firstUpdated() {
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
52 this.songTimeRangeInput = this.shadowRoot.querySelector('#songTime');
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
53
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
54 const ws = reconnectingWebSocket('../ascoltami/time/stream',
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
55 this.receivedSongAndTime.bind(this));
1994
1b690005aabd little vidref player inside timeline
Drew Perttula <drewp@bigasterisk.com>
parents: 1986
diff changeset
56 reconnectingWebSocket('../vidref/time/stream', this.receivedRemoteScrubbedTime.bind(this));
1951
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
57 // bug: upon connecting, clear this.song
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
58 this.fineTime();
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
59 }
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
60
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
61 receivedSongAndTime(msg) {
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
62 this.musicState = msg;
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
63 this.musicState.reportTime = Date.now();
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
64 this.musicState.tStart = this.musicState.t;
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
65
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
66 this.songTimeRangeInput.max = this.musicState.duration;
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
67
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
68 if (this.musicState.song != this.song) {
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
69 this.song = this.musicState.song;
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
70 this.getReplayMapForSong(this.song);
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
71 }
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
72 }
1986
c8f0d1b9a171 timeline scrubbing shows up on vidref (again)
drewp@bigasterisk.com
parents: 1954
diff changeset
73
c8f0d1b9a171 timeline scrubbing shows up on vidref (again)
drewp@bigasterisk.com
parents: 1954
diff changeset
74 receivedRemoteScrubbedTime(msg) {
c8f0d1b9a171 timeline scrubbing shows up on vidref (again)
drewp@bigasterisk.com
parents: 1954
diff changeset
75 this.songTime = msg.st;
c8f0d1b9a171 timeline scrubbing shows up on vidref (again)
drewp@bigasterisk.com
parents: 1954
diff changeset
76
c8f0d1b9a171 timeline scrubbing shows up on vidref (again)
drewp@bigasterisk.com
parents: 1954
diff changeset
77 // This doesn't work completely since it will keep getting
c8f0d1b9a171 timeline scrubbing shows up on vidref (again)
drewp@bigasterisk.com
parents: 1954
diff changeset
78 // updates from ascoltami slow updates.
c8f0d1b9a171 timeline scrubbing shows up on vidref (again)
drewp@bigasterisk.com
parents: 1954
diff changeset
79 if (msg.song != this.song) {
c8f0d1b9a171 timeline scrubbing shows up on vidref (again)
drewp@bigasterisk.com
parents: 1954
diff changeset
80 this.song = msg.song;
c8f0d1b9a171 timeline scrubbing shows up on vidref (again)
drewp@bigasterisk.com
parents: 1954
diff changeset
81 this.getReplayMapForSong(this.song);
c8f0d1b9a171 timeline scrubbing shows up on vidref (again)
drewp@bigasterisk.com
parents: 1954
diff changeset
82 }
c8f0d1b9a171 timeline scrubbing shows up on vidref (again)
drewp@bigasterisk.com
parents: 1954
diff changeset
83 }
1951
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
84
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
85 getReplayMapForSong(song) {
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
86 const u = new URL(window.location.href);
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
87 u.pathname = '/vidref/replayMap'
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
88 u.searchParams.set('song', song);
1994
1b690005aabd little vidref player inside timeline
Drew Perttula <drewp@bigasterisk.com>
parents: 1986
diff changeset
89 u.searchParams.set('maxClips', this.size == "small" ? '1' : '3');
1951
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
90 fetch(u.toString()).then((resp) => {
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
91 if (resp.ok) {
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
92 resp.json().then((msg) => {
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
93 this.players = msg.map(this.makeClipRow.bind(this));
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
94 this.updateComplete.then(this.setupClipRows.bind(this, msg));
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
95 });
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
96 }
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
97 });
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
98 }
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
99
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
100 setupClipRows(msg) {
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
101 const nodes = this.shadowRoot.querySelectorAll('light9-vidref-replay');
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
102 nodes.forEach((node, i) => {
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
103 node.uri = msg[i].uri;
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
104 node.videoUrl = msg[i].videoUrl;
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
105 node.songToVideo = msg[i].songToVideo;
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
106 });
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
107 this.setVideoTimesFromSongTime();
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
108 }
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
109
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
110 makeClipRow(clip) {
1994
1b690005aabd little vidref player inside timeline
Drew Perttula <drewp@bigasterisk.com>
parents: 1986
diff changeset
111 return html`<light9-vidref-replay @clips-changed="${this.onClipsChanged}" size="${this.size}"></light9-vidref-replay>`;
1951
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
112 }
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
113
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
114 onClipsChanged(ev) {
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
115 this.getReplayMapForSong(this.song);
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
116 }
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
117
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
118 disconnectedCallback() {
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
119 log('bye');
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
120 //close socket
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
121 }
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
122
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
123 userMovedSongTime(ev) {
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
124 const st = this.songTimeRangeInput.valueAsNumber;
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
125 this.songTime = st;
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
126
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
127 fetch('/ascoltami/seekPlayOrPause', {
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
128 method: 'POST',
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
129 body: JSON.stringify({scrub: st}),
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
130 });
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
131 }
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
132
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
133 static get styles() {
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
134 return css`
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
135 :host {
1954
3ae1e7f8db23 vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents: 1951
diff changeset
136 display: inline-block;
1951
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
137 }
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
138 #songTime {
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
139 width: 100%;
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
140 }
1954
3ae1e7f8db23 vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents: 1951
diff changeset
141 #clips {
3ae1e7f8db23 vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents: 1951
diff changeset
142 display: flex;
3ae1e7f8db23 vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents: 1951
diff changeset
143 flex-direction: column;
3ae1e7f8db23 vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents: 1951
diff changeset
144 }
3ae1e7f8db23 vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents: 1951
diff changeset
145 a {
3ae1e7f8db23 vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents: 1951
diff changeset
146 color: rgb(97, 97, 255);
3ae1e7f8db23 vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents: 1951
diff changeset
147 }
3ae1e7f8db23 vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents: 1951
diff changeset
148 #songTime {
3ae1e7f8db23 vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents: 1951
diff changeset
149 font-size: 27px;
3ae1e7f8db23 vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents: 1951
diff changeset
150 }
2021
286a34d9ccba vidref videos fill browser width
drewp@bigasterisk.com
parents: 2018
diff changeset
151 light9-vidref-replay {
286a34d9ccba vidref videos fill browser width
drewp@bigasterisk.com
parents: 2018
diff changeset
152 margin: 5px;
286a34d9ccba vidref videos fill browser width
drewp@bigasterisk.com
parents: 2018
diff changeset
153 }
1951
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
154 `;
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
155 }
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
156
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
157 render() {
1994
1b690005aabd little vidref player inside timeline
Drew Perttula <drewp@bigasterisk.com>
parents: 1986
diff changeset
158 const songTimeRange = this.size != "small" ? html`<input id="songTime" type="range"
1954
3ae1e7f8db23 vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents: 1951
diff changeset
159 .value="${this.songTime}"
3ae1e7f8db23 vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents: 1951
diff changeset
160 @input="${this.userMovedSongTime}"
3ae1e7f8db23 vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents: 1951
diff changeset
161 min="0" max="0" step=".001"></div>
2018
5b157494a741 vidref always show song time, and don't lose the details on normal size view
drewp@bigasterisk.com
parents: 1994
diff changeset
162 <div><a href="${this.musicState.song}">${this.musicState.song}</a></div>` : '';
5b157494a741 vidref always show song time, and don't lose the details on normal size view
drewp@bigasterisk.com
parents: 1994
diff changeset
163
1994
1b690005aabd little vidref player inside timeline
Drew Perttula <drewp@bigasterisk.com>
parents: 1986
diff changeset
164
1b690005aabd little vidref player inside timeline
Drew Perttula <drewp@bigasterisk.com>
parents: 1986
diff changeset
165 const globalCommands = this.size != 'small' ? html`
1b690005aabd little vidref player inside timeline
Drew Perttula <drewp@bigasterisk.com>
parents: 1986
diff changeset
166 <div>
1b690005aabd little vidref player inside timeline
Drew Perttula <drewp@bigasterisk.com>
parents: 1986
diff changeset
167 <button @click="${this.onClipsChanged}">Refresh clips for song</button>
1b690005aabd little vidref player inside timeline
Drew Perttula <drewp@bigasterisk.com>
parents: 1986
diff changeset
168 </div>
1b690005aabd little vidref player inside timeline
Drew Perttula <drewp@bigasterisk.com>
parents: 1986
diff changeset
169 ` : '';
1b690005aabd little vidref player inside timeline
Drew Perttula <drewp@bigasterisk.com>
parents: 1986
diff changeset
170 return html`
1b690005aabd little vidref player inside timeline
Drew Perttula <drewp@bigasterisk.com>
parents: 1986
diff changeset
171 <div>
1b690005aabd little vidref player inside timeline
Drew Perttula <drewp@bigasterisk.com>
parents: 1986
diff changeset
172 ${songTimeRange}
2018
5b157494a741 vidref always show song time, and don't lose the details on normal size view
drewp@bigasterisk.com
parents: 1994
diff changeset
173 <div id="songTime">showing song time ${rounding(this.songTime, 3)}</div>
1954
3ae1e7f8db23 vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents: 1951
diff changeset
174 <div>clips:</div>
3ae1e7f8db23 vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents: 1951
diff changeset
175 <div id="clips">
3ae1e7f8db23 vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents: 1951
diff changeset
176 ${this.players}
3ae1e7f8db23 vidref playback smoothness, autodelete short clips, manual-delete clips, vidref keyboard shortcuts
Drew Perttula <drewp@bigasterisk.com>
parents: 1951
diff changeset
177 </div>
1994
1b690005aabd little vidref player inside timeline
Drew Perttula <drewp@bigasterisk.com>
parents: 1986
diff changeset
178 ${globalCommands}
1951
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
179 `;
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
180
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
181 }
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
182 }
9f0f2b39ad95 vidref web is working
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
183 customElements.define('light9-vidref-replay-stack', Light9VidrefReplayStack);