aboutsummaryrefslogtreecommitdiff
path: root/resources/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'resources/index.html')
-rw-r--r--resources/index.html181
1 files changed, 171 insertions, 10 deletions
diff --git a/resources/index.html b/resources/index.html
index e33ac9a..cbf0a75 100644
--- a/resources/index.html
+++ b/resources/index.html
@@ -2,11 +2,12 @@
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
- <title>vlc</title>
+ <link rel="manifest" href="ir.webmanifest">
+ <link rel="icon" href="ir.png">
+ <title>IR</title>
<script>
"use strict"
-
- function vlcCall(method,path,args) {
+ function call(method,path,args) {
args ||= {};
let url=new URL(path,location.href);
for (let a in args) {
@@ -19,11 +20,15 @@
}
function vlcCommand(command,args) {
- vlcCall('post',command,args);
+ call('post',`vlc/${command}`,args);
}
+ function irCommand(thing,arg) {
+ call('post',`ir/${thing}/${arg}`);
+ }
+
async function updateView() {
- const status = (await (await vlcCall('get','status')).json()).status;
+ const status = (await (await call('get','vlc/status')).json()).status;
const currentPos = document.querySelector('#current-pos');
if (status.state != 'playing') {
@@ -47,12 +52,168 @@
}
})
</script>
+ <style>
+ body { font-size: 12vw }
+ * { font-size: inherit }
+
+ div.thing {
+ padding: 0.2em 0.1em 0.2em 0.1em;
+ margin-top: 0.5em;
+ margin-bottom: 1em;
+ border: solid 0.05em black;
+ border-radius: 0.5em;
+ position: relative;
+ }
+ div.thing label {
+ font-size: 0.8em;
+ line-height: 0.5em;
+ position: absolute;
+ top: -0.5em;
+ left: 1em;
+ background-color: white;
+ }
+ div.thing table {
+ width: 100%;
+ table-layout: fixed;
+ }
+ td button {
+ border-radius: 0.5em;
+ width: calc(100% - 0.2em);
+ margin: 0.1em;
+ }
+
+ .power { color: white }
+ .power.on { background-color: green }
+ .power.off { background-color: red }
+
+ .volume { background-color: lightblue }
+ .input { background-color: darkorange }
+ .control { background-color: black; color: white; filter: grayscale(100%) }
+ .bd-red { background-color: red }
+ .bd-yellow { background-color: yellow }
+ .bd-blue { background-color: blue; color: white }
+ </style>
</head>
<body>
- <button onclick="vlcCommand('play')">play</button>
- <button onclick="vlcCommand('pause')">pause</button>
- <button onclick="vlcCommand('stop')">stop</button>
- <button onclick="updateView()">update</button>
- <input type="range" id="current-pos">
+ <div class="thing">
+ <label>Vlc</label>
+ <table>
+ <tr>
+ <td><button onclick="irCommand('start','hdmi3')" class="power on">start</button></td>
+ <td><button onclick="irCommand('stop','hdmi')" class="power off">stop</button></td>
+ </tr>
+ </table>
+ <details>
+ <summary>controls</summary>
+ <button onclick="vlcCommand('play')">play</button>
+ <button onclick="vlcCommand('pause')">pause</button>
+ <button onclick="vlcCommand('stop')">stop</button>
+ <button onclick="updateView()">update</button>
+ <input type="range" id="current-pos">
+ </details>
+ </div>
+ <div class="thing">
+ <label>Laptop</label>
+ <table>
+ <tr>
+ <td><button onclick="irCommand('start','hdmi1')" class="power on">start</button></td>
+ <td><button onclick="irCommand('stop','hdmi')" class="power off">stop</button></td>
+ </tr>
+ </table>
+ </div>
+ <div class="thing">
+ <label>Bluray</label>
+ <table>
+ <tr>
+ <td><button onclick="irCommand('start','bluray')" class="power on">start</button></td>
+ <td><button onclick="irCommand('stop','bluray')" class="power off">stop</button></td>
+ </tr>
+ </table>
+ <details>
+ <summary>controls</summary>
+ <table>
+ <tr>
+ <td><button onclick="irCommand('bluray','ejectcd')" class="input">⏏</button></td>
+ <td>&nbsp;</td>
+ <td><button onclick="irCommand('bluray','power')" class="power on">ON</button></td>
+ </tr>
+ <tr>
+ <td><button onclick="irCommand('bluray','yellow')" class="bd-yellow">a</button></td>
+ <td><button onclick="irCommand('bluray','blue')" class="bd-blue">b</button></td>
+ <td><button onclick="irCommand('bluray','red')" class="bd-red">c</button></td>
+ </tr>
+ <tr>
+ <td><button onclick="irCommand('bluray','menu')" class="control">🔝</button></td>
+ <td><button onclick="irCommand('bluray','up')" class="control">↑</button></td>
+ <td><button onclick="irCommand('bluray','context_menu')" class="control">⎙</button></td>
+ </tr>
+ <tr>
+ <td><button onclick="irCommand('bluray','left')" class="control">←</button></td>
+ <td><button onclick="irCommand('bluray','ok')" class="control">ok</button></td>
+ <td><button onclick="irCommand('bluray','right')" class="control">→</button></td>
+ </tr>
+ <tr>
+ <td><button onclick="irCommand('bluray','back')" class="control">🔙</button></td>
+ <td><button onclick="irCommand('bluray','down')" class="control">↓</button></td>
+ <td><button onclick="irCommand('bluray','option')" class="control">opt</button></td>
+ </tr>
+ <tr>
+ <td colspan="3"><button onclick="irCommand('bluray','home')" class="control">home</button></td>
+ </tr>
+
+ <tr>
+ <td><button onclick="irCommand('bluray','previous')" class="control">⏪</button></td>
+ <td><button onclick="irCommand('bluray','play')" class="control">▶</button></td>
+ <td><button onclick="irCommand('bluray','next')" class="control">⏩</button></td>
+ </tr>
+ <tr>
+ <td><button onclick="irCommand('bluray','review')" class="control">⏮</button></td>
+ <td><button onclick="irCommand('bluray','pause')" class="control">⏸</button></td>
+ <td><button onclick="irCommand('bluray','fastforward')" class="control">⏭</button></td>
+ </tr>
+ <tr>
+ <td><button onclick="irCommand('bluray','subtitle')" class="control">sub</button></td>
+ <td><button onclick="irCommand('bluray','stop')" class="control">⏹</button></td>
+ <td><button onclick="irCommand('bluray','audio')" class="control">aud</button></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td><button onclick="irCommand('bluray','displaytoggle')" class="control">disp</button></td>
+ </tr>
+ </table>
+ </details>
+ </div>
+ <div class="thing">
+ <label>Amp</label>
+ <table>
+ <tr>
+ <td><button onclick="irCommand('amplifier','power')" class="power on">ON</button></td>
+ <td><button onclick="irCommand('amplifier','power')" class="power off">OFF</button></td>
+ <td><button onclick="irCommand('amplifier','volumeup')" class="volume">↑</button></td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td><button onclick="irCommand('amplifier','volumedown')" class="volume">↓</button></td>
+ </tr>
+ <tr>
+ <td><button onclick="irCommand('amplifier','hdmi1')" class="input">Lap</button></td>
+ <td><button onclick="irCommand('amplifier','hdmi2')" class="input">BD</button></td>
+ <td><button onclick="irCommand('amplifier','hdmi3')" class="input">NAS</button></td>
+ </tr>
+ </table>
+ </div>
+
+ <div class="thing">
+ <label>Projector</label>
+ <table>
+ <tr>
+ <td><button onclick="irCommand('projector','power')" class="power on">ON</button></td>
+ <td><button onclick="irCommand('projector','suspend')" class="power off">OFF</button></td>
+ </tr>
+ </table>
+ </div>
+
</body>
</html>