summaryrefslogtreecommitdiffhomepage
path: root/game/study_player/ui/main.rml
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>