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

Commit d31c55e5 authored by Nathalie Le Clair's avatar Nathalie Le Clair Committed by Automerger Merge Worker
Browse files

Merge "CEC: Change vendor command handling" am: 134f59f8 am: e90b5a3e am:...

Merge "CEC: Change vendor command handling" am: 134f59f8 am: e90b5a3e am: 53ffd7a1 am: 70b1d31e

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1807376

Change-Id: I42316b1f2508b9eebde4b3d3e9470044e387fd17
parents e1b35316 70b1d31e
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -3713,6 +3713,7 @@ package android.hardware.hdmi {
    method public void sendKeyEvent(int, boolean);
    method public void sendVendorCommand(int, byte[], boolean);
    method public void setVendorCommandListener(@NonNull android.hardware.hdmi.HdmiControlManager.VendorCommandListener);
    method public void setVendorCommandListener(@NonNull android.hardware.hdmi.HdmiControlManager.VendorCommandListener, int);
  }
  public static interface HdmiClient.OnDeviceSelectedListener {
+18 −2
Original line number Diff line number Diff line
@@ -21,6 +21,8 @@ import java.util.concurrent.Executor;
public abstract class HdmiClient {
    private static final String TAG = "HdmiClient";

    private static final int UNKNOWN_VENDOR_ID = 0xFFFFFF;

    /* package */ final IHdmiControlService mService;

    private IHdmiVendorCommandListener mIHdmiVendorCommandListener;
@@ -156,11 +158,25 @@ public abstract class HdmiClient {
    }

    /**
     * Sets a listener used to receive incoming vendor-specific command.
     * Sets a listener used to receive incoming vendor-specific command. This listener will only
     * receive {@code <Vendor Command>} but will not receive any {@code <Vendor Command with ID>}
     * messages.
     *
     * @param listener listener object
     */
    public void setVendorCommandListener(@NonNull VendorCommandListener listener) {
        // Set the vendor ID to INVALID_VENDOR_ID.
        setVendorCommandListener(listener, UNKNOWN_VENDOR_ID);
    }

    /**
     * Sets a listener used to receive incoming vendor-specific command.
     *
     * @param listener listener object
     * @param vendorId The listener is interested in {@code <Vendor Command with ID>} received with
     *     this vendorId and all {@code <Vendor Command>} messages.
     */
    public void setVendorCommandListener(@NonNull VendorCommandListener listener, int vendorId) {
        if (listener == null) {
            throw new IllegalArgumentException("listener cannot be null");
        }
@@ -169,7 +185,7 @@ public abstract class HdmiClient {
        }
        try {
            IHdmiVendorCommandListener wrappedListener = getListenerWrapper(listener);
            mService.addVendorCommandListener(wrappedListener, getDeviceType());
            mService.addVendorCommandListener(wrappedListener, vendorId);
            mIHdmiVendorCommandListener = wrappedListener;
        } catch (RemoteException e) {
            Log.e(TAG, "failed to set vendor command listener: ", e);
+3 −3
Original line number Diff line number Diff line
@@ -221,8 +221,8 @@ public final class HdmiControlServiceWrapper {
        }

        @Override
        public void addVendorCommandListener(IHdmiVendorCommandListener listener, int deviceType) {
            HdmiControlServiceWrapper.this.addVendorCommandListener(listener, deviceType);
        public void addVendorCommandListener(IHdmiVendorCommandListener listener, int vendorId) {
            HdmiControlServiceWrapper.this.addVendorCommandListener(listener, vendorId);
        }

        @Override
@@ -481,7 +481,7 @@ public final class HdmiControlServiceWrapper {
            boolean hasVendorId) {}

    /** @hide */
    public void addVendorCommandListener(IHdmiVendorCommandListener listener, int deviceType) {}
    public void addVendorCommandListener(IHdmiVendorCommandListener listener, int vendorId) {}

    /** @hide */
    public void sendStandby(int deviceType, int deviceId) {}
+1 −1
Original line number Diff line number Diff line
@@ -76,7 +76,7 @@ interface IHdmiControlService {
    void askRemoteDeviceToBecomeActiveSource(int physicalAddress);
    void sendVendorCommand(int deviceType, int targetAddress, in byte[] params,
            boolean hasVendorId);
    void addVendorCommandListener(IHdmiVendorCommandListener listener, int deviceType);
    void addVendorCommandListener(IHdmiVendorCommandListener listener, int vendorId);
    void sendStandby(int deviceType, int deviceId);
    void setHdmiRecordListener(IHdmiRecordListener callback);
    void startOneTouchRecord(int recorderAddress, in byte[] recordSource);
+2 −3
Original line number Diff line number Diff line
@@ -288,9 +288,8 @@ public class HdmiAudioSystemClientTest {
        }

        @Override
        public void addVendorCommandListener(final IHdmiVendorCommandListener listener,
                final int deviceType) {
        }
        public void addVendorCommandListener(
                final IHdmiVendorCommandListener listener, final int vendorId) {}

        @Override
        public void sendVendorCommand(final int deviceType, final int targetAddress,
Loading