mirror of http://git.sublab.org/cctv-control/
103 lines
2.2 KiB
JavaScript
103 lines
2.2 KiB
JavaScript
// CCTV Control
|
|
//
|
|
// Author: Florian Raemisch
|
|
// Email: olf@subsignal.org
|
|
//
|
|
// cctv-control is a webinterface to control and view
|
|
// mjpeg encoded videos by cctv cameras which are
|
|
// proxied by mjpegplexer. camera control is possible
|
|
// with arrow-keys, if mjpegplexer is configured
|
|
// properly.
|
|
//
|
|
// This Software is licensed under the GPL Version 3, 29 June 2007
|
|
|
|
|
|
var cam = 0;
|
|
var camHost = "127.0.0.1:8080";
|
|
var controlHost = "127.0.0.1:8080";
|
|
|
|
//create event which is triggered when DOM is ready
|
|
window.onDomReady = initReady;
|
|
|
|
//change from testbild to default cam when DOM is ready
|
|
window.onDomReady(changeCam);
|
|
|
|
function initReady(fn) {
|
|
if(document.addEventListener) {
|
|
document.addEventListener("DOMContentLoaded", fn, false);
|
|
}
|
|
}
|
|
|
|
//change currently displayed camera to the one in cam variable
|
|
function changeCam() {
|
|
var display = document.getElementById('screen');
|
|
if (cam <= 7 && cam >= 0) {
|
|
camDisplay = cam + 1;
|
|
display.innerHTML = '<p class="camnumber">' + camDisplay + '</p>';
|
|
display.innerHTML += '<img src="http://' + camHost + '/cam/' + cam + '/stream.mjpeg" />';
|
|
}
|
|
else {
|
|
display.innerHTML = '<img src="img/testbild.png" />';
|
|
}
|
|
}
|
|
|
|
//send control command to currently selected camera
|
|
function controlCam(direction) {
|
|
if (direction == "left" || direction == "right" || direction == "up" || direction == "down") {
|
|
var request = new XMLHttpRequest();
|
|
request.open("get", "http://" + controlHost + "/cam/" + cam + "/control/" + direction, false);
|
|
request.send();
|
|
return false;
|
|
}
|
|
}
|
|
|
|
function keyDown(event) {
|
|
|
|
switch(event.keyCode) {
|
|
case 49: // 1
|
|
cam = 0;
|
|
changeCam();
|
|
break;
|
|
case 50: // 2
|
|
cam = 1;
|
|
changeCam();
|
|
break;
|
|
case 51: // 3
|
|
cam = 2;
|
|
changeCam();
|
|
break;
|
|
case 52: // 4
|
|
cam = 3;
|
|
changeCam();
|
|
break;
|
|
case 53: // 5
|
|
cam = 4;
|
|
changeCam();
|
|
break;
|
|
case 54: // 6
|
|
cam = 5;
|
|
changeCam();
|
|
break;
|
|
case 55: // 7
|
|
cam = 6;
|
|
changeCam();
|
|
break;
|
|
case 56: // 8
|
|
cam = 7;
|
|
changeCam();
|
|
break;
|
|
case 37: // arrow left
|
|
controlCam("left");
|
|
break;
|
|
case 38: // arrow up
|
|
controlCam("up");
|
|
break;
|
|
case 39: // arrow right
|
|
controlCam("right");
|
|
break;
|
|
case 40: // arrow down
|
|
controlCam("down");
|
|
break;
|
|
}
|
|
}
|