summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorM. Voerman <rekordc@gmail.com>2013-07-18 00:12:59 +0200
committerM. Voerman <rekordc@gmail.com>2013-07-18 00:12:59 +0200
commitc0b2614962d17b7585fb7c85c5a7f763c321c316 (patch)
tree04149db9d313e508c8697fefcd492313b904eaec
parent6295e53f95118aea8b6814932c06d318c0a65e82 (diff)
downloadvdr-vipclient-c0b2614962d17b7585fb7c85c5a7f763c321c316.tar.gz
vdr-vipclient-c0b2614962d17b7585fb7c85c5a7f763c321c316.tar.bz2
Server based pause function.
-rw-r--r--History5
-rw-r--r--index.html82
-rwxr-xr-xlang_dut.js2
-rwxr-xr-xlang_eng.js2
l---------language.js2
-rw-r--r--settings.js3
6 files changed, 81 insertions, 15 deletions
diff --git a/History b/History
index 725b9bd..8b11642 100644
--- a/History
+++ b/History
@@ -5,7 +5,10 @@ VDR 1.7.29
0.21 Language in sepate file, link your lang_XXX.js to language.js to activate it.
Updated EPG filter, (DVB-T defaults to German)
- Audio, subs etc settings are now stored on the box. So they are kept after reboot.
+ Audio, subs etc settings are now stored on the box. So they are kept after reboot.
+ OSD Time out can be set from settings.js
+ Pause Live TV on Server
+
0.20 Updated EPG filter
diff --git a/index.html b/index.html
index 11a6645..6311698 100644
--- a/index.html
+++ b/index.html
@@ -807,9 +807,11 @@ function onKeyDown(event) {
if(isFullscreen && PauseOnServer) {
if(mediaPlayer.getState() == mediaPlayer.STATE_PLAYING) {
+ isPause = 1;
ServerPause();
SetLed(1,1,10);
- setTimeout("mediaPlayer.play(0);",5000);
+// setTimeout("mediaPlayer.play(0);",5000);
+ mediaPlayer.play(0);
break;
}
if(mediaPlayer.getState() == mediaPlayer.STATE_PAUSED || mediaPlayer.getState() == mediaPlayer.STATE_FASTFORWARDING ||
@@ -2459,6 +2461,7 @@ function UnloadMediaSettings() {
showDisplay((currChan.toString()), false, 100, 0 );
isMediaMenu = 0;
isFullscreen = 1;
+ isPause = 0;
if (mediaPlayer.getState() != mediaPlayer.STATE_PLAYING ) {
play(channels[currChan]);
}
@@ -2693,8 +2696,10 @@ if (DelisOK) {
videoplane.subtitles = Boolean(ShowSubs); // Enable subtitles or Disable subtitles
break;
case "Blue":
- ShowInfo();
- osdepginfo.style.opacity = 1 - osdepginfo.style.opacity;
+ if ( isPause == 0 ) {
+ ShowInfo();
+ osdepginfo.style.opacity = 1 - osdepginfo.style.opacity;
+ }
break;
case "Menu":
osdepginfo.style.opacity = 0;
@@ -2747,7 +2752,7 @@ if (DelisOK) {
}
break;
case "MediaStop":
- if (currMed == -1) {
+ if (currMed == -1 || isPause == 1) {
osdepginfo.style.opacity = 0;
isFullscreen = 1; play(channels[currChan]);
UnloadMediaSettings();
@@ -3304,6 +3309,23 @@ function playRec(uri) {
}
+function pauseRec(uri) {
+ try {
+ if (mediaPlayer.getState() != mediaPlayer.STATE_IDLE) {
+ mediaPlayer.close();
+ }
+ if (osdepginfo.style.opacity == 1) {osdepginfo.style.opacity = 0;}
+ mediaPlayer.open(uri);
+ mediaPlayer.play(0);
+ showDisplay("PAUS", false, 100, 0 );
+ } catch (e) {
+ alert("Failed opening recording: " + e);
+ return;
+ }
+}
+
+
+
function createNewAsset() {
try {
assetId = toi.assetManagerService.createAsset(toi.assetManagerService.ASSET_PVR);
@@ -3409,17 +3431,15 @@ function ServerPause() {
setTimeout("xmlhttp.open('POST',(RestFulAPI + '/remote/Record'),false);xmlhttp.send();",5000);
//Show some info on screen
- settimer(EPG[NowNext][2][currChan],"PAUSE",0);
+ settimer(EPG[NowNext][2][currChan],Lang[70],0);
switchtimer.style.opacity = 1;
setTimeout("switchtimer.style.opacity = 0; ", 7000);
} catch(e) {
alert("Sending Pause key to server problem: " + e);
}
- //Next steps:
- //Find recording using restfulapi
- //Open recording and pause.
+ setTimeout("getPauseFile();",6000);
//end of function
}
@@ -3435,6 +3455,42 @@ try {
}
}
+
+function getPauseFile() {
+
+try {
+ xmlhttp=new XMLHttpRequest();
+ xmlhttp.open("GET",(RestFulAPI + "/recordings.xml?" + new Date().getTime()),false);
+ xmlhttp.send();
+ xmlDoc=xmlhttp.responseXML;
+ var x=xmlDoc.getElementsByTagName("recording");
+ nrMedia = x.length - 1;
+ for (var i=0;i<x.length;i++)
+ {
+ var xx = x[i].getElementsByTagName("param")[2].childNodes[0].nodeValue.split(".");
+ xx = xx[(xx.length-2)].split("-");
+
+ if ( xx[0] == currChan ) {
+ recLink[0] = recServ + x[i].getElementsByTagName("param")[2].childNodes[0].nodeValue;
+// recDura[0] = x[i].getElementsByTagName("param")[8].childNodes[0].nodeValue;
+ }
+
+ }
+
+ } catch(e) {
+ alert("Get Recordings problem: " + e);
+ }
+ getRecOK = 0;
+ recDura[0] = 3600;// set to 1 hour
+ LoadMediaSettings();// sets currMed to 0
+ recTitl[0] = "Time Shift File"
+ position = 0;
+ pauseRec(recLink[0]);
+
+}
+
+
+
function ServerRecordTimer(SC) {
//Timed Instant recording on server
//Can be replaced if timer exchange is possible
@@ -3471,9 +3527,13 @@ try {
function BackToTV() {
play(channels[currChan]);
- mediaList.style.opacity = 0.9;
- showDisplay("STOP", false, 100, 0 );
- showMediaList();
+ if (isPause == 1) {
+ UnloadMediaSettings();
+ } else {
+ mediaList.style.opacity = 0.9;
+ showDisplay("STOP", false, 100, 0 );
+ showMediaList();
+ }
}
diff --git a/lang_dut.js b/lang_dut.js
index 08e821f..54ce4ab 100755
--- a/lang_dut.js
+++ b/lang_dut.js
@@ -95,3 +95,5 @@ Lang[63] = " Opnieuw verbinden ";
Lang[64] = " Verbonden met MPD server ";
Lang[65] = " maar streaming gestopt ";
Lang[66] = " Reden ";
+
+Lang[70] = "Pause";
diff --git a/lang_eng.js b/lang_eng.js
index 8d15bb6..26cf7fd 100755
--- a/lang_eng.js
+++ b/lang_eng.js
@@ -95,3 +95,5 @@ Lang[63] = " Reconnect ";
Lang[64] = " Connected to MPD server ";
Lang[65] = " but streaming ended ";
Lang[66] = " Reason ";
+
+Lang[70] = "Pause";
diff --git a/language.js b/language.js
index 636897e..0d9f0f3 120000
--- a/language.js
+++ b/language.js
@@ -1 +1 @@
-lang_dut.js \ No newline at end of file
+lang_eng.js \ No newline at end of file
diff --git a/settings.js b/settings.js
index fb8d5b6..17b422e 100644
--- a/settings.js
+++ b/settings.js
@@ -258,5 +258,4 @@ var free_space = 0;
var used_space = 0;
var perc_space = 0;
-
-
+var isPause = 0; //used by pause routine.