summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorM. Voerman <rekordc@gmail.com>2013-09-10 16:03:12 +0200
committerM. Voerman <rekordc@gmail.com>2013-09-10 16:03:12 +0200
commit440ba1047d88831665104c98a4f3f20378b2ea8c (patch)
treed7ac2605c8b72fe59b4511870ea51f48f92db71b
parent3aeb04f6532c5293bf9ad5db3be1c2be0b21448e (diff)
downloadvdr-vipclient-440ba1047d88831665104c98a4f3f20378b2ea8c.tar.gz
vdr-vipclient-440ba1047d88831665104c98a4f3f20378b2ea8c.tar.bz2
Dynamic audio selection during live TV/playback
-rw-r--r--History2
-rw-r--r--index.html103
-rwxr-xr-xlang_dut.js1
-rwxr-xr-xlang_eng.js1
-rw-r--r--settings.js6
5 files changed, 40 insertions, 73 deletions
diff --git a/History b/History
index e839809..f9172da 100644
--- a/History
+++ b/History
@@ -15,6 +15,8 @@ VDR 1.7.29
More info for SearchTimer
audio/subs type only from "Onload" function for now. (Need the space in the settings menu)
Change (preset) server from settings menu.
+ Save audio priority permanent (removed 'none' setting)
+ Dynamic audio selection with green button while watching. (Settings menu as before)
0.21 Language in sepate file, link your lang_XXX.js to language.js to activate it.
diff --git a/index.html b/index.html
index ecafecb..7b9548c 100644
--- a/index.html
+++ b/index.html
@@ -44,6 +44,18 @@ function onLoad() {
toi.informationService.setObject("vip.serveraddress","0",toi.informationService.STORAGE_PERMANENT)
}
+ try {
+ if (!toi.informationService.getObject("vip.languagepriority")) {}
+ } catch(e) {
+ // toi.informationService.setObject("vip.*","0",toi.informationService.STORAGE_PERMANENT)
+ toi.informationService.setObject("vip.languagepriority","0",toi.informationService.STORAGE_PERMANENT)
+ }
+
+
+
+
+
+ audio = Number(toi.informationService.getObject("vip.languagepriority"));
server_ip = server_ip_array[Number(toi.informationService.getObject("vip.serveraddress"))];
for (var i=0;i<10;i++) { if (ServerAdres[i] !== "FullURL" && ServerAdres[i] !== "MultiCast") {ServerAdres[i] = server_ip + ":3000/";} }
@@ -336,10 +348,13 @@ var cList = streamInfo.availableComponents;
var x;
xx = 0;
AvInfo[currStream] = "";
+lang_prio_dyn.length = 0
+
for(x=0; x<cList.length;x++) {
if(cList[x].type == 0) {
- xx = xx + 1;
+ lang_prio_dyn[xx] = mediaPlayer.getAudioStreamInfo(cList[x]).language;
AvInfo[currStream] = AvInfo[currStream] + " Audio " + xx + " " + mediaPlayer.getAudioStreamInfo(cList[x]).encoding + " - " + mediaPlayer.getAudioStreamInfo(cList[x]).language + " , ";
+ xx = xx + 1;
}
if(cList[x].type == 1) {
AvInfo[currStream] = AvInfo[currStream] + " Video " + mediaPlayer.getVideoStreamInfo(cList[x]).encoding + " size : " + mediaPlayer.getVideoStreamInfo(cList[x]).resolutionX + " x " + mediaPlayer.getVideoStreamInfo(cList[x]).resolutionY;
@@ -519,38 +534,14 @@ function onKeyDown(event) {
case "Green":
if(isFullscreen) {
if(!epgactive) {
- audio = audio + 1;
+ if (audio_dyn < (lang_prio_dyn.length -1)) { audio_dyn = audio_dyn + 1} else { audio_dyn = 0 }
is = toi.informationService;
- if(audio == 1) {
- is.setObject("cfg.media.audio.languagepriority","dut,eng,und",is.STORAGE_PERMANENT);
- osdlang.style.opacity = 1;
- osdlang.style.fontSize = fsAudio;
- osdlang.style.color = "blue";
- osdlang.innerHTML = "<img src='unmute.png'> Nederlands ";
- setTimeout("osdlang.style.opacity = 0; ", 3000);
- } else if(audio == 2) {
- is.setObject("cfg.media.audio.languagepriority","ger,deu,eng",is.STORAGE_PERMANENT);
- osdlang.style.opacity = 1;
- osdlang.style.fontSize = fsAudio;
- osdlang.style.color = "red";
- osdlang.innerHTML = "<img src='unmute.png'> Deutsch ";
- setTimeout("osdlang.style.opacity = 0; ", 3000);
- } else if(audio == 3) {
- is.setObject("cfg.media.audio.languagepriority","eng,und",is.STORAGE_PERMANENT);
- osdlang.style.opacity = 1;
- osdlang.style.fontSize = fsAudio;
- osdlang.style.color = "black";
- osdlang.innerHTML = "<img src='unmute.png'> English ";
- setTimeout("osdlang.style.opacity = 0; ", 3000);
- } else if(audio == 4) {
- is.unsetObject("cfg.media.audio.languagepriority",is.STORAGE_PERMANENT);
+ is.setObject("cfg.media.audio.languagepriority",lang_prio_dyn[audio_dyn] + "," + lang_prio[audio],is.STORAGE_PERMANENT);
osdlang.style.opacity = 1;
osdlang.style.fontSize = fsAudio;
- osdlang.style.color = "black";
- osdlang.innerHTML = "<img src='unmute.png'> None ";
+ osdlang.style.color = "white";
+ osdlang.innerHTML = "<img src='unmute.png'> " + lang_prio_dyn[audio_dyn] + " ";
setTimeout("osdlang.style.opacity = 0; ", 3000);
- audio = 0;
- }
}
} else if(isSchedule == 0 && !epgactive){
colorkeys.innerHTML = "<font color=red> " + NN[3 + NowNext] + " </font><font color=green> " + NN[NowNext] + " </font><font color=yellow> " + NN[2] + " </font><font color=blue> " + NN[5] + " </font>";
@@ -1990,18 +1981,10 @@ function onKeyMenu(keyCode) {
mainmenu.style.opacity = 0;
setTimeout("getSchedule(currChan);LoadMediaSettings();",100);
} else if (menu == 1) {
- audio = audio + 1;
+ if (audio < (lang_prio.length -1)) { audio = audio + 1} else { audio = 0 }
is = toi.informationService;
- if(audio == 1) {
- is.setObject("cfg.media.audio.languagepriority","dut,eng,und",is.STORAGE_PERMANENT);
- } else if(audio == 2) {
- is.setObject("cfg.media.audio.languagepriority","ger,deu,eng",is.STORAGE_PERMANENT);
- } else if(audio == 3) {
- is.setObject("cfg.media.audio.languagepriority","eng,swe,und",is.STORAGE_PERMANENT);
- } else if(audio == 4) {
- is.unsetObject("cfg.media.audio.languagepriority",is.STORAGE_PERMANENT);
- audio = 0;
- }
+ is.setObject("vip.languagepriority",audio.toString(),is.STORAGE_PERMANENT);
+ is.setObject("cfg.media.audio.languagepriority",lang_prio[audio],is.STORAGE_PERMANENT);
InitMenu(menu);
}
break;
@@ -2852,38 +2835,14 @@ if (DelisOK) {
ShowMediaOSD();
break;
case "Green":
- audio = audio + 1;
- is = toi.informationService;
- if(audio == 1) {
- is.setObject("cfg.media.audio.languagepriority","dut,eng,und",is.STORAGE_PERMANENT);
- osdlang.style.opacity = 1;
- osdlang.style.fontSize = fsAudio;
- osdlang.style.color = "white";
- osdlang.innerHTML = "<img src='unmute.png'> Nederlands ";
- setTimeout("osdlang.style.opacity = 0; ", 3000);
- } else if(audio == 2) {
- is.setObject("cfg.media.audio.languagepriority","ger,deu,eng",is.STORAGE_PERMANENT);
- osdlang.style.opacity = 1;
- osdlang.style.fontSize = fsAudio;
- osdlang.style.color = "red";
- osdlang.innerHTML = "<img src='unmute.png'> Deutsch ";
- setTimeout("osdlang.style.opacity = 0; ", 3000);
- } else if(audio == 3) {
- is.setObject("cfg.media.audio.languagepriority","eng,und",is.STORAGE_PERMANENT);
- osdlang.style.opacity = 1;
- osdlang.style.fontSize = fsAudio;
- osdlang.style.color = "black";
- osdlang.innerHTML = "<img src='unmute.png'> English ";
- setTimeout("osdlang.style.opacity = 0; ", 3000);
- } else if(audio == 4) {
- is.unsetObject("cfg.media.audio.languagepriority",is.STORAGE_PERMANENT);
- osdlang.style.opacity = 1;
- osdlang.style.fontSize = fsAudio;
- osdlang.style.color = "black";
- osdlang.innerHTML = "<img src='unmute.png'> None ";
- setTimeout("osdlang.style.opacity = 0; ", 3000);
- audio = 0;
- }
+ if (audio_dyn < (lang_prio_dyn.length -1)) { audio_dyn = audio_dyn + 1} else { audio_dyn = 0 }
+ is = toi.informationService;
+ is.setObject("cfg.media.audio.languagepriority",lang_prio_dyn[audio_dyn] + "," + lang_prio[audio],is.STORAGE_PERMANENT);
+ osdlang.style.opacity = 1;
+ osdlang.style.fontSize = fsAudio;
+ osdlang.style.color = "white";
+ osdlang.innerHTML = "<img src='unmute.png'> " + lang_prio_dyn[audio_dyn] + " ";
+ setTimeout("osdlang.style.opacity = 0; ", 3000);
break;
case "Yellow":
ShowSubs = 1 - ShowSubs;
diff --git a/lang_dut.js b/lang_dut.js
index 4a009f3..30f5c68 100755
--- a/lang_dut.js
+++ b/lang_dut.js
@@ -11,6 +11,7 @@ NN[4] = "-----";
NN[5] = "INFO";
NN[6] = "Terug";
+lang_prio_lang = new Array("Nederlands", "Duits", "Engels");
months = new Array('Januari', 'Februari', 'Maart', 'April', 'Mei', 'Juni', 'Juli', 'Augustus', 'September', 'Oktober', 'November', 'December');
days = new Array('Zondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrijdag', 'Zaterdag');
diff --git a/lang_eng.js b/lang_eng.js
index 23453ee..0574b49 100755
--- a/lang_eng.js
+++ b/lang_eng.js
@@ -11,6 +11,7 @@ NN[4] = "-----";
NN[5] = "INFO";
NN[6] = "BACK";
+lang_prio_lang = new Array("Dutch", "German", "English");
months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
days = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');
diff --git a/settings.js b/settings.js
index 0ec8bf4..591f3a4 100644
--- a/settings.js
+++ b/settings.js
@@ -51,6 +51,11 @@ var MPDAddress = ":8888";
var channeldigits = 2; // 0 - Max 9, 1 max 99, 2 max 999 or 3 max 9999 channels directly selectable by numbers (Don't set it to > 2 it crashes the player)
+var audio = 0;
+var audio_dyn = 0;
+lang_prio = new Array("dut,eng,und","ger,deu,eng","eng,und");
+var lang_prio_dyn = new Array(); //Used for dynamic audio track selection
+
//
// No need to change anything from here on.
//
@@ -113,7 +118,6 @@ var events = null;
var eitService = null;
var EPGShortnext = "";
var EPGShortnow = "";
-var audio = 0;
var listChan = 0;
var NowNext = 0;
var EpgInfo = new Array();