def open_settings_window(self): ''' The method that determines what happens when the item is clicked in the settings GUI. Usually this would be __addon__.OpenSettings(), but it could be any other script. This allows the creation of action buttons in the GUI, as well as allowing developers to script and skin their own user interfaces. ''' log( xbmcaddon.Addon( "script.module.osmcsetting.pioverclock").getAddonInfo('id')) me = xbmcaddon.Addon(self.addonid) scriptPath = me.getAddonInfo('path') # read config file, take the parts you need # the location of the config file FOR TESTING ONLY try: self.test_config = '/boot/config.txt' self.config_settings = ct.read_config(self.test_config) except: self.test_config = '/home/kubkev/Documents/config.txt' self.config_settings = ct.read_config(self.test_config) oc_keys = [ 'arm_freq', 'sdram_freq', 'core_freq', 'initial_turbo', 'over_voltage', 'over_voltage_sdram', 'force_turbo' ] self.setting_values = {} for key in oc_keys: if key in self.config_settings: self.setting_values[key] = self.config_settings[key] # setting_values = {'core_freq': 500, 'arm_freq': 800, 'sdram_freq': 700, 'initial_turbo': 60, 'over_voltage': 2, 'over_voltage_sdram': 6, 'force_turbo' : 0} self.GUI = overclock_gui("oc_gui.xml", scriptPath, 'Default', setting_values=self.setting_values) self.GUI.doModal() self.new_settings = self.GUI.snapshot() log('self.new_settings') log(self.new_settings) log('self.setting_values') log(self.setting_values) ct.write_config(self.test_config, self.new_settings) del self.GUI for k, s in self.new_settings.iteritems(): if s != self.setting_values.get(k, 'no setting available'): self.reboot_required log('END')
def run(self): ''' The method that determines what happens when the item is clicked in the settings GUI. Usually this would be __addon__.OpenSettings(), but it could be any other script. This allows the creation of action buttons in the GUI, as well as allowing developers to script and skin their own user interfaces. ''' log(xbmcaddon.Addon("script.module.osmcsetting.pioverclock").getAddonInfo('id')) me = xbmcaddon.Addon(self.addonid) scriptPath = me.getAddonInfo('path') # read config file, take the parts you need # the location of the config file FOR TESTING ONLY try: self.test_config = '/boot/config.txt' self.config_settings = ct.read_config(self.test_config) except: self.test_config = '/home/kubkev/Documents/config.txt' self.config_settings = ct.read_config(self.test_config) oc_keys = ['arm_freq', 'sdram_freq', 'core_freq', 'initial_turbo', 'over_voltage', 'over_voltage_sdram', 'force_turbo'] self.setting_values = {} for key in oc_keys: if key in self.config_settings: self.setting_values[key] = self.config_settings[key] # setting_values = {'core_freq': 500, 'arm_freq': 800, 'sdram_freq': 700, 'initial_turbo': 60, 'over_voltage': 2, 'over_voltage_sdram': 6, 'force_turbo' : 0} xml = "new_gui_720.xml" if xbmcgui.Window(10000).getProperty("SkinHeight") == '720' else "new_gui.xml" self.GUI = overclock_gui(xml, scriptPath, 'Default', setting_values=self.setting_values, model=self.pimodel) self.GUI.doModal() self.new_settings = self.GUI.snapshot() log('self.new_settings') log(self.new_settings) log('self.setting_values') log(self.setting_values) ct.write_config(self.test_config, self.new_settings) del self.GUI for k, s in self.new_settings.iteritems(): if s != self.setting_values.get(k, 'no setting available'): self.reboot_required # dialog to notify the user they should restart for changes to take effect ok = DIALOG.notification(lang(32107), lang(32108)) log('END')
def open_settings_window(self): ''' The method that determines what happens when the item is clicked in the settings GUI. Usually this would be __addon__.OpenSettings(), but it could be any other script. This allows the creation of action buttons in the GUI, as well as allowing developers to script and skin their own user interfaces. ''' print xbmcaddon.Addon("script.module.osmcsetting.pioverclock").getAddonInfo('id') me = xbmcaddon.Addon(self.addonid) scriptPath = me.getAddonInfo('path') # read config file, take the parts you need # the location of the config file FOR TESTING ONLY try: self.test_config = '/boot/config.txt' self.config_settings = ct.read_config(self.test_config) except: self.test_config = '/home/kubkev/Documents/config.txt' self.config_settings = ct.read_config(self.test_config) oc_keys = ['arm_freq', 'sdram_freq', 'core_freq', 'initial_turbo', 'over_voltage', 'over_voltage_sdram', 'force_turbo'] self.setting_values = {} for key in oc_keys: if key in self.config_settings: self.setting_values[key] = self.config_settings[key] # setting_values = {'core_freq': 500, 'arm_freq': 800, 'sdram_freq': 700, 'initial_turbo': 60, 'over_voltage': 2, 'over_voltage_sdram': 6, 'force_turbo' : 0} self.GUI = overclock_gui("oc_gui.xml", scriptPath, 'Default', setting_values=self.setting_values) self.GUI.doModal() self.new_settings = self.GUI.snapshot() print 'self.new_settings' print self.new_settings print 'self.setting_values' print self.setting_values ct.write_config(self.test_config, self.new_settings) del self.GUI for k, s in self.new_settings.iteritems(): if s != self.setting_values.get(k, 'no setting available'): self.reboot_required print 'END'
def populate_pi_settings_dict(self): ''' Populates the setting_value in the pi_settings_dict. ''' # # this is the method to use if you are populating the dict from the settings.xml # latest_settings = self.settings_retriever_xml() # but I am going to set up my own process in addition to the xml one, I will be reading some # settings from the config.txt, and getting the rest from the settings.xml self.config_settings = ct.read_config(self.test_config) log('Config settings received from the parser: %s' % self.config_settings) # cycle through the pi_settings_dict dict, and populate with the settings values for key in self.pi_settings_dict.keys(): # if the value of the setting is to be assigned by another setting, then just ignore it here # note: this will mean that the other setting will have to populate both the settings_dict and the settings.xml if key in self.values_set_elsewhere: continue # grab the translate method (if there is one) translate_method = self.pi_settings_dict.get(key, {}).get( 'translate', {}) # if the key is in the config.txt if key in self.config_settings: setting_value = self.config_settings[key] else: # if the key ISNT in the config.txt then set the value from the default stored in # the pi_settings_dict dict setting_value = self.pi_settings_dict[key].get('default', '') # get the setting value, translate it if needed if translate_method: setting_value = translate_method(setting_value) # if default is setting_value, then the setting has been set in the translation so ignore it if setting_value not in self.not_going_to_config: self.pi_settings_dict[key]['setting_value'] = setting_value # also set the value in the settings.xml self.me.setSetting(key, str(setting_value))
def populate_pi_settings_dict(self): ''' Populates the setting_value in the pi_settings_dict. ''' # # this is the method to use if you are populating the dict from the settings.xml # latest_settings = self.settings_retriever_xml() # but I am going to set up my own process in addition to the xml one, I will be reading some # settings from the config.txt, and getting the rest from the settings.xml self.config_settings = ct.read_config(self.test_config) log('Config settings received from the parser: %s' % self.config_settings) # cycle through the pi_settings_dict dict, and populate with the settings values for key in self.pi_settings_dict.keys(): # if the value of the setting is to be assigned by another setting, then just ignore it here # note: this will mean that the other setting will have to populate both the settings_dict and the settings.xml if key in self.values_set_elsewhere: continue # grab the translate method (if there is one) translate_method = self.pi_settings_dict.get(key,{}).get('translate',{}) # if the key is in the config.txt if key in self.config_settings: setting_value = self.config_settings[key] else: # if the key ISNT in the config.txt then set the value from the default stored in # the pi_settings_dict dict setting_value = self.pi_settings_dict[key].get('default','') # get the setting value, translate it if needed if translate_method: setting_value = translate_method(setting_value) # if default is setting_value, then the setting has been set in the translation so ignore it if setting_value not in self.not_going_to_config: self.pi_settings_dict[key]['setting_value'] = setting_value # also set the value in the settings.xml self.me.setSetting(key, str(setting_value))