Skip to content

Commit

Permalink
use BoxInfo("model") instead BoxInfo("machine") (#4183)
Browse files Browse the repository at this point in the history
  • Loading branch information
Dima73 authored Feb 1, 2025
1 parent cb744bc commit d7c475b
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 41 deletions.
2 changes: 1 addition & 1 deletion lib/python/Components/RcModel.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ class RcModel:
RcModels = {}

def __init__(self):
self.model = BoxInfo.getItem("machine")
self.model = BoxInfo.getItem("model")
# cfg files has modelname rcname entries.
# modelname is boxname optionally followed by .rctype
for line in open((resolveFilename(SCOPE_SKIN, 'rc_models/rc_models.cfg')), 'r'):
Expand Down
77 changes: 38 additions & 39 deletions lib/python/Components/SystemInfo.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ def __delitem__(self, key):

class BoxInformation:
def __init__(self, root=""):
self.boxInfo = immutableDict({"machine": "default", "checksum": None}) #add one key to the boxInfoCollector as it always should exist to satisfy the CI test on github and predefine checksum
self.boxInfo = immutableDict({"machine": "default", "model": "unknown", "checksum": None}) #add one key to the boxInfoCollector as it always should exist to satisfy the CI test on github and predefine checksum
checksumcollectionstring = ""
file = root + "/usr/lib/enigma.info"
if fileExists(file):
Expand Down Expand Up @@ -139,11 +139,10 @@ def getBootdevice():


def setBoxInfoItems():
machine = BoxInfo.getItem("machine") #This contains the value where the image is buld from
model = BoxInfo.getItem("model") #This may contain more information about the specific model
model = BoxInfo.getItem("model") # This may contain more information about the specific model
BoxInfo.setItem("InDebugMode", eGetEnigmaDebugLvl() >= 4)
BoxInfo.setItem("CommonInterface", machine in ("h9combo", "h9combose", "h10", "pulse4kmini") and 1 or eDVBCIInterfaces.getInstance().getNumOfSlots())
BoxInfo.setItem("CiAlternativeCaHandling", machine in ("pulse4k", "pulse4kmini"))
BoxInfo.setItem("CommonInterface", model in ("h9combo", "h9combose", "h10", "pulse4kmini") and 1 or eDVBCIInterfaces.getInstance().getNumOfSlots())
BoxInfo.setItem("CiAlternativeCaHandling", model in ("pulse4k", "pulse4kmini"))
BoxInfo.setItem("CommonInterfaceCIDelay", fileCheck("/proc/stb/tsmux/rmx_delay"))
for cislot in range(0, BoxInfo.getItem("CommonInterface")):
BoxInfo.setItem("CI%dSupportsHighBitrates" % cislot, fileCheck("/proc/stb/tsmux/ci%d_tsclk" % cislot))
Expand All @@ -156,16 +155,16 @@ def setBoxInfoItems():
BoxInfo.setItem("ZapMode", fileCheck("/proc/stb/video/zapmode") or fileCheck("/proc/stb/video/zapping_mode"))
BoxInfo.setItem("NumFrontpanelLEDs", countFrontpanelLEDs())
BoxInfo.setItem("FrontpanelDisplay", fileExists("/dev/dbox/oled0") or fileExists("/dev/dbox/lcd0"))
BoxInfo.setItem("LCDsymbol_circle_recording", fileCheck("/proc/stb/lcd/symbol_circle") or machine in ("hd51", "vs1500") and fileCheck("/proc/stb/lcd/symbol_recording"))
BoxInfo.setItem("LCDsymbol_circle_recording", fileCheck("/proc/stb/lcd/symbol_circle") or model in ("hd51", "vs1500") and fileCheck("/proc/stb/lcd/symbol_recording"))
BoxInfo.setItem("LCDsymbol_timeshift", fileCheck("/proc/stb/lcd/symbol_timeshift"))
BoxInfo.setItem("LCDshow_symbols", (machine.startswith("et9") or machine in ("hd51", "vs1500")) and fileCheck("/proc/stb/lcd/show_symbols"))
BoxInfo.setItem("LCDsymbol_hdd", machine in ("hd51", "vs1500") and fileCheck("/proc/stb/lcd/symbol_hdd"))
BoxInfo.setItem("LCDshow_symbols", (model.startswith("et9") or model in ("hd51", "vs1500")) and fileCheck("/proc/stb/lcd/show_symbols"))
BoxInfo.setItem("LCDsymbol_hdd", model in ("hd51", "vs1500") and fileCheck("/proc/stb/lcd/symbol_hdd"))
BoxInfo.setItem("FrontpanelDisplayGrayscale", fileExists("/dev/dbox/oled0"))
BoxInfo.setItem("DeepstandbySupport", machine != "dm800")
BoxInfo.setItem("DeepstandbySupport", model != "dm800")
BoxInfo.setItem("Fan", fileCheck("/proc/stb/fp/fan"))
BoxInfo.setItem("FanPWM", BoxInfo.getItem("Fan") and fileCheck("/proc/stb/fp/fan_pwm"))
BoxInfo.setItem("PowerLED", fileCheck("/proc/stb/power/powerled") or machine in ("gbue4k", "gbquad4k") and fileCheck("/proc/stb/fp/led1_pattern"))
BoxInfo.setItem("StandbyLED", fileCheck("/proc/stb/power/standbyled") or machine in ("gbue4k", "gbquad4k") and fileCheck("/proc/stb/fp/led0_pattern"))
BoxInfo.setItem("PowerLED", fileCheck("/proc/stb/power/powerled") or model in ("gbue4k", "gbquad4k") and fileCheck("/proc/stb/fp/led1_pattern"))
BoxInfo.setItem("StandbyLED", fileCheck("/proc/stb/power/standbyled") or model in ("gbue4k", "gbquad4k") and fileCheck("/proc/stb/fp/led0_pattern"))
BoxInfo.setItem("SuspendLED", fileCheck("/proc/stb/power/suspendled") or fileCheck("/proc/stb/fp/enable_led"))
BoxInfo.setItem("Display", BoxInfo.getItem("FrontpanelDisplay") or BoxInfo.getItem("StandbyLED"))
BoxInfo.setItem("LedPowerColor", fileCheck("/proc/stb/fp/ledpowercolor"))
Expand All @@ -174,35 +173,35 @@ def setBoxInfoItems():
BoxInfo.setItem("Power4x7On", fileCheck("/proc/stb/fp/power4x7on"))
BoxInfo.setItem("Power4x7Standby", fileCheck("/proc/stb/fp/power4x7standby"))
BoxInfo.setItem("Power4x7Suspend", fileCheck("/proc/stb/fp/power4x7suspend"))
BoxInfo.setItem("PowerOffDisplay", machine not in "formuler1" and fileCheck("/proc/stb/power/vfd") or fileCheck("/proc/stb/lcd/vfd"))
BoxInfo.setItem("WakeOnLAN", not machine.startswith("et8000") and fileCheck("/proc/stb/power/wol") or fileCheck("/proc/stb/fp/wol"))
BoxInfo.setItem("HasExternalPIP", not (machine.startswith("et9") or machine in ("e4hd",)) and fileCheck("/proc/stb/vmpeg/1/external"))
BoxInfo.setItem("PowerOffDisplay", model not in "formuler1" and fileCheck("/proc/stb/power/vfd") or fileCheck("/proc/stb/lcd/vfd"))
BoxInfo.setItem("WakeOnLAN", not model.startswith("et8000") and fileCheck("/proc/stb/power/wol") or fileCheck("/proc/stb/fp/wol"))
BoxInfo.setItem("HasExternalPIP", not (model.startswith("et9") or model in ("e4hd",)) and fileCheck("/proc/stb/vmpeg/1/external"))
BoxInfo.setItem("VideoDestinationConfigurable", fileExists("/proc/stb/vmpeg/0/dst_left"))
BoxInfo.setItem("hasPIPVisibleProc", fileCheck("/proc/stb/vmpeg/1/visible"))
BoxInfo.setItem("MaxPIPSize", machine in ("hd51", "h7", "vs1500", "e4hd") and (360, 288) or (540, 432))
BoxInfo.setItem("VFD_scroll_repeats", not machine.startswith("et8500") and fileCheck("/proc/stb/lcd/scroll_repeats"))
BoxInfo.setItem("VFD_scroll_delay", not machine.startswith("et8500") and fileCheck("/proc/stb/lcd/scroll_delay"))
BoxInfo.setItem("VFD_initial_scroll_delay", not machine.startswith("et8500") and fileCheck("/proc/stb/lcd/initial_scroll_delay"))
BoxInfo.setItem("VFD_final_scroll_delay", not machine.startswith("et8500") and fileCheck("/proc/stb/lcd/final_scroll_delay"))
BoxInfo.setItem("MaxPIPSize", model in ("hd51", "h7", "vs1500", "e4hd") and (360, 288) or (540, 432))
BoxInfo.setItem("VFD_scroll_repeats", not model.startswith("et8500") and fileCheck("/proc/stb/lcd/scroll_repeats"))
BoxInfo.setItem("VFD_scroll_delay", not model.startswith("et8500") and fileCheck("/proc/stb/lcd/scroll_delay"))
BoxInfo.setItem("VFD_initial_scroll_delay", not model.startswith("et8500") and fileCheck("/proc/stb/lcd/initial_scroll_delay"))
BoxInfo.setItem("VFD_final_scroll_delay", not model.startswith("et8500") and fileCheck("/proc/stb/lcd/final_scroll_delay"))
BoxInfo.setItem("LcdLiveTV", fileCheck("/proc/stb/fb/sd_detach") or fileCheck("/proc/stb/lcd/live_enable"))
BoxInfo.setItem("LcdLiveTVMode", fileCheck("/proc/stb/lcd/mode"))
BoxInfo.setItem("LcdLiveDecoder", fileCheck("/proc/stb/lcd/live_decoder"))
BoxInfo.setItem("FastChannelChange", False)
BoxInfo.setItem("3DMode", fileCheck("/proc/stb/fb/3dmode") or fileCheck("/proc/stb/fb/primary/3d"))
BoxInfo.setItem("3DZNorm", fileCheck("/proc/stb/fb/znorm") or fileCheck("/proc/stb/fb/primary/zoffset"))
BoxInfo.setItem("HasQuadpip", fileCheck("/proc/stb/video/decodermode"))
BoxInfo.setItem("Blindscan_t2_available", fileCheck("/proc/stb/info/vumachine") and machine.startswith("vu"))
BoxInfo.setItem("RcTypeChangable", not (machine in ("gbquad4k", "gbue4k", "et8500") or machine.startswith("et7")) and pathExists("/proc/stb/ir/rc/type"))
BoxInfo.setItem("HasFullHDSkinSupport", machine not in ("et4000", "et5000", "sh1", "hd500c", "hd1100", "xp1000", "lc"))
BoxInfo.setItem("Blindscan_t2_available", fileCheck("/proc/stb/info/vumodel ") and model.startswith("vu"))
BoxInfo.setItem("RcTypeChangable", not (model in ("gbquad4k", "gbue4k", "et8500") or model.startswith("et7")) and pathExists("/proc/stb/ir/rc/type"))
BoxInfo.setItem("HasFullHDSkinSupport", model not in ("et4000", "et5000", "sh1", "hd500c", "hd1100", "xp1000", "lc"))
BoxInfo.setItem("HasBypassEdidChecking", fileCheck("/proc/stb/hdmi/bypass_edid_checking"))
BoxInfo.setItem("HasMMC", "root" in cmdline and cmdline["root"].startswith("/dev/mmcblk"))
BoxInfo.setItem("HasColorspace", fileCheck("/proc/stb/video/hdmi_colorspace"))
BoxInfo.setItem("HasColorspaceSimple", BoxInfo.getItem("HasColorspace") and BoxInfo.getItem("HasMMC") and BoxInfo.getItem("Blindscan_t2_available"))
BoxInfo.setItem("HasTranscoding", pathExists("/proc/stb/encoder/0") or fileCheck("/dev/bcm_enc0"))
BoxInfo.setItem("HasH265Encoder", fileHas("/proc/stb/encoder/0/vcodec_choices", "h265"))
BoxInfo.setItem("CanNotDoSimultaneousTranscodeAndPIP", machine in ("vusolo4k", "gbquad4k", "gbue4k"))
BoxInfo.setItem("CanNotDoSimultaneousTranscodeAndPIP", model in ("vusolo4k", "gbquad4k", "gbue4k"))
BoxInfo.setItem("HasColordepth", fileCheck("/proc/stb/video/hdmi_colordepth"))
BoxInfo.setItem("HasFrontDisplayPicon", machine in ("et8500", "vusolo4k", "vuuno4kse", "vuduo4k", "vuduo4kse", "vuultimo4k", "gbquad4k", "gbue4k"))
BoxInfo.setItem("HasFrontDisplayPicon", model in ("et8500", "vusolo4k", "vuuno4kse", "vuduo4k", "vuduo4kse", "vuultimo4k", "gbquad4k", "gbue4k"))
BoxInfo.setItem("Has24hz", fileCheck("/proc/stb/video/videomode_24hz"))
BoxInfo.setItem("Has2160p", fileHas("/proc/stb/video/videomode_preferred", "2160p50"))
BoxInfo.setItem("HasHDMIpreemphasis", fileCheck("/proc/stb/hdmi/preemphasis"))
Expand All @@ -211,19 +210,19 @@ def setBoxInfoItems():
BoxInfo.setItem("HasScaler_sharpness", pathExists("/proc/stb/vmpeg/0/pep_scaler_sharpness"))
BoxInfo.setItem("HasHDMIin", BoxInfo.getItem("dmifhdin") or BoxInfo.getItem("hdmihdin"))
BoxInfo.setItem("HasHDMI-CEC", BoxInfo.getItem("hdmi") and fileExists(resolveFilename(SCOPE_PLUGINS, "SystemPlugins/HdmiCEC/plugin.pyc")) and (fileExists("/dev/cec0") or fileExists("/dev/hdmi_cec") or fileExists("/dev/misc/hdmi_cec0")))
BoxInfo.setItem("HasYPbPr", machine in ("dm8000", "et5000", "et6000", "et6500", "et9000", "et9200", "et9500", "et10000", "formuler1", "mbtwinplus", "spycat", "vusolo", "vuduo", "vuduo2", "vuultimo"))
BoxInfo.setItem("HasScart", machine in ("dm8000", "et4000", "et6500", "et8000", "et9000", "et9200", "et9500", "et10000", "formuler1", "hd1100", "hd1200", "hd1265", "hd2400", "vusolo", "vusolo2", "vuduo", "vuduo2", "vuultimo", "vuuno", "xp1000"))
BoxInfo.setItem("HasSVideo", machine in ("dm8000"))
BoxInfo.setItem("HasComposite", machine not in ("i55", "gbquad4k", "gbue4k", "hd1500", "osnino", "osninoplus", "purehd", "purehdse", "revo4k", "vusolo4k", "vuzero4k", "vuduo4k", "vuduo4kse", "vuuno4k", "vuuno4kse", "vuultimo4k"))
BoxInfo.setItem("hasXcoreVFD", machine in ("osmega", "spycat4k", "spycat4kmini", "spycat4kcombo") and fileCheck("/sys/module/brcmstb_%s/parameters/pt6302_cgram" % machine))
BoxInfo.setItem("HasOfflineDecoding", machine not in ("osmini", "osminiplus", "et7000mini", "et11000", "mbmicro", "mbtwinplus", "mbmicrov2", "et7000", "et8500"))
BoxInfo.setItem("HasYPbPr", model in ("dm8000", "et5000", "et6000", "et6500", "et9000", "et9200", "et9500", "et10000", "formuler1", "mbtwinplus", "spycat", "vusolo", "vuduo", "vuduo2", "vuultimo"))
BoxInfo.setItem("HasScart", model in ("dm8000", "et4000", "et6500", "et8000", "et9000", "et9200", "et9500", "et10000", "formuler1", "hd1100", "hd1200", "hd1265", "hd2400", "vusolo", "vusolo2", "vuduo", "vuduo2", "vuultimo", "vuuno", "xp1000"))
BoxInfo.setItem("HasSVideo", model in ("dm8000"))
BoxInfo.setItem("HasComposite", model not in ("i55", "gbquad4k", "gbue4k", "hd1500", "osnino", "osninoplus", "purehd", "purehdse", "revo4k", "vusolo4k", "vuzero4k", "vuduo4k", "vuduo4kse", "vuuno4k", "vuuno4kse", "vuultimo4k"))
BoxInfo.setItem("hasXcoreVFD", model in ("osmega", "spycat4k", "spycat4kmini", "spycat4kcombo") and fileCheck("/sys/module/brcmstb_%s/parameters/pt6302_cgram" % model ))
BoxInfo.setItem("HasOfflineDecoding", model not in ("osmini", "osminiplus", "et7000mini", "et11000", "mbmicro", "mbtwinplus", "mbmicrov2", "et7000", "et8500"))
BoxInfo.setItem("hasKexec", fileHas("/proc/cmdline", "kexec=1"))
BoxInfo.setItem("canKexec", not BoxInfo.getItem("hasKexec") and fileExists("/usr/bin/kernel_auto.bin") and fileExists("/usr/bin/STARTUP.cpio.gz") and (machine in ("vuduo4k", "vuduo4kse") and ["mmcblk0p9", "mmcblk0p6"] or machine in ("vusolo4k", "vuultimo4k", "vuuno4k", "vuuno4kse") and ["mmcblk0p4", "mmcblk0p1"] or machine == "vuzero4k" and ["mmcblk0p7", "mmcblk0p4"]))
BoxInfo.setItem("canKexec", not BoxInfo.getItem("hasKexec") and fileExists("/usr/bin/kernel_auto.bin") and fileExists("/usr/bin/STARTUP.cpio.gz") and (model in ("vuduo4k", "vuduo4kse") and ["mmcblk0p9", "mmcblk0p6"] or model in ("vusolo4k", "vuultimo4k", "vuuno4k", "vuuno4kse") and ["mmcblk0p4", "mmcblk0p1"] or model == "vuzero4k" and ["mmcblk0p7", "mmcblk0p4"]))
BoxInfo.setItem("MultibootStartupDevice", getMultibootStartupDevice())
BoxInfo.setItem("canMode12", "%s_4.boxmode" % machine in cmdline and cmdline["%s_4.boxmode" % machine] in ("1", "12") and "192M")
BoxInfo.setItem("canMode12", "%s_4.boxmode" % model in cmdline and cmdline["%s_4.boxmode" % model ] in ("1", "12") and "192M")
BoxInfo.setItem("canMultiBoot", getMultibootslots())
BoxInfo.setItem("canDualBoot", fileExists("/dev/block/by-name/flag"))
BoxInfo.setItem("canFlashWithOfgwrite", not (machine.startswith("dm")))
BoxInfo.setItem("canFlashWithOfgwrite", not model.startswith("dm"))
BoxInfo.setItem("HDRSupport", fileExists("/proc/stb/hdmi/hlg_support_choices") and fileCheck("/proc/stb/hdmi/hlg_support"))
BoxInfo.setItem("CanProc", BoxInfo.getItem("HasMMC") and not BoxInfo.getItem("Blindscan_t2_available"))
BoxInfo.setItem("HasMultichannelPCM", fileCheck("/proc/stb/audio/multichannel_pcm"))
Expand All @@ -245,17 +244,17 @@ def setBoxInfoItems():
BoxInfo.setItem("CanBTAudio", fileHas("/proc/stb/audio/btaudio_choices", "off"))
BoxInfo.setItem("CanBTAudioDelay", fileCheck("/proc/stb/audio/btaudio_delay") or fileCheck("/proc/stb/audio/btaudio_delay_pcm"))
BoxInfo.setItem("BootDevice", getBootdevice())
BoxInfo.setItem("NimExceptionVuSolo2", machine == "vusolo2")
BoxInfo.setItem("NimExceptionVuDuo2", machine == "vuduo2")
BoxInfo.setItem("NimExceptionDMM8000", machine == "dm8000")
BoxInfo.setItem("FbcTunerPowerAlwaysOn", machine in ("vusolo4k", "vuduo4k", "vuduo4kse", "vuultimo4k", "vuuno4k", "vuuno4kse"))
BoxInfo.setItem("NimExceptionVuSolo2", model == "vusolo2")
BoxInfo.setItem("NimExceptionVuDuo2", model == "vuduo2")
BoxInfo.setItem("NimExceptionDMM8000", model == "dm8000")
BoxInfo.setItem("FbcTunerPowerAlwaysOn", model in ("vusolo4k", "vuduo4k", "vuduo4kse", "vuultimo4k", "vuuno4k", "vuuno4kse"))
BoxInfo.setItem("HasPhysicalLoopthrough", ["Vuplus DVB-S NIM(AVL2108)", "GIGA DVB-S2 NIM (Internal)"])
if machine in ("et7500", "et8500"):
if model in ("et7500", "et8500"):
BoxInfo.setItem("HasPhysicalLoopthrough", BoxInfo.getItem("HasPhysicalLoopthrough") + ["AVL6211"])
BoxInfo.setItem("HasFBCtuner", ["Vuplus DVB-C NIM(BCM3158)", "Vuplus DVB-C NIM(BCM3148)", "Vuplus DVB-S NIM(7376 FBC)", "Vuplus DVB-S NIM(45308X FBC)", "Vuplus DVB-S NIM(45208 FBC)", "DVB-S2 NIM(45208 FBC)", "DVB-S2X NIM(45308X FBC)", "DVB-S2 NIM(45308 FBC)", "DVB-C NIM(3128 FBC)", "BCM45208", "BCM45308X", "BCM3158"])
BoxInfo.setItem("HasHiSi", pathExists("/proc/hisi"))
BoxInfo.setItem("FCCactive", False)
BoxInfo.setItem("Autoresolution_proc_videomode", machine in ("gbue4k", "gbquad4k") and "/proc/stb/video/videomode_50hz" or "/proc/stb/video/videomode")
BoxInfo.setItem("Autoresolution_proc_videomode", model in ("gbue4k", "gbquad4k") and "/proc/stb/video/videomode_50hz" or "/proc/stb/video/videomode")


setBoxInfoItems()
3 changes: 2 additions & 1 deletion lib/python/Tools/HardwareInfo.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,8 @@ def __init__(self):
self.device_brandname = BoxInfo.getItem("displaybrand")

# standard values
self.device_model = self.machine_name = BoxInfo.getItem("machine")
self.machine_name = BoxInfo.getItem("machine") # This contains the value where the image is buld from
self.device_model = BoxInfo.getItem("model") # This may contain more information about the specific model
self.device_hw = BoxInfo.getItem("displaymodel")

if self.device_revision:
Expand Down

0 comments on commit d7c475b

Please sign in to comment.