import sys from pathlib import Path from PySide6.QtCore import QSettings from PySide6.QtWidgets import QApplication import build_info from audio.system_volume import set_volume from ui.main_window_new import MainWindowNew def run_app(): app = QApplication(sys.argv) _apply_reset_if_requested() _apply_startup_sound_defaults() _apply_startup_display_defaults() window = MainWindowNew(app) window.show() sys.exit(app.exec()) def _apply_startup_sound_defaults(): settings = QSettings("car_ui", "ui") base_volume = build_info.DEFAULT_SOUND_VOLUME premute_volume = build_info.DEFAULT_PREMUTE_VOLUME ducking_volume = build_info.DEFAULT_DUCKING_VOLUME if not settings.contains("sound/base_volume"): settings.setValue("sound/base_volume", base_volume) if not settings.contains("sound/premute_volume"): settings.setValue("sound/premute_volume", premute_volume) if not settings.contains("sound/ducking_volume"): settings.setValue("sound/ducking_volume", ducking_volume) applied_volume = settings.value("sound/base_volume", base_volume) try: applied_volume = int(applied_volume) except (TypeError, ValueError): applied_volume = base_volume set_volume(applied_volume) def _apply_startup_display_defaults(): settings = QSettings("car_ui", "ui") if not settings.contains("display/brightness"): settings.setValue("display/brightness", 70) if not settings.contains("display/auto_brightness"): settings.setValue("display/auto_brightness", False) if not settings.contains("display/sleep_minutes"): settings.setValue("display/sleep_minutes", 10) if not settings.contains("display/theme"): settings.setValue("display/theme", "night") def _apply_reset_if_requested(): reset_marker = Path(__file__).resolve().parent / "reset" if not reset_marker.exists(): return settings = QSettings("car_ui", "ui") settings_path = Path(settings.fileName()) if settings_path.exists(): settings_path.unlink() reset_marker.unlink()