nuvio-tizen 1.5.0 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/css/style.css +14 -2
- package/js/player.js +9 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -25,6 +25,8 @@ core behaviour, targeting 2017 Samsung TVs (Tizen 3.0, ~Chromium 47).
|
|
|
25
25
|
on two lines (name + size / seeds / languages).
|
|
26
26
|
- *Audio track* — shown only when the stream has more than one audio track
|
|
27
27
|
(AVPlay `getTotalTrackInfo` / `setSelectTrack`).
|
|
28
|
+
- *Restart from beginning*, *Skip back 10 minutes*, *Skip forward 10 minutes*
|
|
29
|
+
(hidden for live streams).
|
|
28
30
|
- *Configure subtitles* → *Language* (2 levels: language → the tracks within it),
|
|
29
31
|
*Size*, *Style*.
|
|
30
32
|
- **Subtitles from addons**: fetched per title/episode, SRT + VTT parsed and rendered as a
|
package/css/style.css
CHANGED
|
@@ -59,9 +59,21 @@ html, body {
|
|
|
59
59
|
.card .prog { position: absolute; bottom: 0; left: 0; height: 6px; background: #818cf8; }
|
|
60
60
|
|
|
61
61
|
/* --- Focus state (TV) --- */
|
|
62
|
-
.focusable.focused { border-color: #
|
|
63
|
-
|
|
62
|
+
.focusable.focused { border-color: #a5b4fc; box-shadow: 0 0 0 3px rgba(129,140,248,0.85); }
|
|
63
|
+
|
|
64
|
+
/* Carousel cards: bold, obvious focus — white inner border + indigo ring + lift */
|
|
65
|
+
.card.focusable.focused {
|
|
66
|
+
border-color: #ffffff;
|
|
67
|
+
box-shadow: 0 0 0 5px #6366f1, 0 12px 34px rgba(0,0,0,0.85);
|
|
68
|
+
transform: scale(1.09);
|
|
69
|
+
z-index: 5;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/* Filled selection for list rows / buttons */
|
|
64
73
|
.pill.focusable.focused, .stream.focusable.focused, .ep.focusable.focused { background: #818cf8; color: #0e1117; }
|
|
74
|
+
/* Keep secondary lines readable on the bright selected background */
|
|
75
|
+
.stream.focusable.focused .s-sub, .ep.focusable.focused .ep-sub { color: #17203a; }
|
|
76
|
+
|
|
65
77
|
.gear.focusable.focused { opacity: 1; color: #818cf8; }
|
|
66
78
|
|
|
67
79
|
/* --- Detail screen --- */
|
package/js/player.js
CHANGED
|
@@ -254,9 +254,9 @@ var Player = (function () {
|
|
|
254
254
|
showOSD(false);
|
|
255
255
|
}
|
|
256
256
|
|
|
257
|
-
function
|
|
257
|
+
function seekTo(sec) {
|
|
258
258
|
if (_isLive) { showOSD(false); U.toast('Live — seeking unavailable', 1500); return; }
|
|
259
|
-
var target = Math.max(0, Math.min((_dur || 1e9),
|
|
259
|
+
var target = Math.max(0, Math.min((_dur || 1e9), sec));
|
|
260
260
|
_cur = target;
|
|
261
261
|
renderOSD();
|
|
262
262
|
showOSD(false);
|
|
@@ -267,6 +267,8 @@ var Player = (function () {
|
|
|
267
267
|
}
|
|
268
268
|
}
|
|
269
269
|
|
|
270
|
+
function seekBy(delta) { seekTo(_cur + delta); }
|
|
271
|
+
|
|
270
272
|
// ---------- subtitles ----------
|
|
271
273
|
// Parses SRT or VTT (both use HH:MM:SS,mmm / HH:MM:SS.mmm timing lines).
|
|
272
274
|
function parseCues(text) {
|
|
@@ -430,6 +432,11 @@ var Player = (function () {
|
|
|
430
432
|
if (getAudioTracks().length > 1) {
|
|
431
433
|
items.push({ label: 'Audio track', run: function () { pushMenu(audioMenu()); } });
|
|
432
434
|
}
|
|
435
|
+
if (!_isLive) {
|
|
436
|
+
items.push({ label: 'Restart from beginning', run: function () { seekTo(0); closeMenu(); } });
|
|
437
|
+
items.push({ label: 'Skip back 10 minutes', run: function () { seekBy(-600); closeMenu(); } });
|
|
438
|
+
items.push({ label: 'Skip forward 10 minutes', run: function () { seekBy(600); closeMenu(); } });
|
|
439
|
+
}
|
|
433
440
|
items.push({ label: 'Configure subtitles', run: function () { pushMenu(subConfigMenu()); } });
|
|
434
441
|
return { title: 'Menu', items: items, idx: 0 };
|
|
435
442
|
}
|