refactor(qconnect): extract device identity and transport config to transport.rs
Move 14 items that own QConnect transport setup, device identity, and
credential discovery into a dedicated transport submodule:
Device identity (pub(super)):
- default_qconnect_device_info / default_qconnect_device_info_with_name
- resolve_qconnect_device_uuid (with QCONNECT_DEVICE_UUID OnceLock)
- resolve_system_hostname, resolve_default_qconnect_device_name
Custom-device-name persistence (pub(super)):
- load_persisted_device_name, persist_device_name
(qconnect_settings_db_path stays private to the submodule)
Transport config + credentials (pub(super) + private):
- resolve_transport_config (handles env-var fallbacks, qws/createToken
auto-discovery, subscribe-channel parsing)
- fetch_qconnect_transport_credentials (private)
- normalize_opt_string, parse_subscribe_channels, decode_hex_channel
(private)
Diagnostics (pub(super)):
- hex_preview (used by transport-event debug logs in mod.rs)
Constants moved to transport.rs (private to the submodule):
- DEFAULT_QCONNECT_DEVICE_BRAND/MODEL/TYPE/SOFTWARE_PREFIX
- VOLUME_REMOTE_CONTROL_ALLOWED
- QCONNECT_QWS_TOKEN_KIND, QCONNECT_QWS_CREATE_TOKEN_PATH
Constants kept in mod.rs but promoted to pub(super) so transport.rs
can borrow them: AUDIO_QUALITY_MP3, AUDIO_QUALITY_HIRES_LEVEL2.
mod.rs imports OnceLock and Uuid removed (now confined to transport).
Pure relocation. mod.rs: 4022 → 3673 lines. transport.rs: 386 lines.
Total qconnect/ submodules now: 8 (types, session, queue_resolution,
corebridge, track_loading, event_sink, transport, plus residual mod.rs).
cc