Updated configure_pipewire script. A bit more code refactor. Preparing to start moving everything over to pep8 compliance.

This commit is contained in:
Storm Dragon
2025-06-28 22:52:21 -04:00
parent beae1866bb
commit 4bcf82178e
4 changed files with 116 additions and 161 deletions

View File

@ -234,15 +234,71 @@ class settingsManager():
elif isinstance(self.settings[section][setting], bool):
if not value in ['True','False']:
raise ValueError('could not convert string to bool: '+ value)
v = value == 'True'
elif isinstance(self.settings[section][setting], int):
v = int(value)
elif isinstance(self.settings[section][setting], float):
v = float(value)
# Content validation for critical settings
self._validateSettingValue(section, setting, v)
self.settingArgDict[section][setting] = str(value)
except Exception as e:
print('settingsManager:setOptionArgDict:Datatype missmatch: '+ section + '#' + setting + '=' + value + ' Error:' + str(e))
#self.env['runtime']['debug'].writeDebugOut('settingsManager:setOptionArgDict:Datatype missmatch: '+ section + '#' + setting + '=' + value + ' Error:' + str(e), debug.debugLevel.ERROR)
return
def _validateSettingValue(self, section, setting, value):
"""Validate setting values for critical screen reader functionality.
Only validates settings that could cause crashes or accessibility issues.
Invalid values raise ValueError which is caught by the calling method."""
# Speech settings validation - critical for accessibility
if section == 'speech':
if setting == 'rate':
if not (0.0 <= value <= 3.0):
raise ValueError(f'Speech rate must be between 0.0 and 3.0, got {value}')
elif setting == 'pitch':
if not (0.0 <= value <= 2.0):
raise ValueError(f'Speech pitch must be between 0.0 and 2.0, got {value}')
elif setting == 'volume':
if not (0.0 <= value <= 1.5):
raise ValueError(f'Speech volume must be between 0.0 and 1.5, got {value}')
elif setting == 'driver':
valid_drivers = ['speechdDriver', 'genericDriver', 'dummyDriver']
if value not in valid_drivers:
raise ValueError(f'Invalid speech driver: {value}. Valid options: {valid_drivers}')
# Sound settings validation
elif section == 'sound':
if setting == 'volume':
if not (0.0 <= value <= 1.5):
raise ValueError(f'Sound volume must be between 0.0 and 1.5, got {value}')
elif setting == 'driver':
valid_drivers = ['genericDriver', 'gstreamerDriver', 'dummyDriver']
if value not in valid_drivers:
raise ValueError(f'Invalid sound driver: {value}. Valid options: {valid_drivers}')
# Screen settings validation
elif section == 'screen':
if setting == 'driver':
valid_drivers = ['vcsaDriver', 'ptyDriver', 'dummyDriver']
if value not in valid_drivers:
raise ValueError(f'Invalid screen driver: {value}. Valid options: {valid_drivers}')
# Input settings validation
elif section == 'keyboard':
if setting == 'driver':
valid_drivers = ['evdevDriver', 'ptyDriver', 'atspiDriver', 'dummyDriver']
if value not in valid_drivers:
raise ValueError(f'Invalid input driver: {value}. Valid options: {valid_drivers}')
# General settings validation
elif section == 'general':
if setting == 'debugLevel':
if not (0 <= value <= 3):
raise ValueError(f'Debug level must be between 0 and 3, got {value}')
def parseSettingArgs(self, settingArgs):
for optionElem in settingArgs.split(';'):