-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Open
Description
Summary
A case discrepancy has been found between TLV key strings in the Rust and Kotlin source code, specifically for Smart Routing fields such as PlayingApp vs playingApp and HostStreamingState vs hostStreamingState.
Details
- Rust source (
linux-rust/src/bluetooth/aacp.rs):- In
send_media_information_new_device, keys are used with lower-case starts:"playingApp"and"hostStreamingState". - In
send_media_information, the same keys are used with capitalized case:"PlayingApp","HostStreamingState".
- In
- Kotlin source (
android/app/src/main/java/me/kavishdevar/librepods/utils/AACPManager.kt, main branch):- Similar inconsistencies or choices appear in the TLV/string keys used for Smart Routing.
Questions/clarification sought
- Is this difference in case intentional or a typo?
- Should the case of these field names be normalized across platforms (Rust and Kotlin), or does the protocol require specific casing in each context?
- Are there potential interop issues or device behavior changes if this case mismatch persists?
Related snippets:
- Rust, lines 958/962 vs 1031/1035 in
aacp.rs. - Kotlin, in
AACPManager.kt, Smart Routing payload code (details can be provided if needed).
Steps to reproduce
- Compare both implementations: Rust module versus Kotlin source for Smart Routing payload construction.
- Observe the difference for
PlayingApp/playingAppand similar field names.
Main goal:
Seeks clarification on protocol field casing, and whether normalization/fix is required.
CC: maintainers & anyone with protocol reverse engineering experience.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels