def get_nick(self): value = ini_getlist(CRT_NETPLAY_FILE, self.ini_nick) if not value: self._add_miss_ini(self.ini_nick) value = ini_getlist(CRT_NETPLAY_FILE, self.ini_nick) value = " ".join(value).replace("'", '') return value
def reset_config(self): p_bCheck = False self.m_sTemp = generate_random_temp_filename(RASP_BOOTCFG_FILE) touch_file(self.m_sTemp) p_lBaseCfg = { 'pi4': [['dtoverlay', 'vc4-fkms-v3d'], ['max_framebuffers', '2']], 'all': [['gpu_mem_256', '128'], ['gpu_mem_512', '256'], ['gpu_mem_1024', '256']] } timings = " ".join(ini_getlist(RASP_BOOTCFG_FILE, 'hdmi_timings')) if not timings: res = ini_get(CRT_UTILITY_FILE, 'default') + '_timings' timings = " ".join(ini_getlist(CRT_UTILITY_FILE, res)) line = 'hdmi_timings=' + timings add_line(self.m_sTemp, line) section_order = ['pi4', 'all'] # pi4 section must be before of all for section in section_order: list = p_lBaseCfg[section] for key, value in list: ini_sect_add_key(self.m_sTemp, section, key, value) self.set_cable(self.m_sTemp, 0) # create cable config ID0 (default) ini_sect_create_section(self.m_sTemp, "CUSTOM-USER") os.system('sudo cp %s %s' % (self.m_sTemp, RASP_BOOTCFG_FILE)) if md5_file(self.m_sTemp) == md5_file(RASP_BOOTCFG_FILE): p_bCheck = True self.__clean() return p_bCheck
def get_available_modes(): global lModeAll global lModeSel global iModeCur lModeAll.append([opt[1][2], opt[1][1]]) lModeSel = ([opt[1][2], opt[1][1]]) if not os.path.exists(CRT_FIXMODES_FILE): os.system('echo %s > %s' % \ (DEFAULT_MODES, CRT_FIXMODES_FILE)) with open(CRT_FIXMODES_FILE, 'r') as f: for line in f: line = line.strip().replace('=',' ').split(' ') if line[0] == "mode": lModeAll.append([line[1], ""]) elif line[0] == "mode_default": lModeSel[0] = line[1] for item in lModeAll: if item[0] != "DEFAULT": lModeDesc = ini_getlist(CRT_FIXMODES_FILE, "%s_desc" % item[0]) item[1] = " ".join(lModeDesc) if item[0] == lModeSel[0]: lModeSel[1] = " ".join(lModeDesc) iModeCur = lModeAll.index([lModeSel[0], lModeSel[1]]) opt[1][2] = lModeSel[0] opt[1][3] = lModeSel[0] opt[1][1] = lModeSel[1]
def get_values(self): lValues = ini_getlist(self.p_sTimingPath, self.m_sSystem) if lValues: logging.info("%s timing found at: %s" % (self.m_sSystem, self.p_sTimingPath)) return lValues else: lValues = ini_getlist(self.p_sTimingPath, "default") if lValues: logging.info("%s default timing found at: %s" % (self.m_sSystem, self.p_sTimingPath)) return lValues logging.error("%s timing not found using default for: %s" % (self.m_sSystem, self.p_sTimingPath)) subprocess.Popen( DEFAULT_SCREEN_BIN) # show to user default resolution used return DEFAULT_RES
def _get_boot_timing(self): """ Take current system base timings from utility.cfg""" self.m_sEnv = ini_get(CRT_UTILITY_FILE, "default") self.m_lBootTimings = ini_getlist(CRT_UTILITY_FILE, "%s_timings" % self.m_sEnv) self.m_lBootTimings = list(map(int, self.m_lBootTimings)) if not self._apply_fix_tv(): logging.info("INFO: not fix tv to apply") logging.info("INFO: default system resolution: %s" % self.m_sEnv)
def get_active_folder(self): self.get_folders() value = (" ".join(ini_getlist(CRT_UTILITY_FILE, "music_folder"))).strip() if not value or value not in self.m_lFolders: value = "root" remove_line(CRT_UTILITY_FILE, "music_folder") add_line(CRT_UTILITY_FILE, 'music_folder=%s' % value) self.m_sFolder = value return self.m_sFolder
def apply(self): lValues = ' '.join(ini_getlist(RASP_BOOTCFG_FILE, 'hdmi_timings')) cmd = 'vcgencmd hdmi_timings ' cmd += lValues cmd += " > /dev/null 2>&1" os.system(cmd) os.system('fbset -depth 8 && fbset -depth 32') RES_X = self.m_lBootTimings[0] REX_Y = self.m_lBootTimings[5] cmd = "fbset -xres %s -yres %s" % (RES_X, REX_Y) cmd += " -vxres %s -vyres %s" % (RES_X, REX_Y) os.system(cmd)
def _apply_fix_tv(self): sSelected = ini_get(CRT_FIXMODES_FILE, "mode_default") if not sSelected or sSelected.lower() == "default": return False DiffTimings = ini_getlist(CRT_FIXMODES_FILE, "%s_%s" % (sSelected, self.m_sEnv)) DiffTimings = list(map(int, DiffTimings)) if len(DiffTimings) != 17: #If not 17 timings, not valid return False i = 0 for timing in DiffTimings: #SUM TV Fix to main timings self.m_lBootTimings[i] += DiffTimings[i] i += 1 logging.info("INFO: resolution + MODE: %s" % self.m_lBootTimings) return True
def _fix_daphne_cfg(self): for control in self.m_lDaphneBTN: lValues = ini_getlist(self.DAPHNE_CFG_FILE, control[0]) # clean returned empty values: iClearPos = [] for idx, value in enumerate(lValues): if value == "": iClearPos.append(idx) if iClearPos: for pos in sorted(iClearPos, reverse=True): del lValues[pos] # edit daphne controls config file if lValues[-1] != control[1]: lValues[-1] = control[1] sNewLine = control[0] + " = " sNewLine += " ".join(lValues) modify_line(self.DAPHNE_CFG_FILE, control[0], sNewLine)
def opt2_datas(self): p_lLines = {'text': "Version", 'color_val': "type_color_1"} value = (" ".join(ini_getlist(CRT_UTILITY_FILE, "version"))).strip() value = re.sub(r' +', " ", value).replace('"', '') p_lLines.update({'value': value}) return p_lLines
def get_fix_tv(self, p_sFindMask): sSelected = ini_get(CRT_FIXMODES_FILE, "mode_default") if not sSelected or sSelected.lower() == "default": return False return ini_getlist(CRT_FIXMODES_FILE, p_sFindMask % sSelected)
def screen_restore(self): lValues = ini_getlist('/boot/config.txt', 'hdmi_timings') self.timing_reset() self.timing_parse_raw(lValues) self.resolution_call(**self.m_dData) self.force_geometry()