From 261ad8ee8b555a9e4fc4421499b160eb3fc26f9e Mon Sep 17 00:00:00 2001 From: nayan Date: Sun, 24 Aug 2025 18:41:50 -0400 Subject: [PATCH] add raylib toggle --- selfdrive/ui/layouts/settings/developer.py | 7 +++ .../sunnypilot/layouts/settings/developer.py | 50 +++++++++++++++++++ .../qt/offroad/settings/developer_panel.cc | 10 ++++ .../qt/offroad/settings/developer_panel.h | 1 + 4 files changed, 68 insertions(+) create mode 100644 selfdrive/ui/sunnypilot/layouts/settings/developer.py diff --git a/selfdrive/ui/layouts/settings/developer.py b/selfdrive/ui/layouts/settings/developer.py index 1d4c35df73..cfc193d1c3 100644 --- a/selfdrive/ui/layouts/settings/developer.py +++ b/selfdrive/ui/layouts/settings/developer.py @@ -51,6 +51,13 @@ class DeveloperLayout(Widget): initial_state=self._params.get_bool("AlphaLongitudinalEnabled"), callback=self._on_alpha_long_enabled, ), + toggle_item( + "Use Raylib UI", + description="Enables or disables the use of Raylib for UI rendering. Changing this will trigger a UI restart.", + initial_state=self._params.get_bool("UseRaylib"), + callback=None, + param="UseRaylib" + ), ] self._scroller = Scroller(items, line_separator=True, spacing=0) diff --git a/selfdrive/ui/sunnypilot/layouts/settings/developer.py b/selfdrive/ui/sunnypilot/layouts/settings/developer.py new file mode 100644 index 0000000000..d37e0c63c6 --- /dev/null +++ b/selfdrive/ui/sunnypilot/layouts/settings/developer.py @@ -0,0 +1,50 @@ +from openpilot.common.params import Params +from openpilot.selfdrive.ui.layouts.settings.developer import DeveloperLayout + +from openpilot.system.ui.sunnypilot.lib.list_view import toggle_item_sp + +# Description constants +DESCRIPTIONS = { + 'enable_adb': ( + "ADB (Android Debug Bridge) allows connecting to your device over USB or over the network. " + + "See https://docs.comma.ai/how-to/connect-to-comma for more info." + ), + 'joystick_debug_mode': "Preview the driver facing camera to ensure that driver monitoring has good visibility. (vehicle must be off)", + 'ssh_key': ( + "Warning: This grants SSH access to all public keys in your GitHub settings. Never enter a GitHub username " + + "other than your own. A comma employee will NEVER ask you to add their GitHub username." + ), +} + + +class DeveloperLayoutSP(DeveloperLayout): + def __init__(self): + super().__init__() + self._params = Params() + items += [ + toggle_item( + "Enable ADB", + description=DESCRIPTIONS["enable_adb"], + initial_state=self._params.get_bool("AdbEnabled"), + callback=self._on_enable_adb, + ), + ssh_key_item("SSH Key", description=DESCRIPTIONS["ssh_key"]), + toggle_item( + "Joystick Debug Mode", + description=DESCRIPTIONS["joystick_debug_mode"], + initial_state=self._params.get_bool("JoystickDebugMode"), + callback=self._on_joystick_debug_mode, + ), + toggle_item( + "Longitudinal Maneuver Mode", + description="", + initial_state=self._params.get_bool("LongitudinalManeuverMode"), + callback=self._on_long_maneuver_mode, + ), + toggle_item( + "openpilot Longitudinal Control (Alpha)", + description="", + initial_state=self._params.get_bool("AlphaLongitudinalEnabled"), + callback=self._on_alpha_long_enabled, + ), + ] diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/developer_panel.cc b/selfdrive/ui/sunnypilot/qt/offroad/settings/developer_panel.cc index 58193f9fe8..2f0b56530d 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/developer_panel.cc +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/developer_panel.cc @@ -33,6 +33,15 @@ DeveloperPanelSP::DeveloperPanelSP(SettingsWindow *parent) : DeveloperPanel(pare }); prebuiltToggle->setVisible(false); + // Raylib Toggle + useRaylib = new ParamControlSP("UseRaylib", + tr("Use Raylib UI"), + tr("Enables or disables the use of Raylib for UI rendering. Changing this will trigger a UI restart."), + "", + this, + true); + addItem(useRaylib); + // Error log button errorLogBtn = new ButtonControlSP(tr("Error Log"), tr("VIEW"), tr("View the error log for sunnypilot crashes.")); connect(errorLogBtn, &ButtonControlSP::clicked, [=]() { @@ -71,6 +80,7 @@ void DeveloperPanelSP::updateToggles(bool offroad) { enableGithubRunner->setVisible(!is_release); errorLogBtn->setVisible(!is_release); showAdvancedControls->setEnabled(true); + useRaylib->setEnabled(offroad); } void DeveloperPanelSP::showEvent(QShowEvent *event) { diff --git a/selfdrive/ui/sunnypilot/qt/offroad/settings/developer_panel.h b/selfdrive/ui/sunnypilot/qt/offroad/settings/developer_panel.h index 42b3bd83b8..18022c30eb 100644 --- a/selfdrive/ui/sunnypilot/qt/offroad/settings/developer_panel.h +++ b/selfdrive/ui/sunnypilot/qt/offroad/settings/developer_panel.h @@ -21,6 +21,7 @@ private: ParamControlSP *prebuiltToggle; Params params; ParamControlSP *showAdvancedControls; + ParamControlSP *useRaylib; bool is_development; bool is_release; bool is_tested;