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

Commit 54bfaf7a authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Update CEC device features constants and handling"

parents ddb1e477 1833e43e
Loading
Loading
Loading
Loading
+39 −0
Original line number Original line Diff line number Diff line
@@ -507,6 +507,15 @@ final class Constants {
    static final int ALL_DEVICE_TYPES_PLAYBACK = 4;
    static final int ALL_DEVICE_TYPES_PLAYBACK = 4;
    static final int ALL_DEVICE_TYPES_AUDIO_SYSTEM = 3;
    static final int ALL_DEVICE_TYPES_AUDIO_SYSTEM = 3;
    static final int ALL_DEVICE_TYPES_SWITCH = 2;
    static final int ALL_DEVICE_TYPES_SWITCH = 2;
    @IntDef({
            ALL_DEVICE_TYPES_TV,
            ALL_DEVICE_TYPES_RECORDER,
            ALL_DEVICE_TYPES_TUNER,
            ALL_DEVICE_TYPES_PLAYBACK,
            ALL_DEVICE_TYPES_AUDIO_SYSTEM,
            ALL_DEVICE_TYPES_SWITCH
    })
    @interface DeviceType {}


    static final int DEVICE_FEATURE_TV_SUPPORTS_RECORD_TV_SCREEN = 6;
    static final int DEVICE_FEATURE_TV_SUPPORTS_RECORD_TV_SCREEN = 6;
    static final int DEVICE_FEATURE_TV_SUPPORTS_SET_OSD_STRING = 5;
    static final int DEVICE_FEATURE_TV_SUPPORTS_SET_OSD_STRING = 5;
@@ -514,21 +523,51 @@ final class Constants {
    static final int DEVICE_FEATURE_SUPPORTS_SET_AUDIO_RATE = 3;
    static final int DEVICE_FEATURE_SUPPORTS_SET_AUDIO_RATE = 3;
    static final int DEVICE_FEATURE_SINK_SUPPORTS_ARC_TX = 2;
    static final int DEVICE_FEATURE_SINK_SUPPORTS_ARC_TX = 2;
    static final int DEVICE_FEATURE_SOURCE_SUPPORTS_ARC_RX = 1;
    static final int DEVICE_FEATURE_SOURCE_SUPPORTS_ARC_RX = 1;
    @IntDef({
            DEVICE_FEATURE_TV_SUPPORTS_RECORD_TV_SCREEN,
            DEVICE_FEATURE_TV_SUPPORTS_SET_OSD_STRING,
            DEVICE_FEATURE_SUPPORTS_DECK_CONTROL,
            DEVICE_FEATURE_SUPPORTS_SET_AUDIO_RATE,
            DEVICE_FEATURE_SINK_SUPPORTS_ARC_TX,
            DEVICE_FEATURE_SOURCE_SUPPORTS_ARC_RX
    })
    @interface DeviceFeature {}


    static final int RC_PROFILE_TV = 0;
    static final int RC_PROFILE_TV = 0;
    static final int RC_PROFILE_SOURCE = 1;
    static final int RC_PROFILE_SOURCE = 1;
    @IntDef({
            RC_PROFILE_TV,
            RC_PROFILE_SOURCE
    })
    @interface RcProfile {}


    static final int RC_PROFILE_TV_NONE = 0x0;
    static final int RC_PROFILE_TV_NONE = 0x0;
    static final int RC_PROFILE_TV_ONE = 0x2;
    static final int RC_PROFILE_TV_ONE = 0x2;
    static final int RC_PROFILE_TV_TWO = 0x6;
    static final int RC_PROFILE_TV_TWO = 0x6;
    static final int RC_PROFILE_TV_THREE = 0xA;
    static final int RC_PROFILE_TV_THREE = 0xA;
    static final int RC_PROFILE_TV_FOUR = 0xE;
    static final int RC_PROFILE_TV_FOUR = 0xE;
    @IntDef({
            RC_PROFILE_TV_NONE,
            RC_PROFILE_TV_ONE,
            RC_PROFILE_TV_TWO,
            RC_PROFILE_TV_THREE,
            RC_PROFILE_TV_FOUR
    })
    @interface RcProfileTv {}


    static final int RC_PROFILE_SOURCE_HANDLES_ROOT_MENU = 4;
    static final int RC_PROFILE_SOURCE_HANDLES_ROOT_MENU = 4;
    static final int RC_PROFILE_SOURCE_HANDLES_SETUP_MENU = 3;
    static final int RC_PROFILE_SOURCE_HANDLES_SETUP_MENU = 3;
    static final int RC_PROFILE_SOURCE_HANDLES_CONTENTS_MENU = 2;
    static final int RC_PROFILE_SOURCE_HANDLES_CONTENTS_MENU = 2;
    static final int RC_PROFILE_SOURCE_HANDLES_TOP_MENU = 1;
    static final int RC_PROFILE_SOURCE_HANDLES_TOP_MENU = 1;
    static final int RC_PROFILE_SOURCE_HANDLES_MEDIA_CONTEXT_SENSITIVE_MENU = 0;
    static final int RC_PROFILE_SOURCE_HANDLES_MEDIA_CONTEXT_SENSITIVE_MENU = 0;
    @IntDef({
            RC_PROFILE_SOURCE_HANDLES_ROOT_MENU,
            RC_PROFILE_SOURCE_HANDLES_SETUP_MENU,
            RC_PROFILE_SOURCE_HANDLES_CONTENTS_MENU,
            RC_PROFILE_SOURCE_HANDLES_TOP_MENU,
            RC_PROFILE_SOURCE_HANDLES_MEDIA_CONTEXT_SENSITIVE_MENU
    })
    @interface RcProfileSource {}


    private Constants() {
    private Constants() {
        /* cannot be instantiated */
        /* cannot be instantiated */
+1 −0
Original line number Original line Diff line number Diff line
@@ -554,6 +554,7 @@ abstract class HdmiCecLocalDevice {
        return false;
        return false;
    }
    }


    @Constants.RcProfile
    protected abstract int getRcProfile();
    protected abstract int getRcProfile();


    protected abstract List<Integer> getRcFeatures();
    protected abstract List<Integer> getRcFeatures();
+7 −3
Original line number Original line Diff line number Diff line
@@ -47,8 +47,6 @@ import com.android.server.hdmi.HdmiAnnotations.ServiceThreadOnly;
import com.android.server.hdmi.HdmiUtils.CodecSad;
import com.android.server.hdmi.HdmiUtils.CodecSad;
import com.android.server.hdmi.HdmiUtils.DeviceConfig;
import com.android.server.hdmi.HdmiUtils.DeviceConfig;


import com.google.android.collect.Lists;

import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserException;


import java.io.File;
import java.io.File;
@@ -179,7 +177,13 @@ public class HdmiCecLocalDeviceAudioSystem extends HdmiCecLocalDeviceSource {


    @Override
    @Override
    protected List<Integer> getDeviceFeatures() {
    protected List<Integer> getDeviceFeatures() {
        return Lists.newArrayList(Constants.DEVICE_FEATURE_SOURCE_SUPPORTS_ARC_RX);
        List<Integer> deviceFeatures = new ArrayList<>();

        if (SystemProperties.getBoolean(Constants.PROPERTY_ARC_SUPPORT, true)) {
            deviceFeatures.add(Constants.DEVICE_FEATURE_SOURCE_SUPPORTS_ARC_RX);
        }

        return deviceFeatures;
    }
    }


    @Override
    @Override
+3 −4
Original line number Original line Diff line number Diff line
@@ -296,6 +296,7 @@ abstract class HdmiCecLocalDeviceSource extends HdmiCecLocalDevice {
        // do nothing
        // do nothing
    }
    }


    @Constants.RcProfile
    @Override
    @Override
    protected int getRcProfile() {
    protected int getRcProfile() {
        return Constants.RC_PROFILE_SOURCE;
        return Constants.RC_PROFILE_SOURCE;
@@ -303,10 +304,8 @@ abstract class HdmiCecLocalDeviceSource extends HdmiCecLocalDevice {


    @Override
    @Override
    protected List<Integer> getRcFeatures() {
    protected List<Integer> getRcFeatures() {
        return Lists.newArrayList(Constants.RC_PROFILE_SOURCE_HANDLES_CONTENTS_MENU,
        return Lists.newArrayList(Constants.RC_PROFILE_SOURCE_HANDLES_ROOT_MENU,
                Constants.RC_PROFILE_SOURCE_HANDLES_ROOT_MENU,
                Constants.RC_PROFILE_SOURCE_HANDLES_SETUP_MENU);
                Constants.RC_PROFILE_SOURCE_HANDLES_SETUP_MENU,
                Constants.RC_PROFILE_SOURCE_HANDLES_TOP_MENU);
    }
    }


    @Override
    @Override
+17 −2
Original line number Original line Diff line number Diff line
@@ -53,6 +53,7 @@ import com.android.server.hdmi.HdmiControlService.SendMessageCallback;


import com.google.android.collect.Lists;
import com.google.android.collect.Lists;


import java.util.ArrayList;
import java.util.Arrays;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashMap;
import java.util.List;
import java.util.List;
@@ -1480,6 +1481,7 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {
        return true;
        return true;
    }
    }


    @Constants.RcProfile
    @Override
    @Override
    protected int getRcProfile() {
    protected int getRcProfile() {
        return Constants.RC_PROFILE_TV;
        return Constants.RC_PROFILE_TV;
@@ -1492,8 +1494,21 @@ final class HdmiCecLocalDeviceTv extends HdmiCecLocalDevice {


    @Override
    @Override
    protected List<Integer> getDeviceFeatures() {
    protected List<Integer> getDeviceFeatures() {
        return Lists.newArrayList(Constants.DEVICE_FEATURE_SINK_SUPPORTS_ARC_TX,
        List<Integer> deviceFeatures = new ArrayList<>();
                Constants.DEVICE_FEATURE_TV_SUPPORTS_RECORD_TV_SCREEN);

        boolean hasArcPort = false;
        List<HdmiPortInfo> ports = mService.getPortInfo();
        for (HdmiPortInfo port : ports) {
            if (isArcFeatureEnabled(port.getId())) {
                hasArcPort = true;
                break;
            }
        }
        if (hasArcPort) {
            deviceFeatures.add(Constants.DEVICE_FEATURE_SINK_SUPPORTS_ARC_TX);
        }
        deviceFeatures.add(Constants.DEVICE_FEATURE_TV_SUPPORTS_RECORD_TV_SCREEN);
        return deviceFeatures;
    }
    }


    @Override
    @Override
Loading