annotate web/light9-vidref-replay-stack.js @ 2405:69ca2b2fc133

overcomplicated attempt at persisting the pane layout in the rdf graph this was hard because we have to somehow wait for the graph to load before config'ing the panes
author drewp@bigasterisk.com
date Fri, 17 May 2024 16:58:26 -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);