Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ec93ea4e authored by LuK1337's avatar LuK1337 Committed by Łukasz Patron
Browse files

audio: Discard QTI only codecs when AOSP BT stack is in use

* Fixes a2dp offload on devices not using QTI BT stack.

Change-Id: I5044d02f8be74bbf050b16083e753bd392dac0a6
parent 2373904f
Loading
Loading
Loading
Loading
+13 −8
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import android.content.Context;
import android.content.pm.PackageManager;
import android.media.audiofx.AudioEffect;
import android.media.audiopolicy.AudioMix;
import android.os.SystemProperties;
import android.telephony.TelephonyManager;
import android.util.Log;

@@ -220,6 +221,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
@@ -232,13 +236,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");
@@ -265,13 +270,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");