Compare commits

...

4 Commits

Author SHA1 Message Date
wheaney 02cff253c2 Pull in driver with Rokid fixes 2024-08-12 21:39:57 -07:00
wheaney 29e9af7d8b Add Rokid Air monitor 2024-08-12 18:35:25 -07:00
wheaney e754a6aa9d WIP Rokid support 2024-08-12 13:52:52 -07:00
wheaney b3310647f3 Update UI to only report device state updates if a device is connected 2024-08-12 09:02:45 -07:00
6 changed files with 17 additions and 11 deletions

1
.gitmodules vendored
View File

@ -5,6 +5,7 @@
[submodule "modules/XRLinuxDriver"]
path = modules/XRLinuxDriver
url = https://github.com/wheaney/XRLinuxDriver.git
branch = rokid
[submodule "modules/sombrero"]
path = modules/sombrero
url = https://github.com/wheaney/sombrero.git

View File

@ -25,6 +25,7 @@ const SUPPORTED_MONITOR_PRODUCTS = [
'Air 2 Ultra',
'SmartGlasses', // TCL/RayNeo
'Rokid Max',
'Rokid Air',
NESTED_MONITOR_PRODUCT
];

@ -1 +1 @@
Subproject commit 860d3ee26899c72709141296f557b9b61a5beefa
Subproject commit 1e85d397a126360c46282bc04144580de953d9d2

View File

@ -89,7 +89,7 @@ class ConnectedDevice(Gtk.Box):
self.state_manager.connect('notify::enabled-features-list', self._handle_enabled_features)
self.state_manager.connect('notify::device-supports-sbs', self._handle_device_supports_sbs)
self.follow_mode_switch.set_active(self.state_manager.follow_mode)
self.follow_mode_switch.set_active(self.state_manager.get_property('follow-mode'))
self.follow_mode_switch.connect('notify::active', self._refresh_follow_mode)
self.effect_enable_switch.set_active(self._is_config_enabled(self.ipc.retrieve_config()) and self.extensions_manager.is_enabled())
@ -141,7 +141,7 @@ class ConnectedDevice(Gtk.Box):
def _refresh_follow_mode(self, switch, param):
self.follow_threshold_scale.set_sensitive(switch.get_active())
if (self.state_manager.follow_mode == switch.get_active()):
if (self.state_manager.get_property('follow-mode') == switch.get_active()):
return
self.ipc.write_control_flags({

View File

@ -56,12 +56,16 @@ class StateManager(GObject.GObject):
GObject.GObject.__init__(self)
self.ipc = XRDriverIPC.get_instance()
self.driver_running = False
self.follow_mode = False
self.follow_threshold = 15.0
self.widescreen_mode = False
self.connected_device_name = None
self.license_action_needed = False
self.license_action_needed_seconds = 0
self.confirmed_token = False
self.license_present = False
self.enabled_features = []
self.device_supports_sbs = False
self.start()
@ -99,9 +103,11 @@ class StateManager(GObject.GObject):
elif self.license_present:
self.set_property('license-present', False)
self.set_property('follow-mode', self.state.get('breezy_desktop_smooth_follow_enabled', False))
self.set_property('device-supports-sbs', self.state.get('sbs_mode_supported', False))
self.set_property('widescreen-mode', self.state.get('sbs_mode_enabled', False))
# only update these properties if a device is still connected
if (self.connected_device_name):
self.set_property('follow-mode', self.state.get('breezy_desktop_smooth_follow_enabled', False))
self.set_property('device-supports-sbs', self.state.get('sbs_mode_supported', False))
self.set_property('widescreen-mode', self.state.get('sbs_mode_enabled', False))
if self.running: threading.Timer(1.0, self._refresh_state).start()

View File

@ -75,11 +75,9 @@ class BreezydesktopWindow(Gtk.ApplicationWindow):
for child in self.main_content:
self.main_content.remove(child)
if not self._skip_verification:
if not verify_installation():
self.main_content.append(self.failed_verification)
if not self.state_manager.driver_running:
if not self._skip_verification and not verify_installation():
self.main_content.append(self.failed_verification)
elif not self.state_manager.driver_running:
self.main_content.append(self.no_driver)
elif not state_manager.connected_device_name:
self.main_content.append(self.no_device)