summaryrefslogtreecommitdiff
path: root/js/cctv-control.js
blob: b85fa8904273128de8be7ea24a53b3c0aa4d6860 (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
92
93
94
95
96
97
98
99
100
// 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 = "172.22.80.56:8080";
var controlHost = "172.22.80.56: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)	{
			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 + "left", 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;
		}
}