mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-11-09 22:13:43 +08:00
99a8b1c07e
Manage named devices, car-first projection reconnect, and saved head-unit layouts. Keep runtime-safe Bluetooth operations available without changing controller ownership or restarting the radio unnecessarily.
16 lines
735 B
Python
16 lines
735 B
Python
"""Read a saved projection layout once per connection, never in the frame loop."""
|
|
from openpilot.starpilot.saved_source import read_saved
|
|
from openpilot.starpilot.system.android_auto.projection_layout import (
|
|
DOCUMENT_KEY, MAX_BYTES, ProjectionLayoutSource, default_layout_for_viewport, decode_layout_for_viewport,
|
|
)
|
|
|
|
|
|
def load_projection_layout(viewport, source=None):
|
|
raw, readable = read_saved(source or ProjectionLayoutSource(), DOCUMENT_KEY, MAX_BYTES)
|
|
if not readable or raw is None:
|
|
return default_layout_for_viewport(viewport)
|
|
try:
|
|
return decode_layout_for_viewport(raw, viewport)
|
|
except (ValueError, TypeError, UnicodeError, OverflowError, RecursionError):
|
|
return default_layout_for_viewport(viewport)
|