--- /dev/null
+from enigma import eTimer
+from Components.config import config, ConfigSubsection, ConfigSlider, ConfigSelection,ConfigYesNo
+from Tools.CList import CList
+from Tools.HardwareInfo import HardwareInfo
+import os
+# The "VideoEnhancement" is the interface to /proc/stb/vmpeg/0.
+
+class VideoEnhancement:
+
+ firstRun = None
+
+ def __init__(self):
+ self.last_modes_preferred = [ ]
+ self.on_hotplug = CList()
+ self.createConfig()
+
+ def createConfig(self, *args):
+ hw_type = HardwareInfo().get_device_name()
+ config.pep = ConfigSubsection()
+
+ def setContrast(config):
+ myval = int(config.value*256)
+ try:
+ print "--> setting contrast to: %0.8X" % myval
+ open("/proc/stb/vmpeg/0/pep_contrast", "w").write("%0.8X" % myval)
+ except IOError:
+ print "couldn't write pep_contrast."
+
+ if VideoEnhancement.firstRun is False:
+ self.setConfiguredValues()
+
+ config.pep.contrast = ConfigSlider(default=128, limits=(0,256))
+ config.pep.contrast.addNotifier(setContrast)
+
+ def setSaturation(config):
+ myval = int(config.value*256)
+ try:
+ print "--> setting saturation to: %0.8X" % myval
+ open("/proc/stb/vmpeg/0/pep_saturation", "w").write("%0.8X" % myval)
+ except IOError:
+ print "couldn't write pep_saturaion."
+
+ if VideoEnhancement.firstRun is False:
+ self.setConfiguredValues()
+
+ config.pep.saturation = ConfigSlider(default=128, limits=(0,256))
+ config.pep.saturation.addNotifier(setSaturation)
+
+ def setHue(config):
+ myval = int(config.value*256)
+ try:
+ print "--> setting hue to: %0.8X" % myval
+ open("/proc/stb/vmpeg/0/pep_hue", "w").write("%0.8X" % myval)
+ except IOError:
+ print "couldn't write pep_hue."
+
+ if VideoEnhancement.firstRun is False:
+ self.setConfiguredValues()
+
+ config.pep.hue = ConfigSlider(default=128, limits=(0,256))
+ config.pep.hue.addNotifier(setHue)
+
+ def setBrightness(config):
+ myval = int(config.value*256)
+ try:
+ print "--> setting brightness to: %0.8X" % myval
+ open("/proc/stb/vmpeg/0/pep_brightness", "w").write("%0.8X" % myval)
+ except IOError:
+ print "couldn't write pep_brightness."
+
+ if VideoEnhancement.firstRun is False:
+ self.setConfiguredValues()
+
+ config.pep.brightness = ConfigSlider(default=128, limits=(0,256))
+ config.pep.brightness.addNotifier(setBrightness)
+
+ if hw_type == 'dm8000':
+ def setSplitMode(config):
+ try:
+ print "--> setting splitmode to:",str(config.value)
+ open("/proc/stb/vmpeg/0/pep_split", "w").write(str(config.value))
+ except IOError:
+ print "couldn't write pep_split."
+
+ if VideoEnhancement.firstRun is False:
+ self.setConfiguredValues()
+
+ config.pep.split = ConfigSelection(choices={
+ "off": _("Off"),
+ "left": _("Left"),
+ "right": _("Right")},
+ default = "off")
+ config.pep.split.addNotifier(setSplitMode)
+
+ def setSharpness(config):
+ myval = int(config.value*256)
+ try:
+ print "--> setting sharpness to: %0.8X" % myval
+ open("/proc/stb/vmpeg/0/pep_sharpness", "w").write("%0.8X" % myval)
+ except IOError:
+ print "couldn't write pep_sharpness."
+
+ if VideoEnhancement.firstRun is False:
+ self.setConfiguredValues()
+
+ config.pep.sharpness = ConfigSlider(default=0, limits=(0,256))
+ config.pep.sharpness.addNotifier(setSharpness)
+
+ def setAutoflesh(config):
+ myval = int(config.value)
+ try:
+ print "--> setting auto_flesh to: %0.8X" % myval
+ open("/proc/stb/vmpeg/0/pep_auto_flesh", "w").write("%0.8X" % myval)
+ except IOError:
+ print "couldn't write pep_auto_flesh."
+
+ if VideoEnhancement.firstRun is False:
+ self.setConfiguredValues()
+
+ config.pep.auto_flesh = ConfigSlider(default=0, limits=(0,4))
+ config.pep.auto_flesh.addNotifier(setAutoflesh)
+
+ def setGreenboost(config):
+ myval = int(config.value)
+ try:
+ print "--> setting green_boost to: %0.8X" % myval
+ open("/proc/stb/vmpeg/0/pep_green_boost", "w").write("%0.8X" % myval)
+ except IOError:
+ print "couldn't write pep_green_boost."
+
+ if VideoEnhancement.firstRun is False:
+ self.setConfiguredValues()
+
+ config.pep.green_boost = ConfigSlider(default=0, limits=(0,4))
+ config.pep.green_boost.addNotifier(setGreenboost)
+
+ def setBlueboost(config):
+ myval = int(config.value)
+ try:
+ print "--> setting blue_boost to: %0.8X" % myval
+ open("/proc/stb/vmpeg/0/pep_blue_boost", "w").write("%0.8X" % myval)
+ except IOError:
+ print "couldn't write pep_blue_boost."
+
+ if VideoEnhancement.firstRun is False:
+ self.setConfiguredValues()
+
+ config.pep.blue_boost = ConfigSlider(default=0, limits=(0,4))
+ config.pep.blue_boost.addNotifier(setBlueboost)
+
+ def setBlock_noise_reduction(config):
+ myval = int(config.value)
+ try:
+ print "--> setting block_noise_reduction to: %0.8X" % myval
+ open("/proc/stb/vmpeg/0/pep_block_noise_reduction", "w").write("%0.8X" % myval)
+ except IOError:
+ print "couldn't write pep_block_noise_reduction."
+
+ if VideoEnhancement.firstRun is False:
+ self.setConfiguredValues()
+
+ config.pep.block_noise_reduction = ConfigSlider(default=0, limits=(0,5))
+ config.pep.block_noise_reduction.addNotifier(setBlock_noise_reduction)
+
+ def setMosquito_noise_reduction(config):
+ myval = int(config.value)
+ try:
+ print "--> setting mosquito_noise_reduction to: %0.8X" % myval
+ open("/proc/stb/vmpeg/0/pep_mosquito_noise_reduction", "w").write("%0.8X" % myval)
+ except IOError:
+ print "couldn't write pep_mosquito_noise_reduction."
+
+ if VideoEnhancement.firstRun is False:
+ self.setConfiguredValues()
+
+ config.pep.mosquito_noise_reduction = ConfigSlider(default=0, limits=(0,5))
+ config.pep.mosquito_noise_reduction.addNotifier(setMosquito_noise_reduction)
+
+ def setDigital_contour_removal(config):
+ myval = int(config.value)
+ try:
+ print "--> setting digital_contour_removal to: %0.8X" % myval
+ open("/proc/stb/vmpeg/0/pep_digital_contour_removal", "w").write("%0.8X" % myval)
+ except IOError:
+ print "couldn't write pep_digital_contour_removal."
+
+ if VideoEnhancement.firstRun is False:
+ self.setConfiguredValues()
+
+ config.pep.digital_contour_removal = ConfigSlider(default=0, limits=(0,5))
+ config.pep.digital_contour_removal.addNotifier(setDigital_contour_removal)
+
+ def setDynamic_contrast(config):
+ myval = int(config.value)
+ try:
+ print "--> setting dynamic_contrast to: %0.8X" % myval
+ open("/proc/stb/vmpeg/0/pep_dynamic_contrast", "w").write("%0.8X" % myval)
+ except IOError:
+ print "couldn't write pep_dynamic_contrast."
+
+ if VideoEnhancement.firstRun is False:
+ self.setConfiguredValues()
+
+ config.pep.dynamic_contrast = ConfigSlider(default=0, limits=(0,256))
+ config.pep.dynamic_contrast.addNotifier(setDynamic_contrast)
+
+ VideoEnhancement.firstRun = True
+
+ def setConfiguredValues(self):
+ try:
+ print "--> applying pep values"
+ open("/proc/stb/vmpeg/0/pep_apply", "w").write("1")
+ VideoEnhancement.firstRun = False
+ except IOError:
+ print "couldn't apply pep values."
+
+
+if config.usage.setup_level.index >= 2: # expert+
+ hw_type = HardwareInfo().get_device_name()
+ if hw_type == 'dm8000' or hw_type == 'dm800':
+ video_enhancement = VideoEnhancement()
+ if video_enhancement.firstRun == True:
+ video_enhancement.setConfiguredValues()