blob: f6bc5feb4fae1b907a18cf58e396631a4dc27007 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
<rml>
<head>
<link type="text/rcss" href="main.rcss"/>
</head>
<body id="body-root" data-model="player">
<!-- ================================================================ -->
<!-- Splash view: shown when no file is loaded -->
<!-- ================================================================ -->
<div id="splash" data-if="!loaded">
<div id="splash-title">Study Player</div>
<div id="splash-sub">Drop an audio file or run with audio arg</div>
<div id="splash-hint">SPACE: start M: study mode ESC: quit</div>
</div>
<!-- ================================================================ -->
<!-- Player view: shown when a file is loaded -->
<!-- ================================================================ -->
<div id="player" data-if="loaded">
<!-- Filename / title -->
<div id="title">{{file_name}}</div>
<!-- Progress bar area -->
<div id="progress-area">
<div id="elapsed">{{elapsed_str}}</div>
<div id="progress-bar-bg" data-event-click="seek_bar()">
<div id="progress-bar-fill"></div>
</div>
<div id="remaining">{{remain_str}}</div>
<div id="progress-pct">{{progress_pct}}%</div>
</div>
<!-- Status text: PLAYING / PAUSED -->
<div id="status" data-class-alert="status_alert">{{status_text}}</div>
<!-- Play / Pause button -->
<button id="btn-play-pause" data-event-click="toggle_play()">
<span id="icon-play" data-if="!playing">▶</span>
<span id="icon-pause" data-if="playing">❚❚</span>
</button>
<!-- Section navigation: prev / counter / next -->
<div id="section-nav">
<button id="btn-prev" data-event-click="prev_portion()">◀</button>
<div id="section-counter">{{portion_label}}</div>
<button id="btn-next" data-event-click="next_portion()">▶</button>
</div>
<!-- Smart Play hold button -->
<button id="btn-smart"
data-class-held="smart_play_held"
data-event-mousedown="smart_down()"
data-event-mouseup="smart_up()">Smart Play</button>
</div>
<!-- ================================================================ -->
<!-- Bottom bar: always visible (help text + study mode checkbox) -->
<!-- ================================================================ -->
<div id="bottom-bar">
<div id="help-text">{{help_text}}</div>
<form id="study-form">
<div id="study-mode-box">
<input type="checkbox" id="cb-study" data-checked="study_mode"/>
<span id="study-label">Study Mode</span>
</div>
</form>
</div>
<!-- ================================================================ -->
<!-- Settings panel overlay (Phase 6) — F2 to toggle -->
<!-- ================================================================ -->
<div id="settings-overlay" data-if="settings_visible">
<div id="settings-panel">
<div id="settings-title">⚙ Settings</div>
<div id="settings-controls">
<div id="settings-row">
<span id="settings-label">Font Scale:</span>
<button class="settings-btn" data-event-click="font_down()">−</button>
<span id="settings-val">{{font_scale_display}}</span>
<button class="settings-btn" data-event-click="font_up()">+</button>
</div>
<div id="settings-row">
<span id="settings-label">Volume:</span>
<button class="settings-btn" data-event-click="vol_down()">−</button>
<span id="settings-val">{{volume_display}}</span>
<button class="settings-btn" data-event-click="vol_up()">+</button>
</div>
</div>
</div>
</div>
</body>
</rml>
|