AudioDevice.fromMap constructor
AudioDevice.fromMap(
- Map<String, dynamic> map
)
Implementation
factory AudioDevice.fromMap(Map<String, dynamic> map) {
final String protocolString = map['protocol'] as String? ?? 'unknown';
AudioProtocol protocol;
switch (protocolString) {
case 'bluetooth_a2dp': // 네이티브에서 이 문자열을 보내줘야 함
protocol = AudioProtocol.bluetoothA2dp;
break;
case 'bluetooth_hfp': // 네이티브에서 이 문자열을 보내줘야 함
protocol = AudioProtocol.bluetoothHfp;
break;
case 'bluetooth_le':
protocol = AudioProtocol.bluetoothLe;
break;
case 'wired':
protocol = AudioProtocol.wired;
break;
case 'speaker':
protocol = AudioProtocol.speaker;
break;
case 'earpiece':
protocol = AudioProtocol.earpiece;
break;
case 'airplay':
protocol = AudioProtocol.airplay;
break;
case 'wifi':
protocol = AudioProtocol.wifi;
break;
default:
// 혹시 모를 예외나 단순히 "bluetooth"라고만 올 경우를 대비
if (protocolString.contains('bluetooth')) {
protocol = AudioProtocol.bluetoothA2dp; // 기본값은 A2DP로 가정
} else {
protocol = AudioProtocol.unknown;
}
}
return AudioDevice(
name: map['name'] as String? ?? 'Unknown',
protocol: protocol,
address: map['address'] as String?,
isConnected: map['isConnected'] as bool? ?? true,
);
}