summaryrefslogtreecommitdiff
path: root/kvmd
diff options
context:
space:
mode:
authorDevaev Maxim <[email protected]>2018-07-12 02:32:56 +0000
committerDevaev Maxim <[email protected]>2018-07-12 02:32:56 +0000
commit52c94958f7b56d6d59b3ef8e7a145489cec9be1d (patch)
tree54f2e73189c50d22803f8504860fdca775b17145 /kvmd
parentcd0ce2d6bef69975d713f55eeba24abe379e4f25 (diff)
better web
Diffstat (limited to 'kvmd')
-rw-r--r--kvmd/web/index.html34
-rw-r--r--kvmd/web/js/kvmd.js43
2 files changed, 54 insertions, 23 deletions
diff --git a/kvmd/web/index.html b/kvmd/web/index.html
index 609d5021..d5538943 100644
--- a/kvmd/web/index.html
+++ b/kvmd/web/index.html
@@ -7,22 +7,34 @@
</head>
<script src="js/kvmd.js"></script>
-<script> window.onload = runKvmdSession; </script>
+<script>
+ window.onload = function() {
+ runKvmdSession();
+ pollStreamer();
+ }
+</script>
<body>
<div class="stream-box">
<img src="/streamer/?action=stream" id="stream-image" class="stream-image" alt="" />
</div>
- <table><tr>
- <td><div id="power-led" class="power-led-off"></div></td>
- <td><div id="hdd-led" class="hdd-led-off"></div></td>
- <td>&nbsp;&nbsp;</td>
- <td><button id="power-button" type="button" title="Click hardware power button" onclick="clickPowerButton();">Power</button></td>
- <td><button id="power-button-long" type="button" title="Click hardware power button (long press)" onclick="clickPowerButtonLong();">Power (long)</button></td>
- <td><button id="reset-button" type="button" title="Click to force reset" onclick="clickResetButton();">Reset</button></td>
- <td>&nbsp;&nbsp;</td>
- <td><div id="session-status">Not connected yet...</div></td>
- </tr></table>
+ <table>
+ <tr>
+ <td><div id="power-led" class="power-led-off"></div></td>
+ <td><div id="hdd-led" class="hdd-led-off"></div></td>
+ <td>&nbsp;&nbsp;</td>
+ <td><button id="power-button" type="button" title="Click hardware power button" onclick="clickPowerButton();">Power</button></td>
+ <td><button id="power-button-long" type="button" title="Click hardware power button (long press)" onclick="clickPowerButtonLong();">Power (long)</button></td>
+ <td><button id="reset-button" type="button" title="Click to force reset" onclick="clickResetButton();">Reset</button></td>
+ </tr>
+ </table>
+ <table>
+ <tr>
+ <td><button id="restart-stream-button" type="button" title="Click here if your video looks like a crap" onclick="resetStreamer();">Restart video</button></td>
+ <td>&nbsp;&nbsp;</td>
+ <td><div id="session-status">Not connected yet...</div></td>
+ </tr>
+ </table>
</body>
</html>
diff --git a/kvmd/web/js/kvmd.js b/kvmd/web/js/kvmd.js
index 9e72aebe..dc69bc73 100644
--- a/kvmd/web/js/kvmd.js
+++ b/kvmd/web/js/kvmd.js
@@ -1,12 +1,7 @@
-KVMD_BASE_URL = "/kvmd"
-
-
-// -----------------------------------------------------------------------------
function runKvmdSession() {
- var ws = new WebSocket("ws://" + location.host + KVMD_BASE_URL + "/ws");
+ var ws = new WebSocket("ws://" + location.host + "/kvmd/ws");
ws.onopen = function(event) {
- alert("Session opened and keyboard will be captured");
__installHidHandlers(ws);
__setSessionStatus("session-opened", "Session opened (keyboard captured)");
};
@@ -86,15 +81,39 @@ function clickResetButton() {
function __clickButton(button) {
var http = new XMLHttpRequest();
- http.open("POST", KVMD_BASE_URL + "/atx/click?button=" + button, true);
+ http.open("POST", "/kvmd/atx/click?button=" + button, true);
http.onreadystatechange = function() {
- if (http.readyState == 4) {
- if (http.status == 200) {
- alert("Clicked!")
- } else {
- alert("Click error: " + http.responseText);
+ if (http.readyState == 4 && http.status != 200) {
+ alert("Click error: " + http.responseText);
+ }
+ }
+ http.send();
+}
+
+
+// -----------------------------------------------------------------------------
+function pollStreamer() {
+ var http = new XMLHttpRequest();
+ http.open("GET", "/streamer/?action=snapshot", true);
+ http.onreadystatechange = function() {
+ if (http.readyState == 2) {
+ http.abort();
+ if (http.status != 200) {
+ document.getElementById("stream-image").src = "/streamer/?action=stream&time=" + new Date().getTime();
}
}
}
http.send();
+ setTimeout(pollStreamer, 2000);
+}
+
+function resetStreamer() {
+ var http = new XMLHttpRequest();
+ http.open("POST", "/kvmd/streamer/reset", true);
+ http.onreadystatechange = function() {
+ if (http.readyState == 4 && http.status != 200) {
+ alert("Can't reset streamer: " + http.responseText);
+ }
+ }
+ http.send();
}