diff options
author | M. Voerman <rekordc@gmail.com> | 2013-09-10 16:03:12 +0200 |
---|---|---|
committer | M. Voerman <rekordc@gmail.com> | 2013-09-10 16:03:12 +0200 |
commit | 440ba1047d88831665104c98a4f3f20378b2ea8c (patch) | |
tree | d7ac2605c8b72fe59b4511870ea51f48f92db71b | |
parent | 3aeb04f6532c5293bf9ad5db3be1c2be0b21448e (diff) | |
download | vdr-vipclient-440ba1047d88831665104c98a4f3f20378b2ea8c.tar.gz vdr-vipclient-440ba1047d88831665104c98a4f3f20378b2ea8c.tar.bz2 |
Dynamic audio selection during live TV/playback
-rw-r--r-- | History | 2 | ||||
-rw-r--r-- | index.html | 103 | ||||
-rwxr-xr-x | lang_dut.js | 1 | ||||
-rwxr-xr-x | lang_eng.js | 1 | ||||
-rw-r--r-- | settings.js | 6 |
5 files changed, 40 insertions, 73 deletions
@@ -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. @@ -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(); |