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

Commit 8658ee82 authored by Nathalie Le Clair's avatar Nathalie Le Clair
Browse files

Parse raw eARC capabilities

Test: atest
Bug: 260547656
Change-Id: I3126d10d10926885adf4f2fd22531f36ffefd5f9
parent ccc138ad
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -20371,6 +20371,8 @@ package android.media {
    field @NonNull public static final android.os.Parcelable.Creator<android.media.AudioDescriptor> CREATOR;
    field public static final int STANDARD_EDID = 1; // 0x1
    field public static final int STANDARD_NONE = 0; // 0x0
    field public static final int STANDARD_SADB = 2; // 0x2
    field public static final int STANDARD_VSADB = 3; // 0x3
  }
  public abstract class AudioDeviceCallback {
+8 −0
Original line number Diff line number Diff line
@@ -25,6 +25,8 @@ namespace android {
// keep these values in sync with ExtraAudioDescriptor.java
#define STANDARD_NONE 0
#define STANDARD_EDID 1
#define STANDARD_SADB 2
#define STANDARD_VSADB 3

static inline status_t audioStandardFromNative(audio_standard_t nStandard, int* standard) {
    status_t result = NO_ERROR;
@@ -35,6 +37,12 @@ static inline status_t audioStandardFromNative(audio_standard_t nStandard, int*
        case AUDIO_STANDARD_EDID:
            *standard = STANDARD_EDID;
            break;
        case AUDIO_STANDARD_SADB:
            *standard = STANDARD_SADB;
            break;
        case AUDIO_STANDARD_VSADB:
            *standard = STANDARD_VSADB;
            break;
        default:
            result = BAD_VALUE;
    }
+10 −0
Original line number Diff line number Diff line
@@ -41,11 +41,21 @@ public class AudioDescriptor implements Parcelable {
     * The Extended Display Identification Data (EDID) standard for a short audio descriptor.
     */
    public static final int STANDARD_EDID = 1;
    /**
     * The standard for a Speaker Allocation Data Block (SADB).
     */
    public static final int STANDARD_SADB = 2;
    /**
     * The standard for a Vendor-Specific Audio Data Block (VSADB).
     */
    public static final int STANDARD_VSADB = 3;

    /** @hide */
    @IntDef({
            STANDARD_NONE,
            STANDARD_EDID,
            STANDARD_SADB,
            STANDARD_VSADB,
    })
    @Retention(RetentionPolicy.SOURCE)
    public @interface AudioDescriptorStandard {}
+8 −0
Original line number Diff line number Diff line
@@ -585,6 +585,10 @@ public class AidlConversion {
        switch (standard) {
            case AudioDescriptor.STANDARD_EDID:
                return AudioStandard.EDID;
            case AudioDescriptor.STANDARD_SADB:
                return AudioStandard.SADB;
            case AudioDescriptor.STANDARD_VSADB:
                return AudioStandard.VSADB;
            case AudioDescriptor.STANDARD_NONE:
            default:
                return AudioStandard.NONE;
@@ -599,6 +603,10 @@ public class AidlConversion {
        switch (standard) {
            case AudioStandard.EDID:
                return AudioDescriptor.STANDARD_EDID;
            case AudioStandard.SADB:
                return AudioDescriptor.STANDARD_SADB;
            case AudioStandard.VSADB:
                return AudioDescriptor.STANDARD_VSADB;
            case AudioStandard.NONE:
            default:
                return AudioDescriptor.STANDARD_NONE;
+2 −2
Original line number Diff line number Diff line
@@ -4527,7 +4527,7 @@ public class HdmiControlService extends SystemService {
    }

    @ServiceThreadOnly
    void handleEarcCapabilitiesReported(List<byte[]> capabilities, int portId) {
    void handleEarcCapabilitiesReported(byte[] rawCapabilities, int portId) {
        assertRunOnServiceThread();
        if (!getPortInfo(portId).isEarcSupported()) {
            Slog.w(TAG,
@@ -4537,7 +4537,7 @@ public class HdmiControlService extends SystemService {
        // If eARC is disabled, the local device is null. In this case, the HAL shouldn't have
        // reported eARC capabilities, but even if it did, it won't take effect.
        if (mEarcLocalDevice != null) {
            mEarcLocalDevice.handleEarcCapabilitiesReported(capabilities);
            mEarcLocalDevice.handleEarcCapabilitiesReported(rawCapabilities);
        }
    }
}
Loading