Update EPG Cache(thanks to open source community)
[vuplus_dvbapp] / lib / python / Components / UsageConfig.py
index ce56f0f..52476ed 100644 (file)
@@ -1,7 +1,9 @@
 from Components.Harddisk import harddiskmanager
-from config import ConfigSubsection, ConfigYesNo, config, ConfigSelection, ConfigText, ConfigNumber, ConfigSet, ConfigLocations
+from Components.NimManager import nimmanager
+from config import ConfigSubsection, ConfigYesNo, config, ConfigSelection, ConfigText, ConfigNumber, ConfigSet, ConfigLocations, ConfigSelectionNumber
+from Tools.Directories import defaultRecordingLocation
 from Tools.Directories import resolveFilename, SCOPE_HDD
-from enigma import Misc_Options, setTunerTypePriorityOrder, eEnv;
+from enigma import Misc_Options, eEnv, setTunerTypePriorityOrder, setPreferredTuner, eServiceEvent
 from SystemInfo import SystemInfo
 import os
 
@@ -33,7 +35,7 @@ def InitUsageConfig():
                ("standard", _("standard")), ("swap", _("swap PiP and main picture")),
                ("swapstop", _("move PiP to main picture")), ("stop", _("stop PiP")) ])
 
-       config.usage.default_path = ConfigText(default = resolveFilename(SCOPE_HDD))
+       config.usage.default_path = ConfigText(default = "")
        config.usage.timer_path = ConfigText(default = "<default>")
        config.usage.instantrec_path = ConfigText(default = "<default>")
        config.usage.timeshift_path = ConfigText(default = "/media/hdd/")
@@ -70,6 +72,11 @@ def InitUsageConfig():
                ("4", "DVB-T/-C/-S"),
                ("5", "DVB-T/-S/-C") ])
 
+       nims = [ ("-1", _("auto")) ]
+       for x in nimmanager.nim_slots:
+               nims.append( (str(x.slot), x.getSlotName()) )
+       config.usage.frontend_priority = ConfigSelection(default = "-1", choices = nims)
+
        config.usage.show_event_progress_in_servicelist = ConfigYesNo(default = False)
 
        config.usage.blinking_display_clock_during_recording = ConfigYesNo(default = False)
@@ -82,6 +89,46 @@ def InitUsageConfig():
                setTunerTypePriorityOrder(int(configElement.value))
        config.usage.alternatives_priority.addNotifier(TunerTypePriorityOrderChanged, immediate_feedback=False)
 
+       def PreferredTunerChanged(configElement):
+               setPreferredTuner(int(configElement.value))
+       config.usage.frontend_priority.addNotifier(PreferredTunerChanged)
+
+       config.epg = ConfigSubsection()
+       config.epg.eit = ConfigYesNo(default = True)
+       config.epg.mhw = ConfigYesNo(default = False)
+       config.epg.freesat = ConfigYesNo(default = True)
+       config.epg.viasat = ConfigYesNo(default = True)
+       config.epg.netmed = ConfigYesNo(default = True)
+       config.epg.virgin = ConfigYesNo(default = False)
+       def EpgSettingsChanged(configElement):
+               from enigma import eEPGCache
+               mask = 0xffffffff
+               if not config.epg.eit.value:
+                       mask &= ~(eEPGCache.NOWNEXT | eEPGCache.SCHEDULE | eEPGCache.SCHEDULE_OTHER)
+               if not config.epg.mhw.value:
+                       mask &= ~eEPGCache.MHW
+               if not config.epg.freesat.value:
+                       mask &= ~(eEPGCache.FREESAT_NOWNEXT | eEPGCache.FREESAT_SCHEDULE | eEPGCache.FREESAT_SCHEDULE_OTHER)
+               if not config.epg.viasat.value:
+                       mask &= ~eEPGCache.VIASAT
+               #if not config.epg.netmed.value:
+               #       mask &= ~(eEPGCache.NETMED_SCHEDULE | eEPGCache.NETMED_SCHEDULE_OTHER)
+               #if not config.epg.virgin.value:
+               #       mask &= ~(eEPGCache.VIRGIN_NOWNEXT | eEPGCache.VIRGIN_SCHEDULE)
+               eEPGCache.getInstance().setEpgSources(mask)
+       config.epg.eit.addNotifier(EpgSettingsChanged)
+       config.epg.mhw.addNotifier(EpgSettingsChanged)
+       config.epg.freesat.addNotifier(EpgSettingsChanged)
+       config.epg.viasat.addNotifier(EpgSettingsChanged)
+       config.epg.netmed.addNotifier(EpgSettingsChanged)
+       config.epg.virgin.addNotifier(EpgSettingsChanged)
+
+       config.epg.histminutes = ConfigSelectionNumber(min = 0, max = 120, stepwidth = 15, default = 0, wraparound = True)
+       def EpgHistorySecondsChanged(configElement):
+               from enigma import eEPGCache
+               eEPGCache.getInstance().setEpgHistorySeconds(config.epg.histminutes.getValue()*60)
+       config.epg.histminutes.addNotifier(EpgHistorySecondsChanged)
+
        def setHDDStandby(configElement):
                for hdd in harddiskmanager.HDDList():
                        hdd[1].setIdleTime(int(configElement.value))
