diff --git a/media/java/android/media/AudioSystem.java b/media/java/android/media/AudioSystem.java index f1197edd453d31b5bd9f55b05fff0a41808afb63..9b3ade524a4b2ab1a9450a9d18361d031d01a953 100644 --- a/media/java/android/media/AudioSystem.java +++ b/media/java/android/media/AudioSystem.java @@ -29,6 +29,7 @@ import android.media.audiofx.AudioEffect; import android.media.audiopolicy.AudioMix; import android.os.Build; import android.os.IBinder; +import android.os.SystemProperties; import android.os.Vibrator; import android.telephony.TelephonyManager; import android.util.Log; @@ -252,6 +253,9 @@ public class AudioSystem @Retention(RetentionPolicy.SOURCE) public @interface AudioFormatNativeEnumForBtCodec {} + private static final boolean IS_QTI_BT = + SystemProperties.get("ro.bluetooth.library_name", "").equals("libbluetooth_qti.so"); + /** * @hide * Convert audio format enum values to Bluetooth codec values @@ -264,13 +268,14 @@ public class AudioSystem case AUDIO_FORMAT_APTX: return BluetoothCodecConfig.SOURCE_CODEC_TYPE_APTX; case AUDIO_FORMAT_APTX_HD: return BluetoothCodecConfig.SOURCE_CODEC_TYPE_APTX_HD; case AUDIO_FORMAT_LDAC: return BluetoothCodecConfig.SOURCE_CODEC_TYPE_LDAC; - case AUDIO_FORMAT_CELT: return BluetoothCodecConfig.SOURCE_CODEC_TYPE_CELT; + case AUDIO_FORMAT_CELT: + if (IS_QTI_BT) return BluetoothCodecConfig.SOURCE_CODEC_TYPE_CELT; case AUDIO_FORMAT_APTX_ADAPTIVE: - return BluetoothCodecConfig.SOURCE_CODEC_TYPE_APTX_ADAPTIVE; + if (IS_QTI_BT) return BluetoothCodecConfig.SOURCE_CODEC_TYPE_APTX_ADAPTIVE; case AUDIO_FORMAT_APTX_TWSP: - return BluetoothCodecConfig.SOURCE_CODEC_TYPE_APTX_TWSP; + if (IS_QTI_BT) return BluetoothCodecConfig.SOURCE_CODEC_TYPE_APTX_TWSP; case VX_AUDIO_FORMAT_LC3: - return BluetoothCodecConfig.SOURCE_CODEC_TYPE_LC3; + if (IS_QTI_BT) return BluetoothCodecConfig.SOURCE_CODEC_TYPE_LC3; default: Log.e(TAG, "Unknown audio format 0x" + Integer.toHexString(audioFormat) + " for conversion to BT codec"); @@ -297,13 +302,13 @@ public class AudioSystem case BluetoothCodecConfig.SOURCE_CODEC_TYPE_LDAC: return AudioSystem.AUDIO_FORMAT_LDAC; case BluetoothCodecConfig.SOURCE_CODEC_TYPE_CELT: - return AudioSystem.AUDIO_FORMAT_CELT; + if (IS_QTI_BT) return AudioSystem.AUDIO_FORMAT_CELT; case BluetoothCodecConfig.SOURCE_CODEC_TYPE_APTX_ADAPTIVE: - return AudioSystem.AUDIO_FORMAT_APTX_ADAPTIVE; + if (IS_QTI_BT) return AudioSystem.AUDIO_FORMAT_APTX_ADAPTIVE; case BluetoothCodecConfig.SOURCE_CODEC_TYPE_APTX_TWSP: - return AudioSystem.AUDIO_FORMAT_APTX_TWSP; + if (IS_QTI_BT) return AudioSystem.AUDIO_FORMAT_APTX_TWSP; case BluetoothCodecConfig.SOURCE_CODEC_TYPE_LC3: - return AudioSystem.VX_AUDIO_FORMAT_LC3; + if (IS_QTI_BT) return AudioSystem.VX_AUDIO_FORMAT_LC3; default: Log.e(TAG, "Unknown BT codec 0x" + Integer.toHexString(btCodec) + " for conversion to audio format");