summaryrefslogtreecommitdiff
path: root/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'index.html')
-rw-r--r--index.html278
1 files changed, 228 insertions, 50 deletions
diff --git a/index.html b/index.html
index 630c649..4e51144 100644
--- a/index.html
+++ b/index.html
@@ -24,7 +24,7 @@
//
//
-var Version = "0.10 2013/01/08"
+var Version = "0.10 2013/01/xx"
for (var i = minChan[0]; i < (maxChan[0]+1); i++) { EPG[0][4][i] = "";EPG[1][4][i] = "";EPG[0][5][i] = "";EPG[1][5][i] = "";EPG[0][7][i] = "";EPG[1][7][i] = ""; }
for (var i = minChan[1]; i < (maxChan[1]+1); i++) { EPG[0][4][i] = "";EPG[1][4][i] = "";EPG[0][5][i] = "";EPG[1][5][i] = "";EPG[0][7][i] = "";EPG[1][7][i] = ""; }
@@ -47,6 +47,15 @@ function onLoad() {
// eitCache.setFilterMode(eitCache.FILTER_MODE_PF_ONLY);
eitCache.addEventListener(eitCache.ON_CACHE_UPDATED, onCacheUpdated);
mediaPlayer.addEventListener(mediaPlayer.ON_DATA_AVAILABLE,onDataAvailableEvent);
+ mediaRecorder.addEventListener(mediaRecorder.ON_STATE_CHANGED, onRecorderStateChanged);
+
+ var ss = toi.schedulerService;
+ ss.addEventListener(ss.ON_SCHEDULED_START, onScheduledStart);
+ ss.addEventListener(ss.ON_SCHEDULED_STOP, onScheduledStop);
+ ss.setCategorySubscription(onScheduledStart, "*");
+ ss.setCategorySubscription(onScheduledStop, "*");
+ setOSDtimer();
+
showOSD();
colorkeys.style.fontSize = fsKeys;
colorkeys.innerHTML = "<font color=red>" + NN[4] + "</font><font color=green >" + NN[1] + "</font><font color=yellow> Schedule </font><font color=blue> INFO </font>";
@@ -81,6 +90,9 @@ function onUnload() {
mediaRecorder.releaseInstance();
eitCache.removeEventListener(eitCache.ON_CACHE_UPDATED, onCacheUpdated);
mediaPlayer.removeEventListener(mediaPlayer.ON_DATA_AVAILABLE,onDataAvailableEvent);
+ mediaRecorder.removeEventListener(mediaRecorder.ON_STATE_CHANGED, onRecorderStateChanged);
+ mediaRecorder.removeEventListener(mediaRecorder.ON_PARAMETER_CHANGED, onRecorderStateChanged);
+
} catch(e) {
alert(e);
@@ -715,19 +727,25 @@ function onKeyDown(event) {
}
break;
case "MediaStop":
+ if (isRecording == 1) {
+ recordStop();
+ isRecording = 0;
+ } else {
try {
SetLed(1,1,0);
mediaPlayer.playFromPosition(mediaPlayer.POSITION_LIVE,mediaPlayer.PACE_PLAY);
} catch(e) {
alert(e);
}
+ }
break;
case KEY_REC:
case "MediaRecord":
if (isRecording == 1) {
recordStop();
} else {
- recordStart();
+ createNewAsset();
+ recordStart(ServerAdres + channels[currChan]);
}
break;
@@ -892,32 +910,31 @@ function updateOSDtime(timchan) {
function settimer() {
if(SwitchTimer) {
+ try {
+ switchtimerID = toi.schedulerService.schedule("activity_1","record_hd_from_ip", EPG[NowNext][2][currChan] ,0);
+ toi.schedulerService.setParameter(switchtimerID, "Type", "SwitchOnly");
+ toi.schedulerService.setParameter(switchtimerID, "Channel", currChan.toString() );
+ }
+ catch (e) {
+ alert(e);
+ }
tijd = EPG[NowNext][2][currChan];
date = new Date(tijd*1000);
tijd = date.toUTCString();
tijd = new Date(tijd);
var tm = tijd.getMinutes();
var th = tijd.getHours();
- if(th<10) {
- th = "0"+th;
- }
- if(tm<10) {
- tm = "0"+tm;
- }
- dateCurrent = new Date();
- var StartTime = Math.floor((date.getTime() - dateCurrent.getTime()));
- timerChan = currChan;
- TimerActions = "isVisible = 0; isFullscreen = 1; FullScreen(); setVisible(isVisible); currChan = timerChan; play(timerChan); osdtimer.innerHTML = '';SetLed(0,0,0);switchicon = '\uE003';osdca.innerHTML = CAicon + switchicon;"
- // only 1 switch timer possible
- if(switchtimerID) {
- clearTimeout(switchtimerID);
- }
- switchtimerID = setTimeout(TimerActions, StartTime);
+ if(tm<10)
+ {
+ tm = "0"+tm;
+ }
+ if(th<10)
+ {
+ th = "0"+th;
+ }
+
switchtimer.innerHTML = "<p> Name : " + EPG[NowNext][1][currChan] + "</p><p> channel : " + channelsnames[currChan] + "</p><p> Starttime : " + th + ":" + tm + "</p>";
- osdtimer.innerHTML = "<p style='color:black;font-size:" + fsList + ";'>" + th + ":" + tm + "</p>";
- SetLed(0,2,1);
- switchicon = "\uE00C";
- osdca.innerHTML = CAicon + switchicon;
+ setOSDtimer();
} else {
//
// No Switch timer so send timer info to Server
@@ -925,7 +942,37 @@ function settimer() {
}
}
-// linker n tekens van string
+
+function setOSDtimer() {
+
+ tijd = toi.schedulerService.getNextStartTime("*");
+ if (tijd !== 0) {
+ date = new Date(tijd*1000);
+ tijd = date.toUTCString();
+ tijd = new Date(tijd);
+ var tm = tijd.getMinutes();
+ var th = tijd.getHours();
+ if(tm<10)
+ {
+ tm = "0"+tm;
+ }
+ if(th<10)
+ {
+ th = "0"+th;
+ }
+ osdtimer.innerHTML = "<p style='color:black;font-size:" + fsList + ";'>" + th + ":" + tm + "</p>";
+ SetLed(0,2,1);
+ switchicon = "\uE00C";
+ osdca.innerHTML = CAicon + switchicon;
+ } else {
+ osdtimer.innerHTML = " ";
+ SetLed(0,0,0);
+ switchicon = '\uE003';
+ osdca.innerHTML = CAicon + switchicon;
+ }
+}
+
+// Left n characters of str
function Left(str, n){
if (n <= 0)
return "";
@@ -935,7 +982,7 @@ function Left(str, n){
return String(str).substring(0,n);
}
-// rechter n tekens van string
+// Right n characters of str
function Right(str, n){
if (n <= 0)
return "";
@@ -1483,13 +1530,6 @@ function onKeyMenu(keyCode) {
} else if (menu == 1) {
ShowSubs = 1 - ShowSubs;
videoplane.subtitles = Boolean(ShowSubs); // Enable subtitles or Disable subtitles
- } else if (menu == 2) {
- clearTimeout(switchtimerID);
- switchtimerID = 0;
- osdtimer.innerHTML = "";
- switchicon = "\uE003";
- osdca.innerHTML = CAicon + switchicon;
- SetLed(0,0,0);
}
InitMenu(menu);
@@ -1497,7 +1537,7 @@ function onKeyMenu(keyCode) {
case KEY_2:
if (menu == 0) {
isSetupMenu = 0;
- mediaList.style.opacity = 0.8;
+ mediaList.style.opacity = 0.9;
mainmenu.style.opacity = 0;
setTimeout("getRecList();LoadMediaSettings();",100);
}
@@ -1515,7 +1555,10 @@ function onKeyMenu(keyCode) {
break;
case KEY_3:
if (menu == 0) {
- menu = 2;
+ isSetupMenu = 0;
+ mediaList.style.opacity = 0.9;
+ mainmenu.style.opacity = 0;
+ LoadTimers();
} else if (menu == 1) {
is = toi.informationService;
if(subsmode == 0 ) {
@@ -1558,7 +1601,7 @@ function onKeyMenu(keyCode) {
case KEY_9:
if (menu == 0) {
isSetupMenu = 0;
- mediaList.style.opacity = 0.8;
+ mediaList.style.opacity = 0.9;
mainmenu.style.opacity = 0;
getRecList2();
LoadMediaSettings();
@@ -1592,15 +1635,23 @@ if(menu == 1) {
mainmenu.innerHTML = "<h1><center style='font-size:" + fsMenuMain + ";color:white;'> Settings </center></h1><pre style='color:black;font-size:" + fsMenu + ";'><font style='color:red;font-size:" + fsMenu + ";'> Frontdisplay Clock : " + Boolean(showClock) + "</font><font style='color:green;font-size:" + fsMenu + ";'>\n Prio audio track : " + (toi.informationService.getObject("cfg.media.audio.languagepriority")) + "</font><font style='color:blue;font-size:" + fsMenu + ";'>\n Preview guide : " + Boolean(SwitchGuide) + "</font>\n 1 - Show Subs : " + Boolean(ShowSubs) + "\n 2 - Subs Type Prio : " + (toi.informationService.getObject("cfg.media.subtitling.typepriority")) + "\n 3 - Subs Mode Prio : " + (toi.informationService.getObject("cfg.media.subtitling.modepriority")) + "\n 4 - Audio Type Prio : " + (toi.informationService.getObject("cfg.media.audio.typepriority")) + "\n 5 - Protection : " + Boolean(ShowProtectedChannels) + "\n\n\n\n 0 - MainMenu </pre>";
}
-if(menu == 2) {
-// Timers menu
- mainmenu.innerHTML = "<h1><center style='font-size:" + fsMenuMain + ";color:white;'> Timers </center></h1><pre style='color:black;font-size:" + fsMenu + ";'>\n 1 - Switch timer : " + Boolean(switchtimerID) + "" + "\n\n\n\n 0 - MainMenu </pre>";
}
+// End of Menu section
+
+// Timer Menu Section
+
+function LoadTimers() {
+
+// Timers menu
+ mainmenu.innerHTML = "<h1><center style='font-size:" + fsMenuMain + ";color:white;'> Timers </center></h1><pre style='color:black;font-size:" + fsMenu + ";'>\n Press OK to remove a timer" + "\n\n\n\n 0 - MainMenu </pre>";
+
+
+ InitMenu(menu);
}
-// End of Menu section
+// End of Timers Menu
// Media Player Section
@@ -1610,10 +1661,12 @@ function LoadMediaSettings() {
currMed = 0;
showMediaList();
mediaPlayer.addEventListener(mediaPlayer.ON_POSITION_CHANGED, ShowMediaOSD);
+ mediaPlayer.addEventListener(mediaPlayer.ON_STATE_CHANGED, onStateChanged);
}
function UnloadMediaSettings() {
mediaPlayer.removeEventListener(mediaPlayer.ON_POSITION_CHANGED, ShowMediaOSD);
+ mediaPlayer.removeEventListener(mediaPlayer.ON_STATE_CHANGED, onStateChanged);
mediaList.style.opacity = 0;
mediaList.innerHTML = "<h1><center style='font-size:" + fsRec + ";color:white;'> Please WAIT </center></h1>";
showDisplay((currChan.toString()), false, 100, 0 );
@@ -1632,6 +1685,28 @@ function onKeyMedia(keyCode) {
UnloadMediaSettings();
break;
break;
+ case "Right":
+ if (mediaList.style.opacity != 0) {
+ incMed(9);
+ do
+ {
+ incMed(1);
+ }
+ while (!recTitl[currMed]);
+ showMediaList();
+ }
+ break;
+ case "Left":
+ if (mediaList.style.opacity != 0) {
+ decMed(9);
+ do
+ {
+ decMed(1);
+ }
+ while (!recTitl[currMed]);
+ showMediaList();
+ }
+ break;
case "Down":
if (mediaList.style.opacity != 0) {
do
@@ -1695,6 +1770,13 @@ function onKeyMedia(keyCode) {
audio = 0;
}
break;
+ case KEY_REC:
+ case "MediaRecord":
+ createNewAsset();
+ recordStart(recLink[currMed]);
+ UnloadMediaSettings();
+// setTimeout("recordStop();",((recDura[currMed] * 1000) + 5000));
+ break;
case "MediaRewind":
if (mediaPlayer.getState() != mediaPlayer.STATE_IDLE) {
mediaPlayer.play(-4000);
@@ -1704,18 +1786,20 @@ function onKeyMedia(keyCode) {
case "MediaForward":
if (mediaPlayer.getState() != mediaPlayer.STATE_IDLE) {
mediaPlayer.play(4000);
+// mediaPlayer.playFromPosition(12000,1000);
showDisplay("FF", false, 100, 0 );
}
break;
case "MediaStop":
- if (mediaPlayer.getState() != mediaPlayer.STATE_IDLE) {
- mediaPlayer.close();
- }
+ // if (mediaPlayer.getState() != mediaPlayer.STATE_IDLE) {
+ // mediaPlayer.close();
+ // }
+ play(channels[currChan]);
if (isRecording == 1) {
recordStop();
isRecording = 0;
}
- mediaList.style.opacity = 0.8;
+ mediaList.style.opacity = 0.9;
showDisplay("STOP", false, 100, 0 );
showMediaList();
break;
@@ -1768,21 +1852,25 @@ for (i=0;i<x.length;i++)
recTitl[i] = (x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue);
recLink[i] = (x[i].getElementsByTagName("link")[0].childNodes[0].nodeValue);
recDesc[i] = (x[i].getElementsByTagName("description")[0].childNodes[0].nodeValue);
+ recDura[i] = (x[i].getElementsByTagName("duration")[0].childNodes[0].nodeValue);
}
}
function getRecList2() {
recTitl[0] = "RTSP Stream";
-recLink[0] = "rtsp://192.168.3.15:5554/MyVideo";
+recLink[0] = "rtsp://192.168.3.15:8000/video0/000_Mpeg4/CSI:_Crime_Scene_Investigation/2012.11.02-22:15-Fr/2012-11-02.22.05.32-0.rec";
recDesc[0] = " ";
-recTitl[1] = "RTP Stream";
-recLink[1] = "239.255.42.42:1234 ";
+recTitl[1] = "DVR";
+recLink[1] = "dvr:///pvr/storage/asset_bmyjD4";
recDesc[1] = " ";
-recTitl[2] = "RTSP 00001 Stream";
-recLink[2] = "rtsp://192.168.3.15/00001.ts";
+recTitl[2] = "HTTP Vermist";
+recLink[2] = "http://192.168.3.15/portal/webkit/video0/Vermist/2013.01.09-22:10-Mi/2013-01-09.22.05.43-0.rec/00001.ts";
recDesc[2] = " ";
-nrMedia = 2;
+recTitl[3] = "FILE Vermist";
+recLink[3] = "file://mnt/Vermist/2013.01.09-22:10-Mi/2013-01-09.22.05.43-0.rec/00001.ts";
+recDesc[3] = " ";
+nrMedia = 3;
}
@@ -1854,9 +1942,7 @@ function createNewAsset() {
}
}
-function recordStart() {
- createNewAsset();
- uri = ServerAdres + channels[currChan];
+function recordStart(uri) {
alert("opening mediaRecorder...");
try {
mediaRecorder.open(uri, assetId);
@@ -1883,6 +1969,42 @@ function recordStop() {
}
}
+function onStateChanged(ev) {
+ alert("Media player state changed: state=" + ev.state + ", reason=" + ev.reason + ", code=" + ev.code);
+
+ if ( ( ev.state == 6 && ev.reason == "HostUnreachable" ) || ( ev.state == 2 && ev.reason == "PositionEnd" )) {
+ play(channels[currChan]);
+ mediaList.style.opacity = 0.9;
+ showDisplay("STOP", false, 100, 0 );
+ showMediaList();
+ }
+
+}
+
+function onRecorderStateChanged(event) {
+ alert("EVENT! " + event.reason + " *** " + event.state);
+
+ switch (event.state) {
+ case mediaRecorder.STATE_IDLE:
+ // "STATE_IDLE";
+ break;
+ case mediaRecorder.STATE_CONNECTING:
+ // "STATE_CONNECTING";
+ break;
+ case mediaRecorder.STATE_PAUSED:
+ // "STATE_PAUSED";
+ break;
+ case mediaRecorder.STATE_RECORDING:
+ // "STATE_RECORDING";
+ break;
+ case mediaRecorder.STATE_FAILED:
+ // "STATE_FAILED";
+ recordStop();
+ break;
+ }
+
+}
+
function ShowMediaOSD() {
// Display Name/ length
@@ -1890,6 +2012,62 @@ function ShowMediaOSD() {
}
+
+function onScheduledStart(event) {
+ // event is of type ToiSchedulerServiceBooking, see docs
+ var timertype = toi.schedulerService.getParameter(event.booking.id, "Type");
+
+ if ( timertype == "SwitchOnly") {
+ isVisible = 0;
+ isFullscreen = 1;
+ FullScreen();
+ setVisible(isVisible);
+ setOSDtimer();
+ // switch only if not already on that channel.
+ if (currChan !== toi.schedulerService.getParameter(event.booking.id, "Channel")) {
+ currChan = toi.schedulerService.getParameter(event.booking.id, "Channel");
+ play(channels[currChan]);
+ }
+
+ } else {
+ try {
+ createNewAsset()
+ mediaRecorder.open(toi.schedulerService.getParameter(event.booking.id, "Channel"), assetId);
+
+ var propList = new Array(toi.assetManagerService.PROPERTY_SYSTEM_PLAYBACKURI);
+ var properties = toi.assetManagerService.getProperties(assetId, propList);
+ var assetURI = properties[0].value;
+
+ // save the assetId in the booking
+ toi.schedulerService.setParameter(event.booking.id, "assetURI", assetURI);
+
+ mediaRecorder.record();
+ alert("Recording to " + assetURI);
+ }
+ catch (e) {
+ alert(e);
+ }
+ }
+}
+
+
+function onScheduledStop(event) {
+ var timertype = toi.schedulerService.getParameter(event.booking.id, "Type");
+
+ if ( timertype == !"SwitchOnly") {
+ try {
+ mediaRecorder.close();
+
+ }
+ catch (e) {
+ alert(e);
+ }
+ }
+}
+
+
+
+
</script>