Factor in config settings when enabling/disabling the effect
This commit is contained in:
parent
43cbd0bc48
commit
03f2712e6f
|
|
@ -58,7 +58,6 @@ cp -r $VULKAN_DIR/config $PACKAGE_DIR
|
|||
|
||||
# build xreal driver
|
||||
XREAL_BINARY=$XREAL_DRIVER_DIR/build/xrealAirLinuxDriver.tar.gz
|
||||
pushd $XREAL_DRIVER_DIR
|
||||
|
||||
if [ ! -e "$XREAL_BINARY" ] || [ "$1" != "--skip-module-builds" ]; then
|
||||
# if a file exists at custom_banner_config.yml, copy it to the xrealAirLinuxDriver directory
|
||||
|
|
@ -66,7 +65,10 @@ if [ ! -e "$XREAL_BINARY" ] || [ "$1" != "--skip-module-builds" ]; then
|
|||
cp $VULKAN_DIR/custom_banner_config.yml $XREAL_DRIVER_DIR
|
||||
fi
|
||||
|
||||
pushd $XREAL_DRIVER_DIR
|
||||
bin/package
|
||||
else
|
||||
pushd $XREAL_DRIVER_DIR
|
||||
fi
|
||||
|
||||
XREAL_MANIFEST_LINE=$(sha256sum build/driver_air_glasses/manifest)
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
"--device=shm",
|
||||
"--talk-name=ca.desrt.dconf",
|
||||
"--filesystem=xdg-run/dconf",
|
||||
"--filesystem=host:ro",
|
||||
"--filesystem=host",
|
||||
"--env=DCONF_USER_CONFIG_DIR=.config/dconf",
|
||||
"--env=GIO_EXTRA_MODULES=/app/lib/gio/modules/",
|
||||
"--talk-name=org.freedesktop.Flatpak",
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ class ConnectedDevice(Gtk.Box):
|
|||
|
||||
self.settings = SettingsManager.get_instance().settings
|
||||
self.ipc = XRDriverIPC.get_instance()
|
||||
self.extensions_manager = ExtensionsManager.get_instance()
|
||||
|
||||
self.settings.bind('display-distance', self.display_distance_adjustment, 'value', Gio.SettingsBindFlags.DEFAULT)
|
||||
|
||||
|
|
@ -65,8 +66,22 @@ class ConnectedDevice(Gtk.Box):
|
|||
ExtensionsManager.get_instance().bind_property('breezy-enabled', self.effect_enable_switch, 'active', GObject.BindingFlags.BIDIRECTIONAL)
|
||||
|
||||
def _refresh_inputs_for_enabled_state(self, switch, param):
|
||||
requesting_enabled = switch.get_active()
|
||||
self.extensions_manager.set_property('breezy-enabled', requesting_enabled)
|
||||
if requesting_enabled:
|
||||
config = self.ipc.retrieve_config()
|
||||
config_enabled = config.get('disabled') == False and 'breezy_desktop' in config.get('external_mode', [])
|
||||
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['output_mode'] = 'external_only'
|
||||
config['external_mode'] = ['breezy_desktop']
|
||||
self.ipc.write_config(config)
|
||||
|
||||
for widget in self.all_enabled_state_inputs:
|
||||
widget.set_sensitive(switch.get_active())
|
||||
widget.set_sensitive(requesting_enabled)
|
||||
|
||||
def _request_follow_mode(self, switch, param):
|
||||
if (self.state_manager.follow_mode == switch.get_active()):
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ CONFIG_DEFAULT_VALUE_INDEX = 1
|
|||
CONFIG_ENTRIES = {
|
||||
'disabled': [parse_boolean, True],
|
||||
'output_mode': [parse_string, 'mouse'],
|
||||
'external_mode': [parse_array, 'none'],
|
||||
'external_mode': [parse_array, ['none']],
|
||||
'mouse_sensitivity': [parse_int, 30],
|
||||
'display_zoom': [parse_float, 1.0],
|
||||
'look_ahead': [parse_int, 0],
|
||||
|
|
@ -118,11 +118,12 @@ class XRDriverIPC:
|
|||
# Since the UI doesn't refresh the config before it updates, the external_mode can get out of sync with
|
||||
# what's on disk. To avoid losing external_mode values, we retrieve the previous configs to preserve
|
||||
# any non-managed external modes.
|
||||
old_config = self._retrieve_config(self)
|
||||
old_config = self.retrieve_config()
|
||||
|
||||
# remove the UI's "view" data, translate back to config values, and merge them in
|
||||
view = config.pop('ui_view', None)
|
||||
config.update(self.headset_mode_to_config(view['headset_mode'], view['is_joystick_mode'], old_config['external_mode']))
|
||||
if view:
|
||||
config.update(self.headset_mode_to_config(view.get('headset_mode'), view.get('is_joystick_mode'), old_config.get('external_mode')))
|
||||
|
||||
for key, value in config.items():
|
||||
if key != "updated":
|
||||
|
|
@ -145,7 +146,7 @@ class XRDriverIPC:
|
|||
os.replace(temp_file, self.config_file_path)
|
||||
os.chmod(self.config_file_path, stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IWGRP | stat.S_IROTH | stat.S_IWOTH)
|
||||
|
||||
config['ui_view'] = self.build_ui_view(self, config)
|
||||
config['ui_view'] = self.build_ui_view(config)
|
||||
|
||||
return config
|
||||
except Exception as e:
|
||||
|
|
|
|||
Loading…
Reference in New Issue