Compare commits

...

2 commits

Author SHA1 Message Date
Ruben van de Ven
de95c5afa0 tidy html 2022-05-03 10:00:27 +02:00
Ruben van de Ven
da7c5700d6 more keyboard events and help info 2022-05-03 10:00:12 +02:00
2 changed files with 107 additions and 41 deletions

View file

@ -93,14 +93,17 @@
} }
.controls button.paused, .controls button.playing{ .controls button.paused,
.controls button.playing {
position: absolute; position: absolute;
left: 100%; left: 100%;
width: 30px; width: 30px;
} }
.controls button.paused::before { .controls button.paused::before {
content: '⏵'; content: '⏵';
} }
.controls button.playing::before { .controls button.playing::before {
content: '⏸'; content: '⏸';
} }
@ -135,6 +138,7 @@
.tags li { .tags li {
display: block; display: block;
} }
.tags .subtags { .tags .subtags {
padding: 0; padding: 0;
font-size: 80%; font-size: 80%;
@ -142,6 +146,7 @@
flex-direction: row; flex-direction: row;
flex-wrap: wrap; flex-wrap: wrap;
} }
.tags .subtags .tag { .tags .subtags .tag {
padding: 2px; padding: 2px;
} }
@ -182,6 +187,7 @@
border: solid 2px #601be0; border: solid 2px #601be0;
} }
/* .noUi-handle:focus::before, .noUi-handle:focus::after{ /* .noUi-handle:focus::before, .noUi-handle:focus::after{
background: #601be0; background: #601be0;
} */ } */
@ -194,6 +200,7 @@
vertical-align: middle; vertical-align: middle;
border-radius: 5px; border-radius: 5px;
} }
.tags .subtags .tag span { .tags .subtags .tag span {
width: 10px; width: 10px;
height: 10px; height: 10px;
@ -247,6 +254,7 @@
.noUi-horizontal .noUi-touch-area { .noUi-horizontal .noUi-touch-area {
cursor: ew-resize; cursor: ew-resize;
} }
#interface .noUi-horizontal .noUi-tooltip { #interface .noUi-horizontal .noUi-tooltip {
/* tooltips go below the buttons */ /* tooltips go below the buttons */
bottom: auto; bottom: auto;
@ -258,19 +266,27 @@
background: black; background: black;
color: white; color: white;
position: relative; position: relative;
width: 100px; /* as wide as audio controls only */ width: 100px;
/* as wide as audio controls only */
overflow: hidden; overflow: hidden;
white-space: nowrap; white-space: nowrap;
left: -50px;
} }
.audioconfig:hover { .audioconfig:hover {
width: auto; width: auto;
left: 0px;
} }
.audioconfig select, .audioconfig input{
.audioconfig select,
.audioconfig input {
margin: 10px; margin: 10px;
} }
audio { audio {
vertical-align: middle; vertical-align: middle;
width: 100px; /* hides seek head */ width: 100px;
/* hides seek head */
} }
.playlist img { .playlist img {
@ -281,6 +297,41 @@
display: block; display: block;
} }
.help {
position: absolute;
right: 0;
top: 10px;
left: 70px;
margin: 0;
padding: 0;
display: flex;
flex-direction: row;
flex-wrap: wrap;
font-size: 8pt;
}
.help li {
display: inline-block;
color: gray;
margin-right: 10px;
flex-grow: 1;
}
.help .key {
padding: 5px;
background-color: aliceblue;
border: solid 1px black;
color: black;
border-radius: 4px;
}
#interface:not(.selected-annotation) .help .esc1 {
display: none;
}
#interface.selected-annotation .help .esc2 {
display: none;
}
</style> </style>
<link rel="stylesheet" href="assets/nouislider-15.5.0.css"> <link rel="stylesheet" href="assets/nouislider-15.5.0.css">
<link rel="stylesheet" href="core.css"> <link rel="stylesheet" href="core.css">
@ -288,6 +339,18 @@
<body> <body>
<div id='interface'> <div id='interface'>
<ul class="help">
<li><span class='key'>Space</span> play/pause</li>
<li><span class='key'>Shift</span> + <span class='key'>&RightArrow;</span> Skip 1s</li>
<li><span class='key'>Shift</span> + <span class='key'>Ctrl</span> + <span class='key'>&RightArrow;</span>
Skip 10s</li>
<li><span class='key'>i / o</span> set in/out-point</li>
<li><span class='key'>Shift</span> + <span class='key'>i / o</span> Jump to in/out-point</li>
<li><span class='key'>&LeftArrow; / &RightArrow;</span> Shift selected point 1s</li>
<li><span class='key'>PgUp/Dwn</span> Shift selected point 10s</li>
<li class="esc"><span class='key'>Esc</span> <span class='esc1'>Deselect annotation</span><span
class="esc2">reset in & out-points</span></li>
</ul>
</div> </div>
<script src="assets/nouislider-15.5.0.js"></script> <script src="assets/nouislider-15.5.0.js"></script>
<script src="assets/wNumb-1.2.0.min.js"></script> <script src="assets/wNumb-1.2.0.min.js"></script>

View file

@ -525,6 +525,7 @@ class Annotator extends EventTarget {
'max': sliderMax, 'max': sliderMax,
}, },
keyboardDefaultStep: (sliderMax - sliderMin) / 1000, keyboardDefaultStep: (sliderMax - sliderMin) / 1000,
keyboardPageMultiplier: 10, // page up/down 10s
tooltips: [ tooltips: [
this.formatter, this.formatter,
this.formatter this.formatter
@ -664,13 +665,15 @@ class Annotator extends EventTarget {
if (ev.key == 'ArrowLeft' && ev.shiftKey) { if (ev.key == 'ArrowLeft' && ev.shiftKey) {
const p = this._paused; const p = this._paused;
console.log(p); console.log(p);
this.scrubTo(this._currentTimeMs - 1000); const diff = ev.ctrlKey ? 10000 : 1000;
this.scrubTo(this._currentTimeMs - diff);
if (!p) { console.log('play!'); this.play(); } // scrubTo() causes a pause(); if (!p) { console.log('play!'); this.play(); } // scrubTo() causes a pause();
} }
if (ev.key == 'ArrowRight' && ev.shiftKey) { if (ev.key == 'ArrowRight' && ev.shiftKey) {
const p = this._paused; const p = this._paused;
console.log(p); console.log(p);
this.scrubTo(this._currentTimeMs + 1000); const diff = ev.ctrlKey ? 10000 : 1000;
this.scrubTo(this._currentTimeMs + diff);
if (!p) { console.log('play!'); this.play(); } // scrubTo() causes a pause(); if (!p) { console.log('play!'); this.play(); } // scrubTo() causes a pause();
} }
}); });