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

Commit 5d597ef8 authored by Amy Zhang's avatar Amy Zhang
Browse files

Add Frontend Status Extended types and getter APIs

In Tuner 1.1, more extended frontend status types are added
for the OEMs to get frontend status more flexible

Call Tuner.getFrontendStatus would build up the FrontendStatus object
Extended type value getter APIs are added in the FrontendStatus
class to access the value returned from HAL.

Any query with extended type on unsupported HAL version would be ignored

Test: make -j44 dist
Bug: 158818695
Change-Id: Id8cb8b669962a1b4cbed481e91563b944d1f3837
parent d35f78ce
Loading
Loading
Loading
Loading
+24 −0
Original line number Original line Diff line number Diff line
@@ -5835,6 +5835,7 @@ package android.media.tv.tuner.frontend {
    method public int getSymbolRate();
    method public int getSymbolRate();
    method public int getType();
    method public int getType();
    method public int getVcmMode();
    method public int getVcmMode();
    method public boolean isDiseqcRxMessage();
    field public static final int MODULATION_AUTO = 1; // 0x1
    field public static final int MODULATION_AUTO = 1; // 0x1
    field public static final int MODULATION_MOD_128APSK = 2048; // 0x800
    field public static final int MODULATION_MOD_128APSK = 2048; // 0x800
    field public static final int MODULATION_MOD_16APSK = 256; // 0x100
    field public static final int MODULATION_MOD_16APSK = 256; // 0x100
@@ -5878,6 +5879,7 @@ package android.media.tv.tuner.frontend {
  public static class DvbsFrontendSettings.Builder {
  public static class DvbsFrontendSettings.Builder {
    method @NonNull public android.media.tv.tuner.frontend.DvbsFrontendSettings build();
    method @NonNull public android.media.tv.tuner.frontend.DvbsFrontendSettings build();
    method @NonNull public android.media.tv.tuner.frontend.DvbsFrontendSettings.Builder setCodeRate(@Nullable android.media.tv.tuner.frontend.DvbsCodeRate);
    method @NonNull public android.media.tv.tuner.frontend.DvbsFrontendSettings.Builder setCodeRate(@Nullable android.media.tv.tuner.frontend.DvbsCodeRate);
    method @NonNull public android.media.tv.tuner.frontend.DvbsFrontendSettings.Builder setDiseqcRxMessage(boolean);
    method @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.DvbsFrontendSettings.Builder setFrequency(int);
    method @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.DvbsFrontendSettings.Builder setFrequency(int);
    method @NonNull public android.media.tv.tuner.frontend.DvbsFrontendSettings.Builder setInputStreamId(int);
    method @NonNull public android.media.tv.tuner.frontend.DvbsFrontendSettings.Builder setInputStreamId(int);
    method @NonNull public android.media.tv.tuner.frontend.DvbsFrontendSettings.Builder setModulation(int);
    method @NonNull public android.media.tv.tuner.frontend.DvbsFrontendSettings.Builder setModulation(int);
@@ -6079,14 +6081,21 @@ package android.media.tv.tuner.frontend {
  public class FrontendStatus {
  public class FrontendStatus {
    method public int getAgc();
    method public int getAgc();
    method @NonNull public android.media.tv.tuner.frontend.FrontendStatus.Atsc3PlpTuningInfo[] getAtsc3PlpTuningInfo();
    method @NonNull public android.media.tv.tuner.frontend.FrontendStatus.Atsc3PlpTuningInfo[] getAtsc3PlpTuningInfo();
    method public int getBandwidth();
    method public int getBer();
    method public int getBer();
    method @NonNull public int[] getBers();
    method @NonNull public int[] getCodeRates();
    method public int getFreqOffset();
    method public int getFreqOffset();
    method public int getGuardInterval();
    method public int getHierarchy();
    method public int getHierarchy();
    method public long getInnerFec();
    method public long getInnerFec();
    method @NonNull public int[] getInterleaving();
    method @NonNull public int[] getIsdbtSegment();
    method @NonNull public boolean[] getLayerErrors();
    method @NonNull public boolean[] getLayerErrors();
    method public int getLnbVoltage();
    method public int getLnbVoltage();
    method public int getMer();
    method public int getMer();
    method public int getModulation();
    method public int getModulation();
    method @NonNull public int[] getModulationsExt();
    method public int getPer();
    method public int getPer();
    method public int getPerBer();
    method public int getPerBer();
    method public int getPlpId();
    method public int getPlpId();
@@ -6095,23 +6104,34 @@ package android.media.tv.tuner.frontend {
    method public int getSnr();
    method public int getSnr();
    method public int getSpectralInversion();
    method public int getSpectralInversion();
    method public int getSymbolRate();
    method public int getSymbolRate();
    method public int getSystemId();
    method public int getTransmissionMode();
    method @NonNull public int[] getTsDataRate();
    method public int getUec();
    method public boolean isDemodLocked();
    method public boolean isDemodLocked();
    method public boolean isEwbs();
    method public boolean isEwbs();
    method public boolean isLnaOn();
    method public boolean isLnaOn();
    method public boolean isRfLocked();
    method public boolean isRfLocked();
    field public static final int FRONTEND_STATUS_TYPE_AGC = 14; // 0xe
    field public static final int FRONTEND_STATUS_TYPE_AGC = 14; // 0xe
    field public static final int FRONTEND_STATUS_TYPE_ATSC3_PLP_INFO = 21; // 0x15
    field public static final int FRONTEND_STATUS_TYPE_ATSC3_PLP_INFO = 21; // 0x15
    field public static final int FRONTEND_STATUS_TYPE_BANDWIDTH = 25; // 0x19
    field public static final int FRONTEND_STATUS_TYPE_BER = 2; // 0x2
    field public static final int FRONTEND_STATUS_TYPE_BER = 2; // 0x2
    field public static final int FRONTEND_STATUS_TYPE_BERS = 23; // 0x17
    field public static final int FRONTEND_STATUS_TYPE_CODERATES = 24; // 0x18
    field public static final int FRONTEND_STATUS_TYPE_DEMOD_LOCK = 0; // 0x0
    field public static final int FRONTEND_STATUS_TYPE_DEMOD_LOCK = 0; // 0x0
    field public static final int FRONTEND_STATUS_TYPE_EWBS = 13; // 0xd
    field public static final int FRONTEND_STATUS_TYPE_EWBS = 13; // 0xd
    field public static final int FRONTEND_STATUS_TYPE_FEC = 8; // 0x8
    field public static final int FRONTEND_STATUS_TYPE_FEC = 8; // 0x8
    field public static final int FRONTEND_STATUS_TYPE_FREQ_OFFSET = 18; // 0x12
    field public static final int FRONTEND_STATUS_TYPE_FREQ_OFFSET = 18; // 0x12
    field public static final int FRONTEND_STATUS_TYPE_GUARD_INTERVAL = 26; // 0x1a
    field public static final int FRONTEND_STATUS_TYPE_HIERARCHY = 19; // 0x13
    field public static final int FRONTEND_STATUS_TYPE_HIERARCHY = 19; // 0x13
    field public static final int FRONTEND_STATUS_TYPE_INTERLEAVINGS = 30; // 0x1e
    field public static final int FRONTEND_STATUS_TYPE_ISDBT_SEGMENTS = 31; // 0x1f
    field public static final int FRONTEND_STATUS_TYPE_LAYER_ERROR = 16; // 0x10
    field public static final int FRONTEND_STATUS_TYPE_LAYER_ERROR = 16; // 0x10
    field public static final int FRONTEND_STATUS_TYPE_LNA = 15; // 0xf
    field public static final int FRONTEND_STATUS_TYPE_LNA = 15; // 0xf
    field public static final int FRONTEND_STATUS_TYPE_LNB_VOLTAGE = 11; // 0xb
    field public static final int FRONTEND_STATUS_TYPE_LNB_VOLTAGE = 11; // 0xb
    field public static final int FRONTEND_STATUS_TYPE_MER = 17; // 0x11
    field public static final int FRONTEND_STATUS_TYPE_MER = 17; // 0x11
    field public static final int FRONTEND_STATUS_TYPE_MODULATION = 9; // 0x9
    field public static final int FRONTEND_STATUS_TYPE_MODULATION = 9; // 0x9
    field public static final int FRONTEND_STATUS_TYPE_MODULATIONS_EXT = 22; // 0x16
    field public static final int FRONTEND_STATUS_TYPE_PER = 3; // 0x3
    field public static final int FRONTEND_STATUS_TYPE_PER = 3; // 0x3
    field public static final int FRONTEND_STATUS_TYPE_PLP_ID = 12; // 0xc
    field public static final int FRONTEND_STATUS_TYPE_PLP_ID = 12; // 0xc
    field public static final int FRONTEND_STATUS_TYPE_PRE_BER = 4; // 0x4
    field public static final int FRONTEND_STATUS_TYPE_PRE_BER = 4; // 0x4
@@ -6121,6 +6141,10 @@ package android.media.tv.tuner.frontend {
    field public static final int FRONTEND_STATUS_TYPE_SNR = 1; // 0x1
    field public static final int FRONTEND_STATUS_TYPE_SNR = 1; // 0x1
    field public static final int FRONTEND_STATUS_TYPE_SPECTRAL = 10; // 0xa
    field public static final int FRONTEND_STATUS_TYPE_SPECTRAL = 10; // 0xa
    field public static final int FRONTEND_STATUS_TYPE_SYMBOL_RATE = 7; // 0x7
    field public static final int FRONTEND_STATUS_TYPE_SYMBOL_RATE = 7; // 0x7
    field public static final int FRONTEND_STATUS_TYPE_T2_SYSTEM_ID = 29; // 0x1d
    field public static final int FRONTEND_STATUS_TYPE_TRANSMISSION_MODE = 27; // 0x1b
    field public static final int FRONTEND_STATUS_TYPE_TS_DATA_RATES = 32; // 0x20
    field public static final int FRONTEND_STATUS_TYPE_UEC = 28; // 0x1c
  }
  }
  public static class FrontendStatus.Atsc3PlpTuningInfo {
  public static class FrontendStatus.Atsc3PlpTuningInfo {
+2 −1
Original line number Original line Diff line number Diff line
@@ -775,7 +775,8 @@ public class Tuner implements AutoCloseable {
     *
     *
     * <p>This retrieve the statuses of the frontend for given status types.
     * <p>This retrieve the statuses of the frontend for given status types.
     *
     *
     * @param statusTypes an array of status types which the caller requests.
     * @param statusTypes an array of status types which the caller requests. Any types that are not
     *        in {@link FrontendInfo.getStatusCapabilities()} would be ignored.
     * @return statuses which response the caller's requests. {@code null} if the operation failed.
     * @return statuses which response the caller's requests. {@code null} if the operation failed.
     */
     */
    @Nullable
    @Nullable
+31 −2
Original line number Original line Diff line number Diff line
@@ -260,10 +260,12 @@ public class DvbsFrontendSettings extends FrontendSettings {
    private final int mVcmMode;
    private final int mVcmMode;
    // Dvbs scan type is only supported in Tuner 1.1 or higher.
    // Dvbs scan type is only supported in Tuner 1.1 or higher.
    private final int mScanType;
    private final int mScanType;
    // isDiseqcRxMessage is only supported in Tuner 1.1 or higher.
    private final boolean mIsDiseqcRxMessage;


    private DvbsFrontendSettings(int frequency, int modulation, DvbsCodeRate codeRate,
    private DvbsFrontendSettings(int frequency, int modulation, DvbsCodeRate codeRate,
            int symbolRate, int rolloff, int pilot, int inputStreamId, int standard, int vcm,
            int symbolRate, int rolloff, int pilot, int inputStreamId, int standard, int vcm,
            int scanType) {
            int scanType, boolean isDiseqcRxMessage) {
        super(frequency);
        super(frequency);
        mModulation = modulation;
        mModulation = modulation;
        mCodeRate = codeRate;
        mCodeRate = codeRate;
@@ -274,6 +276,7 @@ public class DvbsFrontendSettings extends FrontendSettings {
        mStandard = standard;
        mStandard = standard;
        mVcmMode = vcm;
        mVcmMode = vcm;
        mScanType = scanType;
        mScanType = scanType;
        mIsDiseqcRxMessage = isDiseqcRxMessage;
    }
    }


    /**
    /**
@@ -337,6 +340,15 @@ public class DvbsFrontendSettings extends FrontendSettings {
    public int getScanType() {
    public int getScanType() {
        return mScanType;
        return mScanType;
    }
    }
    /**
     * To receive Diseqc Message or not. Default value is false.
     *
     * The setter {@link Builder#setDiseqcRxMessage(boolean)} is only supported with Tuner HAL 1.1
     * or higher.
     */
    public boolean isDiseqcRxMessage() {
        return mIsDiseqcRxMessage;
    }


    /**
    /**
     * Creates a builder for {@link DvbsFrontendSettings}.
     * Creates a builder for {@link DvbsFrontendSettings}.
@@ -360,6 +372,7 @@ public class DvbsFrontendSettings extends FrontendSettings {
        private int mStandard = STANDARD_AUTO;
        private int mStandard = STANDARD_AUTO;
        private int mVcmMode = VCM_MODE_UNDEFINED;
        private int mVcmMode = VCM_MODE_UNDEFINED;
        private int mScanType = SCAN_TYPE_UNDEFINED;
        private int mScanType = SCAN_TYPE_UNDEFINED;
        private boolean mIsDiseqcRxMessage = false;


        private Builder() {
        private Builder() {
        }
        }
@@ -394,6 +407,21 @@ public class DvbsFrontendSettings extends FrontendSettings {
            return this;
            return this;
        }
        }


        /**
         * Set true to receive Diseqc Message.
         *
         * <p>This API is only supported by Tuner HAL 1.1 or higher. Unsupported version would cause
         * no-op. Use {@link TunerVersionChecker.getTunerVersion()} to check the version.
         */
        @NonNull
        public Builder setDiseqcRxMessage(boolean isDiseqcRxMessage) {
            if (TunerVersionChecker.checkHigherOrEqualVersionTo(
                        TunerVersionChecker.TUNER_VERSION_1_1, "setDiseqcRxMessage")) {
                mIsDiseqcRxMessage = isDiseqcRxMessage;
            }
            return this;
        }

        /**
        /**
         * Sets Modulation.
         * Sets Modulation.
         *
         *
@@ -481,7 +509,8 @@ public class DvbsFrontendSettings extends FrontendSettings {
        @NonNull
        @NonNull
        public DvbsFrontendSettings build() {
        public DvbsFrontendSettings build() {
            return new DvbsFrontendSettings(mFrequency, mModulation, mCodeRate, mSymbolRate,
            return new DvbsFrontendSettings(mFrequency, mModulation, mCodeRate, mSymbolRate,
                    mRolloff, mPilot, mInputStreamId, mStandard, mVcmMode, mScanType);
                    mRolloff, mPilot, mInputStreamId, mStandard, mVcmMode, mScanType,
                    mIsDiseqcRxMessage);
        }
        }
    }
    }


+376 −3

File changed.

Preview size limit exceeded, changes collapsed.

+24 −0
Original line number Original line Diff line number Diff line
@@ -5775,6 +5775,7 @@ package android.media.tv.tuner.frontend {
    method public int getSymbolRate();
    method public int getSymbolRate();
    method public int getType();
    method public int getType();
    method public int getVcmMode();
    method public int getVcmMode();
    method public boolean isDiseqcRxMessage();
    field public static final int MODULATION_AUTO = 1; // 0x1
    field public static final int MODULATION_AUTO = 1; // 0x1
    field public static final int MODULATION_MOD_128APSK = 2048; // 0x800
    field public static final int MODULATION_MOD_128APSK = 2048; // 0x800
    field public static final int MODULATION_MOD_16APSK = 256; // 0x100
    field public static final int MODULATION_MOD_16APSK = 256; // 0x100
@@ -5818,6 +5819,7 @@ package android.media.tv.tuner.frontend {
  public static class DvbsFrontendSettings.Builder {
  public static class DvbsFrontendSettings.Builder {
    method @NonNull public android.media.tv.tuner.frontend.DvbsFrontendSettings build();
    method @NonNull public android.media.tv.tuner.frontend.DvbsFrontendSettings build();
    method @NonNull public android.media.tv.tuner.frontend.DvbsFrontendSettings.Builder setCodeRate(@Nullable android.media.tv.tuner.frontend.DvbsCodeRate);
    method @NonNull public android.media.tv.tuner.frontend.DvbsFrontendSettings.Builder setCodeRate(@Nullable android.media.tv.tuner.frontend.DvbsCodeRate);
    method @NonNull public android.media.tv.tuner.frontend.DvbsFrontendSettings.Builder setDiseqcRxMessage(boolean);
    method @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.DvbsFrontendSettings.Builder setFrequency(int);
    method @IntRange(from=1) @NonNull public android.media.tv.tuner.frontend.DvbsFrontendSettings.Builder setFrequency(int);
    method @NonNull public android.media.tv.tuner.frontend.DvbsFrontendSettings.Builder setInputStreamId(int);
    method @NonNull public android.media.tv.tuner.frontend.DvbsFrontendSettings.Builder setInputStreamId(int);
    method @NonNull public android.media.tv.tuner.frontend.DvbsFrontendSettings.Builder setModulation(int);
    method @NonNull public android.media.tv.tuner.frontend.DvbsFrontendSettings.Builder setModulation(int);
@@ -6019,14 +6021,21 @@ package android.media.tv.tuner.frontend {
  public class FrontendStatus {
  public class FrontendStatus {
    method public int getAgc();
    method public int getAgc();
    method @NonNull public android.media.tv.tuner.frontend.FrontendStatus.Atsc3PlpTuningInfo[] getAtsc3PlpTuningInfo();
    method @NonNull public android.media.tv.tuner.frontend.FrontendStatus.Atsc3PlpTuningInfo[] getAtsc3PlpTuningInfo();
    method public int getBandwidth();
    method public int getBer();
    method public int getBer();
    method @NonNull public int[] getBers();
    method @NonNull public int[] getCodeRates();
    method public int getFreqOffset();
    method public int getFreqOffset();
    method public int getGuardInterval();
    method public int getHierarchy();
    method public int getHierarchy();
    method public long getInnerFec();
    method public long getInnerFec();
    method @NonNull public int[] getInterleaving();
    method @NonNull public int[] getIsdbtSegment();
    method @NonNull public boolean[] getLayerErrors();
    method @NonNull public boolean[] getLayerErrors();
    method public int getLnbVoltage();
    method public int getLnbVoltage();
    method public int getMer();
    method public int getMer();
    method public int getModulation();
    method public int getModulation();
    method @NonNull public int[] getModulationsExt();
    method public int getPer();
    method public int getPer();
    method public int getPerBer();
    method public int getPerBer();
    method public int getPlpId();
    method public int getPlpId();
@@ -6035,23 +6044,34 @@ package android.media.tv.tuner.frontend {
    method public int getSnr();
    method public int getSnr();
    method public int getSpectralInversion();
    method public int getSpectralInversion();
    method public int getSymbolRate();
    method public int getSymbolRate();
    method public int getSystemId();
    method public int getTransmissionMode();
    method @NonNull public int[] getTsDataRate();
    method public int getUec();
    method public boolean isDemodLocked();
    method public boolean isDemodLocked();
    method public boolean isEwbs();
    method public boolean isEwbs();
    method public boolean isLnaOn();
    method public boolean isLnaOn();
    method public boolean isRfLocked();
    method public boolean isRfLocked();
    field public static final int FRONTEND_STATUS_TYPE_AGC = 14; // 0xe
    field public static final int FRONTEND_STATUS_TYPE_AGC = 14; // 0xe
    field public static final int FRONTEND_STATUS_TYPE_ATSC3_PLP_INFO = 21; // 0x15
    field public static final int FRONTEND_STATUS_TYPE_ATSC3_PLP_INFO = 21; // 0x15
    field public static final int FRONTEND_STATUS_TYPE_BANDWIDTH = 25; // 0x19
    field public static final int FRONTEND_STATUS_TYPE_BER = 2; // 0x2
    field public static final int FRONTEND_STATUS_TYPE_BER = 2; // 0x2
    field public static final int FRONTEND_STATUS_TYPE_BERS = 23; // 0x17
    field public static final int FRONTEND_STATUS_TYPE_CODERATES = 24; // 0x18
    field public static final int FRONTEND_STATUS_TYPE_DEMOD_LOCK = 0; // 0x0
    field public static final int FRONTEND_STATUS_TYPE_DEMOD_LOCK = 0; // 0x0
    field public static final int FRONTEND_STATUS_TYPE_EWBS = 13; // 0xd
    field public static final int FRONTEND_STATUS_TYPE_EWBS = 13; // 0xd
    field public static final int FRONTEND_STATUS_TYPE_FEC = 8; // 0x8
    field public static final int FRONTEND_STATUS_TYPE_FEC = 8; // 0x8
    field public static final int FRONTEND_STATUS_TYPE_FREQ_OFFSET = 18; // 0x12
    field public static final int FRONTEND_STATUS_TYPE_FREQ_OFFSET = 18; // 0x12
    field public static final int FRONTEND_STATUS_TYPE_GUARD_INTERVAL = 26; // 0x1a
    field public static final int FRONTEND_STATUS_TYPE_HIERARCHY = 19; // 0x13
    field public static final int FRONTEND_STATUS_TYPE_HIERARCHY = 19; // 0x13
    field public static final int FRONTEND_STATUS_TYPE_INTERLEAVINGS = 30; // 0x1e
    field public static final int FRONTEND_STATUS_TYPE_ISDBT_SEGMENTS = 31; // 0x1f
    field public static final int FRONTEND_STATUS_TYPE_LAYER_ERROR = 16; // 0x10
    field public static final int FRONTEND_STATUS_TYPE_LAYER_ERROR = 16; // 0x10
    field public static final int FRONTEND_STATUS_TYPE_LNA = 15; // 0xf
    field public static final int FRONTEND_STATUS_TYPE_LNA = 15; // 0xf
    field public static final int FRONTEND_STATUS_TYPE_LNB_VOLTAGE = 11; // 0xb
    field public static final int FRONTEND_STATUS_TYPE_LNB_VOLTAGE = 11; // 0xb
    field public static final int FRONTEND_STATUS_TYPE_MER = 17; // 0x11
    field public static final int FRONTEND_STATUS_TYPE_MER = 17; // 0x11
    field public static final int FRONTEND_STATUS_TYPE_MODULATION = 9; // 0x9
    field public static final int FRONTEND_STATUS_TYPE_MODULATION = 9; // 0x9
    field public static final int FRONTEND_STATUS_TYPE_MODULATIONS_EXT = 22; // 0x16
    field public static final int FRONTEND_STATUS_TYPE_PER = 3; // 0x3
    field public static final int FRONTEND_STATUS_TYPE_PER = 3; // 0x3
    field public static final int FRONTEND_STATUS_TYPE_PLP_ID = 12; // 0xc
    field public static final int FRONTEND_STATUS_TYPE_PLP_ID = 12; // 0xc
    field public static final int FRONTEND_STATUS_TYPE_PRE_BER = 4; // 0x4
    field public static final int FRONTEND_STATUS_TYPE_PRE_BER = 4; // 0x4
@@ -6061,6 +6081,10 @@ package android.media.tv.tuner.frontend {
    field public static final int FRONTEND_STATUS_TYPE_SNR = 1; // 0x1
    field public static final int FRONTEND_STATUS_TYPE_SNR = 1; // 0x1
    field public static final int FRONTEND_STATUS_TYPE_SPECTRAL = 10; // 0xa
    field public static final int FRONTEND_STATUS_TYPE_SPECTRAL = 10; // 0xa
    field public static final int FRONTEND_STATUS_TYPE_SYMBOL_RATE = 7; // 0x7
    field public static final int FRONTEND_STATUS_TYPE_SYMBOL_RATE = 7; // 0x7
    field public static final int FRONTEND_STATUS_TYPE_T2_SYSTEM_ID = 29; // 0x1d
    field public static final int FRONTEND_STATUS_TYPE_TRANSMISSION_MODE = 27; // 0x1b
    field public static final int FRONTEND_STATUS_TYPE_TS_DATA_RATES = 32; // 0x20
    field public static final int FRONTEND_STATUS_TYPE_UEC = 28; // 0x1c
  }
  }
  public static class FrontendStatus.Atsc3PlpTuningInfo {
  public static class FrontendStatus.Atsc3PlpTuningInfo {