A couple more fixes for "enabled" state detection and updates

This commit is contained in:
wheaney 2024-05-14 13:44:18 -07:00
parent 03f2712e6f
commit 06270fdd1f
2 changed files with 11 additions and 11 deletions

View File

@ -60,21 +60,21 @@ class ConnectedDevice(Gtk.Box):
self.follow_mode_switch.set_active(self.state_manager.follow_mode) self.follow_mode_switch.set_active(self.state_manager.follow_mode)
self.follow_mode_switch.connect('notify::active', self._request_follow_mode) self.follow_mode_switch.connect('notify::active', self._request_follow_mode)
self.effect_enable_switch.set_active(self._is_config_enabled(self.ipc.retrieve_config()) and self.extensions_manager.is_enabled())
self.effect_enable_switch.connect('notify::active', self._refresh_inputs_for_enabled_state) self.effect_enable_switch.connect('notify::active', self._refresh_inputs_for_enabled_state)
self.effect_enable_switch.set_active(ExtensionsManager.get_instance().is_enabled())
self._refresh_inputs_for_enabled_state(self.effect_enable_switch, None)
ExtensionsManager.get_instance().bind_property('breezy-enabled', self.effect_enable_switch, 'active', GObject.BindingFlags.BIDIRECTIONAL)
self._refresh_inputs_for_enabled_state(self.effect_enable_switch, None)
self.extensions_manager.bind_property('breezy-enabled', self.effect_enable_switch, 'active', GObject.BindingFlags.BIDIRECTIONAL)
def _is_config_enabled(self, config):
return config.get('disabled') == False and 'breezy_desktop' in config.get('external_mode', [])
def _refresh_inputs_for_enabled_state(self, switch, param): def _refresh_inputs_for_enabled_state(self, switch, param):
requesting_enabled = switch.get_active() requesting_enabled = switch.get_active()
self.extensions_manager.set_property('breezy-enabled', requesting_enabled) self.extensions_manager.set_property('breezy-enabled', requesting_enabled)
if requesting_enabled: if requesting_enabled:
config = self.ipc.retrieve_config() config = self.ipc.retrieve_config(False)
config_enabled = config.get('disabled') == False and 'breezy_desktop' in config.get('external_mode', []) if not self._is_config_enabled(config):
if not config_enabled:
# do this so that it doesn't use headset_mode to override our external_mode
config.pop('ui_view')
config['disabled'] = False config['disabled'] = False
config['output_mode'] = 'external_only' config['output_mode'] = 'external_only'
config['external_mode'] = ['breezy_desktop'] config['external_mode'] = ['breezy_desktop']

View File

@ -84,7 +84,7 @@ class XRDriverIPC:
self.config_script_path = os.path.join(self.user_home, "bin/xreal_driver_config") self.config_script_path = os.path.join(self.user_home, "bin/xreal_driver_config")
self.logger = logger self.logger = logger
def retrieve_config(self): def retrieve_config(self, include_ui_view = True):
config = {} config = {}
for key, value in CONFIG_ENTRIES.items(): for key, value in CONFIG_ENTRIES.items():
config[key] = value[CONFIG_DEFAULT_VALUE_INDEX] config[key] = value[CONFIG_DEFAULT_VALUE_INDEX]
@ -107,7 +107,7 @@ class XRDriverIPC:
self.logger.error(f"Config file not found {e}") self.logger.error(f"Config file not found {e}")
return config return config
config['ui_view'] = self.build_ui_view(config) if include_ui_view: config['ui_view'] = self.build_ui_view(config)
return config return config