docs(audio): document parseBridgeAudioRoute case-sensitivity contract
Adds a doc comment to parseBridgeAudioRoute clarifying that both iOS and Android producers (IOSAudioLifecycleController.classifyDevice and AndroidAudioLifecycleController.classifyDevice) emit exact PascalCase strings. Case variants (USB_HEADSET, usb_headset, UsbHeadphone) fall through to unknown by design. This is a silent failure mode worth documenting so future changes to either platform classifier are paired with a parser update. Per PR #28 review feedback.
This commit is contained in:
@@ -7,6 +7,20 @@ import '../src/rust/api.dart' as rust;
|
|||||||
const iosAudioLifecycleChannelName = 'chanora/ios_audio_lifecycle';
|
const iosAudioLifecycleChannelName = 'chanora/ios_audio_lifecycle';
|
||||||
const androidAudioLifecycleChannelName = 'chanora/android_audio_lifecycle';
|
const androidAudioLifecycleChannelName = 'chanora/android_audio_lifecycle';
|
||||||
|
|
||||||
|
/// Parses a platform-channel route string into a [rust.BridgeAudioRoute].
|
||||||
|
///
|
||||||
|
/// The producer contract is:
|
||||||
|
/// - iOS: `IOSAudioLifecycleController.classifyDevice` emits one of
|
||||||
|
/// `Earpiece`, `Speaker`, `WiredHeadset`, `BluetoothHfp`, `BluetoothA2dp`,
|
||||||
|
/// `Unknown`.
|
||||||
|
/// - Android: `AndroidAudioLifecycleController.classifyDevice` emits one of
|
||||||
|
/// `Earpiece`, `Speaker`, `WiredHeadset`, `UsbHeadset`, `BluetoothHfp`,
|
||||||
|
/// `BluetoothA2dp`, `Hdmi`, `Unknown`.
|
||||||
|
///
|
||||||
|
/// Both producers emit exact PascalCase strings. Case variants (`USB_HEADSET`,
|
||||||
|
/// `usb_headset`, `UsbHeadphone`) are NOT handled and will fall through to
|
||||||
|
/// `unknown`. If either platform classifier changes its string contract,
|
||||||
|
/// update both producers and this parser together.
|
||||||
rust.BridgeAudioRoute parseBridgeAudioRoute(String value) {
|
rust.BridgeAudioRoute parseBridgeAudioRoute(String value) {
|
||||||
switch (value) {
|
switch (value) {
|
||||||
case 'Earpiece':
|
case 'Earpiece':
|
||||||
|
|||||||
Reference in New Issue
Block a user