Query Frontend Status only with reported Frontend Status Capabilites
Test: atest android.media.tv.tuner.cts
Bug: 176109219
Change-Id: I82a96f875c9f30aa0c0caf2accd524ee33d4efae
diff --git a/tests/tests/tv/src/android/media/tv/tuner/cts/TunerTest.java b/tests/tests/tv/src/android/media/tv/tuner/cts/TunerTest.java
index d37496d..ebcc9d4 100644
--- a/tests/tests/tv/src/android/media/tv/tuner/cts/TunerTest.java
+++ b/tests/tests/tv/src/android/media/tv/tuner/cts/TunerTest.java
@@ -197,94 +197,134 @@
FrontendInfo info = mTuner.getFrontendInfoById(ids.get(0));
int res = mTuner.tune(createFrontendSettings(info));
- FrontendStatus status = mTuner.getFrontendStatus(
- new int[] {
- FrontendStatus.FRONTEND_STATUS_TYPE_DEMOD_LOCK,
- FrontendStatus.FRONTEND_STATUS_TYPE_SNR,
- FrontendStatus.FRONTEND_STATUS_TYPE_BER,
- FrontendStatus.FRONTEND_STATUS_TYPE_PER,
- FrontendStatus.FRONTEND_STATUS_TYPE_PRE_BER,
- FrontendStatus.FRONTEND_STATUS_TYPE_SIGNAL_QUALITY,
- FrontendStatus.FRONTEND_STATUS_TYPE_SIGNAL_STRENGTH,
- FrontendStatus.FRONTEND_STATUS_TYPE_SYMBOL_RATE,
- FrontendStatus.FRONTEND_STATUS_TYPE_FEC,
- FrontendStatus.FRONTEND_STATUS_TYPE_MODULATION,
- FrontendStatus.FRONTEND_STATUS_TYPE_SPECTRAL,
- FrontendStatus.FRONTEND_STATUS_TYPE_LNB_VOLTAGE,
- FrontendStatus.FRONTEND_STATUS_TYPE_PLP_ID,
- FrontendStatus.FRONTEND_STATUS_TYPE_EWBS,
- FrontendStatus.FRONTEND_STATUS_TYPE_AGC,
- FrontendStatus.FRONTEND_STATUS_TYPE_LNA,
- FrontendStatus.FRONTEND_STATUS_TYPE_LAYER_ERROR,
- FrontendStatus.FRONTEND_STATUS_TYPE_MER,
- FrontendStatus.FRONTEND_STATUS_TYPE_FREQ_OFFSET,
- FrontendStatus.FRONTEND_STATUS_TYPE_HIERARCHY,
- FrontendStatus.FRONTEND_STATUS_TYPE_RF_LOCK,
- FrontendStatus.FRONTEND_STATUS_TYPE_ATSC3_PLP_INFO,
- // Extended status types in Android 12
- FrontendStatus.FRONTEND_STATUS_TYPE_BERS,
- FrontendStatus.FRONTEND_STATUS_TYPE_CODERATES,
- FrontendStatus.FRONTEND_STATUS_TYPE_BANDWIDTH,
- FrontendStatus.FRONTEND_STATUS_TYPE_GUARD_INTERVAL,
- FrontendStatus.FRONTEND_STATUS_TYPE_TRANSMISSION_MODE,
- FrontendStatus.FRONTEND_STATUS_TYPE_UEC,
- FrontendStatus.FRONTEND_STATUS_TYPE_T2_SYSTEM_ID,
- FrontendStatus.FRONTEND_STATUS_TYPE_INTERLEAVINGS,
- FrontendStatus.FRONTEND_STATUS_TYPE_ISDBT_SEGMENTS,
- FrontendStatus.FRONTEND_STATUS_TYPE_TS_DATA_RATES,
- FrontendStatus.FRONTEND_STATUS_TYPE_MODULATIONS_EXT,
- FrontendStatus.FRONTEND_STATUS_TYPE_ROLL_OFF,
- FrontendStatus.FRONTEND_STATUS_TYPE_IS_MISO,
- FrontendStatus.FRONTEND_STATUS_TYPE_IS_LINEAR,
- FrontendStatus.FRONTEND_STATUS_TYPE_IS_SHORT_FRAMES
- });
+
+ int[] statusCapabilities = info.getStatusCapabilities();
+ assertNotNull(statusCapabilities);
+ FrontendStatus status = mTuner.getFrontendStatus(statusCapabilities);
assertNotNull(status);
- status.isDemodLocked();
- status.getSnr();
- status.getBer();
- status.getPer();
- status.getPerBer();
- status.getSignalQuality();
- status.getSignalStrength();
- status.getSymbolRate();
- status.getInnerFec();
- status.getModulation();
- status.getSpectralInversion();
- status.getLnbVoltage();
- status.getPlpId();
- status.isEwbs();
- status.getAgc();
- status.isLnaOn();
- status.getLayerErrors();
- status.getMer();
- status.getFreqOffset();
- status.getHierarchy();
- status.isRfLocked();
- Atsc3PlpTuningInfo[] tuningInfos = status.getAtsc3PlpTuningInfo();
- if (tuningInfos != null) {
- for (Atsc3PlpTuningInfo tuningInfo : tuningInfos) {
- tuningInfo.getPlpId();
- tuningInfo.isLocked();
- tuningInfo.getUec();
+ for (int i = 0; i < statusCapabilities.length; i++) {
+ switch (statusCapabilities[i]) {
+ case FrontendStatus.FRONTEND_STATUS_TYPE_DEMOD_LOCK:
+ status.isDemodLocked();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_SNR:
+ status.getSnr();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_BER:
+ status.getBer();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_PER:
+ status.getPer();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_PRE_BER:
+ status.getPerBer();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_SIGNAL_QUALITY:
+ status.getSignalQuality();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_SIGNAL_STRENGTH:
+ status.getSignalStrength();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_SYMBOL_RATE:
+ status.getSymbolRate();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_FEC:
+ status.getInnerFec();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_MODULATION:
+ status.getModulation();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_SPECTRAL:
+ status.getSpectralInversion();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_LNB_VOLTAGE:
+ status.getLnbVoltage();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_PLP_ID:
+ status.getPlpId();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_EWBS:
+ status.isEwbs();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_AGC:
+ status.getAgc();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_LNA:
+ status.isLnaOn();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_LAYER_ERROR:
+ status.getLayerErrors();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_MER:
+ status.getMer();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_FREQ_OFFSET:
+ status.getFreqOffset();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_HIERARCHY:
+ status.getHierarchy();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_RF_LOCK:
+ status.isRfLocked();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_ATSC3_PLP_INFO:
+ Atsc3PlpTuningInfo[] tuningInfos = status.getAtsc3PlpTuningInfo();
+ if (tuningInfos != null) {
+ for (Atsc3PlpTuningInfo tuningInfo : tuningInfos) {
+ tuningInfo.getPlpId();
+ tuningInfo.isLocked();
+ tuningInfo.getUec();
+ }
+ }
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_BERS:
+ status.getBers();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_CODERATES:
+ status.getCodeRates();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_BANDWIDTH:
+ status.getBandwidth();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_GUARD_INTERVAL:
+ status.getGuardInterval();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_TRANSMISSION_MODE:
+ status.getTransmissionMode();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_UEC:
+ status.getUec();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_T2_SYSTEM_ID:
+ status.getSystemId();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_INTERLEAVINGS:
+ status.getInterleaving();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_ISDBT_SEGMENTS:
+ status.getIsdbtSegment();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_TS_DATA_RATES:
+ status.getTsDataRate();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_MODULATIONS_EXT:
+ status.getExtendedModulations();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_ROLL_OFF:
+ status.getRollOff();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_IS_MISO:
+ status.isMisoEnabled();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_IS_LINEAR:
+ status.isLinear();
+ break;
+ case FrontendStatus.FRONTEND_STATUS_TYPE_IS_SHORT_FRAMES:
+ status.isShortFramesEnabled();
+ break;
}
}
- // Status supported from Android 12
- status.getBandwidth();
- status.getBers();
- status.getCodeRates();
- status.getGuardInterval();
- status.getInterleaving();
- status.getIsdbtSegment();
- status.getExtendedModulations();
- status.getSystemId();
- status.getTransmissionMode();
- status.getTsDataRate();
- status.getUec();
- status.getRollOff();
- status.isMisoEnabled();
- status.isLinear();
- status.isShortFramesEnabled();
}
@Test