@@ -131,6 +178,123 @@ def InitUsageConfig():
 
        config.seek.speeds_backward.addNotifier(updateEnterBackward, immediate_feedback = False)
 
+       config.subtitles = ConfigSubsection()
+       config.subtitles.subtitle_fontcolor = ConfigSelection(default = "0", choices = [
+               ("0", _("default")),
+               ("1", _("white")),
+               ("2", _("yellow")),
+               ("3", _("green")),
+               ("4", _("cyan")),
+               ("5", _("blue")),
+               ("6", _("magneta")),
+               ("7", _("red")),
+               ("8", _("black")) ])
+       config.subtitles.subtitle_fontsize  = ConfigSelection(choices = ["%d" % x for x in range(16,101) if not x % 2], default = "20")
+       config.subtitles.subtitle_bgcolor = ConfigSelection(default = "0", choices = [
+               ("0", _("black")),
+               ("1", _("red")),
+               ("2", _("magneta")),
+               ("3", _("blue")),
+               ("4", _("cyan")),
+               ("5", _("green")),
+               ("6", _("yellow")),
+               ("7", _("white"))])
+       config.subtitles.subtitle_bgopacity = ConfigSelection(default = "225", choices = [
+               ("0", _("No transparency")),
+               ("25", "10%"),
+               ("50", "20%"),
+               ("75", "30%"),
+               ("100", "40%"),
+               ("125", "50%"),
+               ("150", "60%"),
+               ("175", "70%"),
+               ("200", "80%"),
+               ("225", "90%"),
+               ("255", _("Full transparency"))])
+       config.subtitles.subtitle_edgestyle = ConfigSelection(default = "2", choices = [
+               ("0", "None"),
+               ("1", "Raised"),
+               ("2", "Depressed"),
+               ("3", "Uniform")])
+       config.subtitles.subtitle_edgestyle_level = ConfigSelection(choices = ["0", "1", "2", "3", "4", "5"], default = "3")
+       config.subtitles.subtitle_opacity = ConfigSelection(default = "0", choices = [
+               ("0", _("No transparency")),
+               ("75", "25%"),
+               ("150", "50%")])
+       config.subtitles.subtitle_original_position = ConfigYesNo(default = True)
+       config.subtitles.subtitle_alignment = ConfigSelection(choices = [("left", _("left")), ("center", _("center")), ("right", _("right"))], default = "center")
+       config.subtitles.subtitle_position = ConfigSelection( choices = ["0", "50", "100", "150", "200", "250", "300", "350", "400", "450", "500", "550", "600"], default = "100")
+
+       config.subtitles.dvb_subtitles_centered = ConfigYesNo(default = False)
+
+       subtitle_delay_choicelist = []
+       for i in range(-900000, 1845000, 45000):
+               if i == 0:
+                       subtitle_delay_choicelist.append(("0", _("No delay")))
+               else:
+                       subtitle_delay_choicelist.append((str(i), "%2.1f sec" % (i / 90000.)))
+       config.subtitles.subtitle_noPTSrecordingdelay = ConfigSelection(default = "315000", choices = subtitle_delay_choicelist)
+       config.subtitles.subtitle_bad_timing_delay = ConfigSelection(default = "0", choices = subtitle_delay_choicelist)
+       config.subtitles.subtitle_rewrap = ConfigYesNo(default = False)
+       config.subtitles.colourise_dialogs = ConfigYesNo(default = False)
+       config.subtitles.pango_subtitle_fontswitch = ConfigYesNo(default = True)
+       config.subtitles.pango_subtitles_delay = ConfigSelection(default = "0", choices = subtitle_delay_choicelist)
+       config.subtitles.pango_subtitles_fps = ConfigSelection(default = "1", choices = [
+               ("1", _("Original")),
+               ("23976", _("23.976")),
+               ("24000", _("24")),
+               ("25000", _("25")),
+               ("29970", _("29.97")),
+               ("30000", _("30"))])
+       config.subtitles.pango_autoturnon = ConfigYesNo(default = True)
+
+       config.autolanguage = ConfigSubsection()
+       epg_language_choices=[
+               ("---", _("None")),
+               ("eng qaa", _("English")),
+               ("deu ger", _("German")),
+               ("ara", _("Arabic")),
+               ("eus baq", _("Basque")),
+               ("bul", _("Bulgarian")),
+               ("hrv", _("Croatian")),
+               ("ces cze", _("Czech")),
+               ("dan", _("Danish")),
+               ("dut ndl nld", _("Dutch")),
+               ("est", _("Estonian")),
+               ("fin", _("Finnish")),
+               ("fra fre", _("French")),
+               ("ell gre", _("Greek")),
+               ("heb", _("Hebrew")),
+               ("hun", _("Hungarian")),
+               ("ita", _("Italian")),
+               ("lav", _("Latvian")),
+               ("lit", _("Lithuanian")),
+               ("ltz", _("Luxembourgish")),
+               ("nor", _("Norwegian")),
+               ("fas per fa pes", _("Persian")),
+               ("pol", _("Polish")),
+               ("por dub Dub DUB ud1", _("Portuguese")),
+               ("ron rum", _("Romanian")),
+               ("rus", _("Russian")),
+               ("srp", _("Serbian")),
+               ("slk slo", _("Slovak")),
+               ("slv", _("Slovenian")),
+               ("spa", _("Spanish")),
+               ("swe", _("Swedish")),
+               ("tha", _("Thai")),
+               ("tur Audio_TUR", _("Turkish")),
+               ("ukr Ukr", _("Ukrainian"))]
+
+       def setEpgLanguage(configElement):
+               eServiceEvent.setEPGLanguage(configElement.value)
+       config.autolanguage.epglanguage = ConfigSelection(epg_language_choices, default="---")
+       config.autolanguage.epglanguage.addNotifier(setEpgLanguage)
+
+       def setEpgLanguageAlternative(configElement):
+               eServiceEvent.setEPGLanguageAlternative(configElement.value)
+       config.autolanguage.epglanguage_alternative = ConfigSelection(epg_language_choices, default="---")
+       config.autolanguage.epglanguage_alternative.addNotifier(setEpgLanguageAlternative)
+
 def updateChoices(sel, choices):
        if choices:
                defval = None
@@ -145,7 +309,7 @@ def updateChoices(sel, choices):
                sel.setChoices(map(str, choices), defval)
 
 def preferredPath(path):
-       if config.usage.setup_level.index < 2 or path == "<default>":
+       if config.usage.setup_level.index < 2 or path == "<default>" or not path:
                return None  # config.usage.default_path.value, but delay lookup until usage
        elif path == "<current>":
                return config.movielist.last_videodir.value
@@ -161,5 +325,5 @@ def preferredInstantRecordPath():
        return preferredPath(config.usage.instantrec_path.value)
 
 def defaultMoviePath():
-       return config.usage.default_path.value
+       return defaultRecordingLocation(config.usage.default_path.value)