From d6325ca14bebbc63e7719dade87846a92270d088 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=96R=C3=96K=20Attila?= Date: Sun, 24 Apr 2022 13:46:10 +0200 Subject: [PATCH 1/2] Add device types introduced in API level 31 or Android Tiramisu --- src/java_interface/definitions.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/java_interface/definitions.rs b/src/java_interface/definitions.rs index ab978f8..0a30329 100644 --- a/src/java_interface/definitions.rs +++ b/src/java_interface/definitions.rs @@ -88,6 +88,9 @@ pub struct AudioDeviceInfo { pub enum AudioDeviceType { Unknown = 0, AuxLine = 19, + BleBroadcast = 30, + BleHeadset = 26, + BleSpeaker = 27, BluetoothA2DP = 8, BluetoothSCO = 7, BuiltinEarpiece = 1, @@ -100,10 +103,12 @@ pub enum AudioDeviceType { FmTuner = 16, Hdmi = 9, HdmiArc = 10, + HdmiEarc = 29, HearingAid = 23, Ip = 20, LineAnalog = 5, LineDigital = 6, + RemoteSubmix = 25, Telephony = 18, TvTuner = 17, UsbAccessory = 12, From d4271da4c3ec82c96107fc6e349d42fea547d70d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?T=C3=96R=C3=96K=20Attila?= Date: Wed, 27 Apr 2022 12:18:35 +0200 Subject: [PATCH 2/2] Add AudioDeviceType::Unsupported variant, as future-proofing --- src/java_interface/definitions.rs | 1 + src/java_interface/devices_info.rs | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/java_interface/definitions.rs b/src/java_interface/definitions.rs index 0a30329..90d9551 100644 --- a/src/java_interface/definitions.rs +++ b/src/java_interface/definitions.rs @@ -116,6 +116,7 @@ pub enum AudioDeviceType { UsbHeadset = 22, WiredHeadphones = 4, WiredHeadset = 3, + Unsupported = -1, } /** diff --git a/src/java_interface/devices_info.rs b/src/java_interface/devices_info.rs index f3d2e36..162336c 100644 --- a/src/java_interface/devices_info.rs +++ b/src/java_interface/devices_info.rs @@ -9,7 +9,7 @@ use super::{ call_method_no_args_ret_string, get_context, get_devices, get_system_service, with_attached, JNIEnv, JObject, JResult, }, - AudioDeviceDirection, AudioDeviceInfo, Context, + AudioDeviceDirection, AudioDeviceInfo, AudioDeviceType, Context, }; impl AudioDeviceInfo { @@ -63,7 +63,7 @@ fn try_request_devices_info<'a>( device_type: FromPrimitive::from_i32(call_method_no_args_ret_int( env, device, "getType", )?) - .unwrap(), + .unwrap_or(AudioDeviceType::Unsupported), direction: AudioDeviceDirection::new( call_method_no_args_ret_bool(env, device, "isSource")?, call_method_no_args_ret_bool(env, device, "isSink")?,