summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorM. Voerman <rekordc@gmail.com>2013-01-15 13:10:50 +0100
committerM. Voerman <rekordc@gmail.com>2013-01-15 13:10:50 +0100
commitccb6b85143b4bdbf4ee01365fe9398e15ae1504b (patch)
tree0c07a5e9b451136dfc85538b9bd5536948e01a1a
parent61c4e59768842e5708bf60571c63f22091b3db4a (diff)
downloadvdr-vipclient-ccb6b85143b4bdbf4ee01365fe9398e15ae1504b.tar.gz
vdr-vipclient-ccb6b85143b4bdbf4ee01365fe9398e15ae1504b.tar.bz2
Plays now http streams from MPD
-rw-r--r--History2
-rw-r--r--index.html63
-rw-r--r--settings.js17
3 files changed, 53 insertions, 29 deletions
diff --git a/History b/History
index b57f136..8a3e1bf 100644
--- a/History
+++ b/History
@@ -4,7 +4,7 @@
Lot of small fixes and changes.
Added Menu INFO for IP/ DVR state
Standby now stops the stream, getting back from standby reconnects to server & sets display
- Added initial support for MPD.
+ Added initial support for MPD -> client plays stream from MPD-httpd
0.10 Added sub Listinges for use as Radio list / Protected List / SD/HD list etc
(Use for Multicast Channels keyword MultiCast in Serveradres)
diff --git a/index.html b/index.html
index eccb122..0ae0488 100644
--- a/index.html
+++ b/index.html
@@ -1481,13 +1481,13 @@ function onKeyMenu(keyCode) {
switch(keyCode) {
case "BrowserBack":
if (menu !== 0) {
- if (menu == 3 ) { isFullscreen = 0; play(channels[currChan]); isFullscreen = 1; }
+ if (menu == 3 ) { isFullscreen = 0; play(channels[currChan]); isFullscreen = 1; mediaPlayer.removeEventListener(mediaPlayer.ON_STATE_CHANGED, MPD);}
menu = 0;
InitMenu(menu);
break;
}
case "Menu":
- if (menu == 3 ) { play(channels[currChan]); }
+ if (menu == 3 ) { play(channels[currChan]); mediaPlayer.removeEventListener(mediaPlayer.ON_STATE_CHANGED, MPD);}
isSetupMenu = 0;
mainmenu.style.opacity = 0;
break;
@@ -1662,7 +1662,7 @@ function onKeyMenu(keyCode) {
InitMenu(menu);
break;
case KEY_9:
- if (menu == 0) {
+ if (menu == 0 || menu == 3) {
menu = 3;
playMPD(MPDAddress);
InitMenu(menu);
@@ -1674,7 +1674,7 @@ function onKeyMenu(keyCode) {
break;
case KEY_0:
if (menu !== 0) {
- if (menu == 3 ) { isFullscreen = 0; play(channels[currChan]); isFullscreen = 1; }
+ if (menu == 3 ) { isFullscreen = 0; play(channels[currChan]); isFullscreen = 1; mediaPlayer.removeEventListener(mediaPlayer.ON_STATE_CHANGED, MPD);}
menu = 0;
InitMenu(menu);
}
@@ -1706,22 +1706,6 @@ function onKeyMenu(keyCode) {
}
-function playMPD(uri) {
- try {
- if (mediaPlayer.getState() != mediaPlayer.STATE_IDLE) {
- mediaPlayer.close();
- }
- mediaPlayer.open(uri);
- mediaPlayer.play(1000);
- showDisplay("MPD", false, 100, 0 );
- } catch (e) {
- alert("Failed opening recording: " + e);
- return;
- }
-}
-
-
-
function InitMenu(menu) {
if(menu == 0) { // Main Menu
@@ -1834,6 +1818,45 @@ function LoadTimers() {
// End of Menu section
+// MPD Section
+
+function MPD(ev) {
+ alert("Media player state changed: state=" + ev.state + ", reason=" + ev.reason + ", code=" + ev.code);
+
+ if ( ev.state == 6 && ev.reason == "HostUnreachable" ) {
+ showDisplay("ERRR", false, 100, 0 );
+ mainmenu.innerHTML = "<h1><center style='font-size:" + fsMenuMain + ";color:white;'> MPD Connection </center></h1><pre style='color:black;font-size:" + fsMenu + ";'> MENU to exit \n 0 - back to MainMenu \n 9 - Retry \n\n<center style='color:white;'>ERROR Connecting to MPD server : \n" + MPDAddress + "</center></pre>";
+ } else if ( ev.state == 2 ) { // && ev.reason == "PositionEnd" ) {
+ showDisplay("STOP", false, 100, 0 );
+ mainmenu.innerHTML = "<h1><center style='font-size:" + fsMenuMain + ";color:white;'> MPD Connection </center></h1><pre style='color:black;font-size:" + fsMenu + ";'> MENU to exit \n 0 - back to MainMenu \n 9 - Reconnect \n\n<center style='color:white;'>Connected to MPD server : \n" + MPDAddress + "\nbut streaming ended</center></pre>";
+ } else if ( ev.state == 3 && ev.reason == "CommandPlay" ) {
+ showDisplay("MPD", false, 100, 0 );
+ mainmenu.innerHTML = "<h1><center style='font-size:" + fsMenuMain + ";color:white;'> MPD Connection </center></h1><pre style='color:black;font-size:" + fsMenu + ";'> MENU to exit \n 0 - back to MainMenu \n\n\n<center style='color:white;'>Connected to MPD server : \n" + MPDAddress + "</center></pre>";
+ } else {
+ showDisplay("ERRR", false, 100, 0 );
+ mainmenu.innerHTML = "<h1><center style='font-size:" + fsMenuMain + ";color:white;'> MPD Connection </center></h1><pre style='color:black;font-size:" + fsMenu + ";'> MENU to exit \n 0 - back to MainMenu \n 9 - Reconnect \n\n<center style='color:white;'>Error : " + ev.state + "\n Reason : " + ev.reason + "</center></pre>";
+ }
+
+}
+
+function playMPD(uri) {
+ try {
+ if (mediaPlayer.getState() != mediaPlayer.STATE_IDLE) {
+ mediaPlayer.close();
+ }
+ mediaPlayer.open(uri);
+ mediaPlayer.play(1000);
+ if (!MPDListener) { mediaPlayer.addEventListener(mediaPlayer.ON_STATE_CHANGED, MPD); }
+ MPDListener = 1;
+ } catch (e) {
+ alert("Failed opening recording: " + e);
+ return;
+ }
+}
+
+
+// End of MPD Section
+
// Media Player Section
function LoadMediaSettings() {
diff --git a/settings.js b/settings.js
index 2c69afc..24a435c 100644
--- a/settings.js
+++ b/settings.js
@@ -6,8 +6,8 @@
// 1280x720
// 1920x1080
-var Xfactor = 1920 / 720;
-var Yfactor = 1080 / 576;
+var Xfactor = 1280 / 720;
+var Yfactor = 720 / 576;
var showClock = 0; // 0 = no, 1 = yes
@@ -34,8 +34,8 @@ var ChanGroup = 0; // default TV group
var minChan = new Array(); var maxChan = new Array(); var defChan = new Array(); var baseChn = new Array(); var protChn = new Array(); var ServerAdres = new Array(); // Define settings for Channels.
// Server for Recordings
-var recServ = "http://192.168.1.15:8000";
-var MPDAddress = "http://192.168.1.15:8888/mpd.mp3";
+var recServ = "http://192.168.3.15:8000";
+var MPDAddress = "http://192.168.3.15:8888";
// Radio channels.js Settings
minChan[9] = 9001;
@@ -43,7 +43,7 @@ maxChan[9] = 9099; // set not too far from max rd channel to speed up zapping
defChan[9] = 9051;
baseChn[9] = 9000;
protChn[9] = 0;
-ServerAdres[9] = "http://192.168.1.15:3000/";
+ServerAdres[9] = "http://192.168.3.15:3000/";
// Protected channels.js Settings
minChan[6] = 6001;
@@ -51,7 +51,7 @@ maxChan[6] = 6040; // set not too far from max prt channel to speed up zapping
defChan[6] = 6001;
baseChn[6] = 6000;
protChn[6] = 1;
-ServerAdres[6] = "http://192.168.1.15:3000/";
+ServerAdres[6] = "http://192.168.3.15:3000/";
// TV channels.js Settings
minChan[0] = 1;
@@ -59,7 +59,7 @@ maxChan[0] = 999; // set not too far from max TV channel to speed up zapping
defChan[0] = currChan;
baseChn[0] = 0;
protChn[0] = 0;
-ServerAdres[0] = "http://192.168.1.15:3000/";
+ServerAdres[0] = "http://192.168.3.15:3000/";
//HD list
minChan[1] = 1001;
@@ -67,7 +67,7 @@ maxChan[1] = 1999; // set not too far from max HD channel to speed up zapping
defChan[1] = 1001;
baseChn[1] = 1000;
protChn[1] = 0;
-ServerAdres[1] = "http://192.168.1.15:3000/";
+ServerAdres[1] = "http://192.168.3.15:3000/";
// MultiCast
minChan[5] = 5001;
@@ -216,3 +216,4 @@ var timer = new Array();
var getbookingID = 0;
var timerID = 0;
var nrMedia = 0;
+var MPDListener = 0;