X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fpython%2FPlugins%2FSystemPlugins%2FVideoEnhancement%2Fplugin.py;h=cde3930e5f15e84e08accb810bbb7ba667035b2b;hp=1939e2d514a4bf5f652c0470f226b6a142d1987c;hb=e1cd84473da2da0d23f4cea1d4143f17a8fb5a2c;hpb=151ace6626065824fb827310e82b49026d1e9ec9 diff --git a/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py b/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py old mode 100755 new mode 100644 index 1939e2d..cde3930 --- a/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py +++ b/lib/python/Plugins/SystemPlugins/VideoEnhancement/plugin.py @@ -1,66 +1,39 @@ from Plugins.Plugin import PluginDescriptor from Components.ConfigList import ConfigListScreen -from Components.config import getConfigListEntry, config, ConfigBoolean +from Components.config import getConfigListEntry, config, ConfigNothing, ConfigSelection from Components.ActionMap import ActionMap -from Components.Button import Button -from Components.Label import Label +from Components.Sources.StaticText import StaticText from Screens.Screen import Screen -from Screens.VirtualKeyBoard import VirtualKeyBoard -from Screens.ChoiceBox import ChoiceBox from Screens.MessageBox import MessageBox -from enigma import ePoint -from Tools import Notifications -from Tools.HardwareInfo import HardwareInfo -from VideoEnhancement import video_enhancement -import os +import VideoEnhancement +from os import path as os_path class VideoEnhancementSetup(Screen, ConfigListScreen): skin = """ - - - - - - - - - - - - - - """ - - def __init__(self, session, hw): + + + + + + + + + + + + + """ + + def __init__(self, session): Screen.__init__(self, session) self.session = session - self.hw = hw self.onChangedEntry = [ ] self.setup_title = "Videoenhancement" - self.contrastEntry = None - self.saturationEntry = None - self.hueEntry = None - self.brightnessEntry = None - self.splitEntry = None - self.sharpnessEntry = None - self.auto_fleshEntry = None - self.green_boostEntry = None - self.blue_boostEntry = None - self.block_noise_reductionEntry = None - self.mosquito_noise_reductionEntry = None - self.digital_contour_removalEntry = None - self.dynamic_contrastEntry = None - - # handle hotplug by re-creating setup - self.onShow.append(self.startHotplug) - self.onHide.append(self.stopHotplug) - self.list = [ ] self.xtdlist = [ ] - self.hw_type = HardwareInfo().get_device_name() ConfigListScreen.__init__(self, self.list, session = self.session, on_change = self.changedEntry) self["actions"] = ActionMap(["SetupActions", "ColorActions"], @@ -71,11 +44,11 @@ class VideoEnhancementSetup(Screen, ConfigListScreen): "blue": self.keyBlue, }, -2) - self["key_red"] = Button(_("Cancel")) - self["key_green"] = Button(_("OK")) - self["key_yellow"] = Button(_("Last config")) - self["key_blue"] = Button(_("Default")) - self["introduction"] = Label() + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("OK")) + self["key_yellow"] = StaticText(_("Last config")) + self["key_blue"] = StaticText(_("Default")) + self["introduction"] = StaticText() self.createSetup() self.rememberOldSettings() @@ -84,12 +57,6 @@ class VideoEnhancementSetup(Screen, ConfigListScreen): def layoutFinished(self): self.setTitle(_("Video enhancement setup")) - def startHotplug(self): - self.hw.on_hotplug.append(self.createSetup) - - def stopHotplug(self): - self.hw.on_hotplug.remove(self.createSetup) - def rememberOldSettings(self): self.oldContrast = config.pep.contrast.value self.oldSaturation = config.pep.saturation.value @@ -98,73 +65,42 @@ class VideoEnhancementSetup(Screen, ConfigListScreen): self.oldBlock_noise = config.pep.block_noise_reduction.value self.oldMosquito_noise = config.pep.mosquito_noise_reduction.value self.oldDigital_contour = config.pep.digital_contour_removal.value - if self.hw_type == 'dm8000': - self.oldSplit = config.pep.split.value - self.oldSharpness = config.pep.sharpness.value - self.oldAuto_flesh = config.pep.auto_flesh.value - self.oldGreen_boost = config.pep.green_boost.value - self.oldBlue_boost = config.pep.blue_boost.value - self.oldDynamic_contrast = config.pep.dynamic_contrast.value + self.oldScaler_sharpness = config.av.scaler_sharpness.value + self.oldSplit = config.pep.split.value + self.oldSharpness = config.pep.sharpness.value + self.oldAuto_flesh = config.pep.auto_flesh.value + self.oldGreen_boost = config.pep.green_boost.value + self.oldBlue_boost = config.pep.blue_boost.value + self.oldDynamic_contrast = config.pep.dynamic_contrast.value + + def addToConfigList(self, description, configEntry, add_to_xtdlist=False): + if isinstance(configEntry, ConfigNothing): + return None + entry = getConfigListEntry(description, configEntry) + self.list.append(entry); + if add_to_xtdlist: + self.xtdlist.append(entry) + return entry def createSetup(self): - self.contrastEntry = getConfigListEntry(_("Contrast"), config.pep.contrast) - self.saturationEntry = getConfigListEntry(_("Saturation"), config.pep.saturation) - self.hueEntry = getConfigListEntry(_("Hue"), config.pep.hue) - self.brightnessEntry = getConfigListEntry(_("Brightness"), config.pep.brightness) - self.block_noise_reductionEntry = getConfigListEntry(_("Block noise reduction"), config.pep.block_noise_reduction) - self.mosquito_noise_reductionEntry = getConfigListEntry(_("Mosquito noise reduction"), config.pep.mosquito_noise_reduction) - self.digital_contour_removalEntry = getConfigListEntry(_("Digital contour removal"), config.pep.digital_contour_removal) - - self.list = [ - self.contrastEntry - ] - - self.list.extend(( - self.saturationEntry, - self.hueEntry, - self.brightnessEntry - )) - if self.hw_type == 'dm800': - self.list.extend(( - self.block_noise_reductionEntry, - self.mosquito_noise_reductionEntry, - self.digital_contour_removalEntry - )) - - elif self.hw_type == 'dm8000': - self.splitEntry = getConfigListEntry(_("Split preview mode"), config.pep.split) - self.sharpnessEntry = getConfigListEntry(_("Sharpness"), config.pep.sharpness) - self.auto_fleshEntry = getConfigListEntry(_("Auto flesh"), config.pep.auto_flesh) - self.green_boostEntry = getConfigListEntry(_("Green boost"), config.pep.green_boost) - self.blue_boostEntry = getConfigListEntry(_("Blue boost"), config.pep.blue_boost) - self.dynamic_contrastEntry = getConfigListEntry(_("Dynamic contrast"), config.pep.dynamic_contrast) - - self.xtdlist = [ - self.splitEntry - ] - - self.xtdlist.extend(( - self.sharpnessEntry, - self.auto_fleshEntry, - self.green_boostEntry, - self.blue_boostEntry, - self.block_noise_reductionEntry, - self.mosquito_noise_reductionEntry, - self.digital_contour_removalEntry, - self.dynamic_contrastEntry - )) - - self.list.extend(( - self.splitEntry, - self.sharpnessEntry, - self.auto_fleshEntry, - self.green_boostEntry, - self.blue_boostEntry, - self.block_noise_reductionEntry, - self.mosquito_noise_reductionEntry, - self.digital_contour_removalEntry, - self.dynamic_contrastEntry - )) + self.list = [] + self.xtdlist = [] + addToConfigList = self.addToConfigList + self.contrastEntry = addToConfigList(_("Contrast"), config.pep.contrast) + self.saturationEntry = addToConfigList(_("Saturation"), config.pep.saturation) + self.hueEntry = addToConfigList(_("Hue"), config.pep.hue) + self.brightnessEntry = addToConfigList(_("Brightness"), config.pep.brightness) + self.scaler_sharpnessEntry = addToConfigList(_("Scaler sharpness"), config.av.scaler_sharpness) + self.splitEntry = addToConfigList(_("Split preview mode"), config.pep.split, True) + add_to_xtdlist = self.splitEntry is not None + self.sharpnessEntry = addToConfigList(_("Sharpness"), config.pep.sharpness, add_to_xtdlist) + self.auto_fleshEntry = addToConfigList(_("Auto flesh"), config.pep.auto_flesh, add_to_xtdlist) + self.green_boostEntry = addToConfigList(_("Green boost"), config.pep.green_boost, add_to_xtdlist) + self.blue_boostEntry = addToConfigList(_("Blue boost"), config.pep.blue_boost, add_to_xtdlist) + self.dynamic_contrastEntry = addToConfigList(_("Dynamic contrast"), config.pep.dynamic_contrast, add_to_xtdlist) + self.block_noise_reductionEntry = addToConfigList(_("Block noise reduction"), config.pep.block_noise_reduction, add_to_xtdlist) + self.mosquito_noise_reductionEntry = addToConfigList(_("Mosquito noise reduction"), config.pep.mosquito_noise_reduction, add_to_xtdlist) + self.digital_contour_removalEntry = addToConfigList(_("Digital contour removal"), config.pep.digital_contour_removal, add_to_xtdlist) self["config"].list = self.list self["config"].l.setSeperation(300) @@ -184,35 +120,37 @@ class VideoEnhancementSetup(Screen, ConfigListScreen): current = self["config"].getCurrent() if current == self.splitEntry: ConfigListScreen.keyLeft(self) - self.createSetup() elif current != self.splitEntry and current in self.xtdlist: self.previewlist = [ current, self.splitEntry ] - self.session.openWithCallback(self.PreviewClosed, VideoEnhancementPreview, configEntry = self.previewlist, oldSplitMode = config.pep.split.value) + maxvalue = current[1].max + self.session.openWithCallback(self.PreviewClosed, VideoEnhancementPreview, configEntry = self.previewlist, oldSplitMode = config.pep.split.value, maxValue = maxvalue) else: self.previewlist = [ current ] - self.session.openWithCallback(self.PreviewClosed, VideoEnhancementPreview, configEntry = self.previewlist) + maxvalue = current[1].max + self.session.openWithCallback(self.PreviewClosed, VideoEnhancementPreview, configEntry = self.previewlist, oldSplitMode = None, maxValue = maxvalue) def keyRight(self): current = self["config"].getCurrent() if current == self.splitEntry: ConfigListScreen.keyRight(self) - self.createSetup() elif current != self.splitEntry and current in self.xtdlist: self.previewlist = [ current, self.splitEntry ] - self.session.openWithCallback(self.PreviewClosed, VideoEnhancementPreview, configEntry = self.previewlist, oldSplitMode = config.pep.split.value ) + maxvalue = current[1].max + self.session.openWithCallback(self.PreviewClosed, VideoEnhancementPreview, configEntry = self.previewlist, oldSplitMode = config.pep.split.value, maxValue = maxvalue ) else: self.previewlist = [ current ] - self.session.openWithCallback(self.PreviewClosed, VideoEnhancementPreview, configEntry = self.previewlist) + maxvalue = current[1].max + self.session.openWithCallback(self.PreviewClosed, VideoEnhancementPreview, configEntry = self.previewlist, oldSplitMode = None, maxValue = maxvalue) def confirm(self, confirmed): if not confirmed: @@ -255,20 +193,20 @@ class VideoEnhancementSetup(Screen, ConfigListScreen): config.pep.mosquito_noise_reduction.setValue(self.oldMosquito_noise) if self.digital_contour_removalEntry is not None: config.pep.digital_contour_removal.setValue(self.oldDigital_contour) - - if self.hw_type == 'dm8000': - if self.splitEntry is not None: - config.pep.split.setValue('off') - if self.sharpnessEntry is not None: - config.pep.sharpness.setValue(self.oldSharpness) - if self.auto_fleshEntry is not None: - config.pep.auto_flesh.setValue(self.oldAuto_flesh) - if self.green_boostEntry is not None: - config.pep.green_boost.setValue(self.oldGreen_boost) - if self.blue_boostEntry is not None: - config.pep.blue_boost.setValue(self.oldBlue_boost) - if self.dynamic_contrastEntry is not None: - config.pep.dynamic_contrast.setValue(self.oldDynamic_contrast) + if self.scaler_sharpnessEntry is not None: + config.av.scaler_sharpness.setValue(self.oldScaler_sharpness) + if self.splitEntry is not None: + config.pep.split.setValue('off') + if self.sharpnessEntry is not None: + config.pep.sharpness.setValue(self.oldSharpness) + if self.auto_fleshEntry is not None: + config.pep.auto_flesh.setValue(self.oldAuto_flesh) + if self.green_boostEntry is not None: + config.pep.green_boost.setValue(self.oldGreen_boost) + if self.blue_boostEntry is not None: + config.pep.blue_boost.setValue(self.oldBlue_boost) + if self.dynamic_contrastEntry is not None: + config.pep.dynamic_contrast.setValue(self.oldDynamic_contrast) self.keySave() def keyYellow(self): @@ -292,20 +230,20 @@ class VideoEnhancementSetup(Screen, ConfigListScreen): config.pep.mosquito_noise_reduction.setValue(0) if self.digital_contour_removalEntry is not None: config.pep.digital_contour_removal.setValue(0) - - if self.hw_type == 'dm8000': - if self.splitEntry is not None: - config.pep.split.setValue('off') - if self.sharpnessEntry is not None: - config.pep.sharpness.setValue(0) - if self.auto_fleshEntry is not None: - config.pep.auto_flesh.setValue(0) - if self.green_boostEntry is not None: - config.pep.green_boost.setValue(0) - if self.blue_boostEntry is not None: - config.pep.blue_boost.setValue(0) - if self.dynamic_contrastEntry is not None: - config.pep.dynamic_contrast.setValue(0) + if self.scaler_sharpnessEntry is not None: + config.av.scaler_sharpness.setValue(13) + if self.splitEntry is not None: + config.pep.split.setValue('off') + if self.sharpnessEntry is not None: + config.pep.sharpness.setValue(0) + if self.auto_fleshEntry is not None: + config.pep.auto_flesh.setValue(0) + if self.green_boostEntry is not None: + config.pep.green_boost.setValue(0) + if self.blue_boostEntry is not None: + config.pep.blue_boost.setValue(0) + if self.dynamic_contrastEntry is not None: + config.pep.dynamic_contrast.setValue(0) self.keySave() def keyBlue(self): @@ -315,6 +253,7 @@ class VideoEnhancementSetup(Screen, ConfigListScreen): def changedEntry(self): for x in self.onChangedEntry: x() + self.selectionChanged() def getCurrentEntry(self): return self["config"].getCurrent()[0] @@ -330,20 +269,25 @@ class VideoEnhancementSetup(Screen, ConfigListScreen): class VideoEnhancementPreview(Screen, ConfigListScreen): skin = """ - - - - - - - """ - - def __init__(self, session, configEntry = None, oldSplitMode = None): + + + + + + + + + """ + + def __init__(self, session, configEntry = None, oldSplitMode = None, maxValue = None): Screen.__init__(self, session) self.onChangedEntry = [ ] self.setup_title = "Videoenhancement" self.oldSplitMode = oldSplitMode + self.maxValue = maxValue + self.configStepsEntry = None + self.isStepSlider = None self.list = [ ] self.configEntry = configEntry @@ -355,8 +299,9 @@ class VideoEnhancementPreview(Screen, ConfigListScreen): "save": self.keySave, }, -2) - self["key_red"] = Button(_("Cancel")) - self["key_green"] = Button(_("OK")) + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("OK")) + self["introduction"] = StaticText() self.createSetup() self.onLayoutFinish.append(self.layoutFinished) @@ -366,19 +311,41 @@ class VideoEnhancementPreview(Screen, ConfigListScreen): def createSetup(self): self.list = [ ] + if self.maxValue == 256: + self.configStepsEntry = getConfigListEntry(_("Change step size"), config.pep.configsteps) + if self.configEntry is not None: self.list = self.configEntry + if self.maxValue == 256: + self.list.append(self.configStepsEntry) + self["config"].list = self.list self["config"].l.setSeperation(300) self["config"].l.setList(self.list) + if not self.selectionChanged in self["config"].onSelectionChanged: + self["config"].onSelectionChanged.append(self.selectionChanged) + self.selectionChanged() + + def selectionChanged(self): + self["introduction"].setText(_("Current value: ") + self.getCurrentValue()) + try: + max_avail=self["config"].getCurrent()[1].max + if max_avail == 256: + self.isStepSlider = True + else: + self.isStepSlider = False + except AttributeError: + print "no max value" def keyLeft(self): + if self.isStepSlider is True: + self["config"].getCurrent()[1].increment = config.pep.configsteps.value ConfigListScreen.keyLeft(self) - self.createSetup() def keyRight(self): + if self.isStepSlider is True: + self["config"].getCurrent()[1].increment = config.pep.configsteps.value ConfigListScreen.keyRight(self) - self.createSetup() def keySave(self): if self.oldSplitMode is not None: @@ -404,6 +371,7 @@ class VideoEnhancementPreview(Screen, ConfigListScreen): def changedEntry(self): for x in self.onChangedEntry: x() + self.selectionChanged() def getCurrentEntry(self): return self["config"].getCurrent()[0] @@ -415,23 +383,16 @@ class VideoEnhancementPreview(Screen, ConfigListScreen): from Screens.Setup import SetupSummary return SetupSummary - def videoEnhancementSetupMain(session, **kwargs): - session.open(VideoEnhancementSetup, video_enhancement) - + session.open(VideoEnhancementSetup) def startSetup(menuid): if menuid != "system": return [ ] - return [(_("Video enhancement settings") , videoEnhancementSetupMain, "videoenhancement_setup", 41)] - def Plugins(**kwargs): list = [] - if config.usage.setup_level.index >= 2: # expert+ - hw_type = HardwareInfo().get_device_name() - if hw_type == 'dm8000' or hw_type == 'dm800': - if (os.path.exists("/proc/stb/vmpeg/0/pep_apply") == True): - list.append(PluginDescriptor(name=_("Videoenhancement Setup"), description=_("Advanced Video Enhancement Setup"), where = PluginDescriptor.WHERE_MENU, fnc=startSetup)) + if config.usage.setup_level.index >= 2 and os_path.exists("/proc/stb/vmpeg/0/pep_apply"): + list.append(PluginDescriptor(name=_("Videoenhancement Setup"), description=_("Advanced Video Enhancement Setup"), where = PluginDescriptor.WHERE_MENU, needsRestart = False, fnc=startSetup)) return list