From 440ba1047d88831665104c98a4f3f20378b2ea8c Mon Sep 17 00:00:00 2001 From: "M. Voerman" Date: Tue, 10 Sep 2013 16:03:12 +0200 Subject: Dynamic audio selection during live TV/playback --- History | 2 ++ index.html | 103 ++++++++++++++++++------------------------------------------ lang_dut.js | 1 + lang_eng.js | 1 + settings.js | 6 +++- 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 " + NN[NowNext] + " " + NN[2] + " " + NN[5] + " "; @@ -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 = " 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 = " 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 = " 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 = " 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 = " " + 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(); -- cgit v1.2.3