diff options
author | M. Voerman <rekordc@gmail.com> | 2013-07-18 00:12:59 +0200 |
---|---|---|
committer | M. Voerman <rekordc@gmail.com> | 2013-07-18 00:12:59 +0200 |
commit | c0b2614962d17b7585fb7c85c5a7f763c321c316 (patch) | |
tree | 04149db9d313e508c8697fefcd492313b904eaec | |
parent | 6295e53f95118aea8b6814932c06d318c0a65e82 (diff) | |
download | vdr-vipclient-c0b2614962d17b7585fb7c85c5a7f763c321c316.tar.gz vdr-vipclient-c0b2614962d17b7585fb7c85c5a7f763c321c316.tar.bz2 |
Server based pause function.
-rw-r--r-- | History | 5 | ||||
-rw-r--r-- | index.html | 82 | ||||
-rwxr-xr-x | lang_dut.js | 2 | ||||
-rwxr-xr-x | lang_eng.js | 2 | ||||
l--------- | language.js | 2 | ||||
-rw-r--r-- | settings.js | 3 |
6 files changed, 81 insertions, 15 deletions
@@ -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 @@ -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. |