Loading core/java/android/bluetooth/BluetoothA2dp.java +45 −0 Original line number Diff line number Diff line Loading @@ -610,6 +610,51 @@ public final class BluetoothA2dp implements BluetoothProfile { } } /** * Enables the optional codecs. * * @hide */ public void enableOptionalCodecs() { if (DBG) Log.d(TAG, "enableOptionalCodecs"); enableDisableOptionalCodecs(true); } /** * Disables the optional codecs. * * @hide */ public void disableOptionalCodecs() { if (DBG) Log.d(TAG, "disableOptionalCodecs"); enableDisableOptionalCodecs(false); } /** * Enables or disables the optional codecs. * * @param enable if true, enable the optional codecs, other disable them */ private void enableDisableOptionalCodecs(boolean enable) { try { mServiceLock.readLock().lock(); if (mService != null && isEnabled()) { if (enable) { mService.enableOptionalCodecs(); } else { mService.disableOptionalCodecs(); } } if (mService == null) Log.w(TAG, "Proxy not attached to service"); return; } catch (RemoteException e) { Log.e(TAG, "Error talking to BT service in enableDisableOptionalCodecs()", e); return; } finally { mServiceLock.readLock().unlock(); } } /** * Helper for converting a state to a string. * Loading core/java/android/bluetooth/BluetoothCodecConfig.java +21 −1 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ public final class BluetoothCodecConfig implements Parcelable { public static final int CHANNEL_MODE_STEREO = 0x1 << 1; private final int mCodecType; private final int mCodecPriority; private int mCodecPriority; private final int mSampleRate; private final int mBitsPerSample; private final int mChannelMode; Loading Loading @@ -279,6 +279,15 @@ public final class BluetoothCodecConfig implements Parcelable { return mCodecType; } /** * Checks whether the codec is mandatory. * * @return true if the codec is mandatory, otherwise false. */ public boolean isMandatoryCodec() { return mCodecType == SOURCE_CODEC_TYPE_SBC; } /** * Gets the codec selection priority. * The codec selection priority is relative to other codecs: larger value Loading @@ -290,6 +299,17 @@ public final class BluetoothCodecConfig implements Parcelable { return mCodecPriority; } /** * Sets the codec selection priority. * The codec selection priority is relative to other codecs: larger value * means higher priority. If 0, reset to default. * * @param codecPriority the codec priority */ public void setCodecPriority(int codecPriority) { mCodecPriority = codecPriority; } /** * Gets the codec sample rate. The value can be a bitmask with all * supported sample rates: Loading core/java/android/bluetooth/IBluetoothA2dp.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -40,4 +40,6 @@ interface IBluetoothA2dp { boolean isA2dpPlaying(in BluetoothDevice device); BluetoothCodecStatus getCodecStatus(); oneway void setCodecConfigPreference(in BluetoothCodecConfig codecConfig); oneway void enableOptionalCodecs(); oneway void disableOptionalCodecs(); } packages/SettingsLib/res/values/arrays.xml +6 −0 Original line number Diff line number Diff line Loading @@ -124,6 +124,8 @@ <item>aptX</item> <item>aptX HD</item> <item>LDAC</item> <item>Enable Optional Codecs</item> <item>Disable Optional Codecs</item> </string-array> <!-- Values for Bluetooth Audio Codec selection preference. --> Loading @@ -134,6 +136,8 @@ <item>2</item> <item>3</item> <item>4</item> <item>5</item> <item>6</item> </string-array> <!-- Summaries for Bluetooth Audio Codec selection preference. [CHAR LIMIT=50]--> Loading @@ -144,6 +148,8 @@ <item>aptX</item> <item>aptX HD</item> <item>LDAC</item> <item>Enable Optional Codecs</item> <item>Disable Optional Codecs</item> </string-array> <!-- Titles for Bluetooth Audio Codec Sample Rate selection preference. [CHAR LIMIT=50] --> Loading Loading
core/java/android/bluetooth/BluetoothA2dp.java +45 −0 Original line number Diff line number Diff line Loading @@ -610,6 +610,51 @@ public final class BluetoothA2dp implements BluetoothProfile { } } /** * Enables the optional codecs. * * @hide */ public void enableOptionalCodecs() { if (DBG) Log.d(TAG, "enableOptionalCodecs"); enableDisableOptionalCodecs(true); } /** * Disables the optional codecs. * * @hide */ public void disableOptionalCodecs() { if (DBG) Log.d(TAG, "disableOptionalCodecs"); enableDisableOptionalCodecs(false); } /** * Enables or disables the optional codecs. * * @param enable if true, enable the optional codecs, other disable them */ private void enableDisableOptionalCodecs(boolean enable) { try { mServiceLock.readLock().lock(); if (mService != null && isEnabled()) { if (enable) { mService.enableOptionalCodecs(); } else { mService.disableOptionalCodecs(); } } if (mService == null) Log.w(TAG, "Proxy not attached to service"); return; } catch (RemoteException e) { Log.e(TAG, "Error talking to BT service in enableDisableOptionalCodecs()", e); return; } finally { mServiceLock.readLock().unlock(); } } /** * Helper for converting a state to a string. * Loading
core/java/android/bluetooth/BluetoothCodecConfig.java +21 −1 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ public final class BluetoothCodecConfig implements Parcelable { public static final int CHANNEL_MODE_STEREO = 0x1 << 1; private final int mCodecType; private final int mCodecPriority; private int mCodecPriority; private final int mSampleRate; private final int mBitsPerSample; private final int mChannelMode; Loading Loading @@ -279,6 +279,15 @@ public final class BluetoothCodecConfig implements Parcelable { return mCodecType; } /** * Checks whether the codec is mandatory. * * @return true if the codec is mandatory, otherwise false. */ public boolean isMandatoryCodec() { return mCodecType == SOURCE_CODEC_TYPE_SBC; } /** * Gets the codec selection priority. * The codec selection priority is relative to other codecs: larger value Loading @@ -290,6 +299,17 @@ public final class BluetoothCodecConfig implements Parcelable { return mCodecPriority; } /** * Sets the codec selection priority. * The codec selection priority is relative to other codecs: larger value * means higher priority. If 0, reset to default. * * @param codecPriority the codec priority */ public void setCodecPriority(int codecPriority) { mCodecPriority = codecPriority; } /** * Gets the codec sample rate. The value can be a bitmask with all * supported sample rates: Loading
core/java/android/bluetooth/IBluetoothA2dp.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -40,4 +40,6 @@ interface IBluetoothA2dp { boolean isA2dpPlaying(in BluetoothDevice device); BluetoothCodecStatus getCodecStatus(); oneway void setCodecConfigPreference(in BluetoothCodecConfig codecConfig); oneway void enableOptionalCodecs(); oneway void disableOptionalCodecs(); }
packages/SettingsLib/res/values/arrays.xml +6 −0 Original line number Diff line number Diff line Loading @@ -124,6 +124,8 @@ <item>aptX</item> <item>aptX HD</item> <item>LDAC</item> <item>Enable Optional Codecs</item> <item>Disable Optional Codecs</item> </string-array> <!-- Values for Bluetooth Audio Codec selection preference. --> Loading @@ -134,6 +136,8 @@ <item>2</item> <item>3</item> <item>4</item> <item>5</item> <item>6</item> </string-array> <!-- Summaries for Bluetooth Audio Codec selection preference. [CHAR LIMIT=50]--> Loading @@ -144,6 +148,8 @@ <item>aptX</item> <item>aptX HD</item> <item>LDAC</item> <item>Enable Optional Codecs</item> <item>Disable Optional Codecs</item> </string-array> <!-- Titles for Bluetooth Audio Codec Sample Rate selection preference. [CHAR LIMIT=50] --> Loading