Merge "Add ISDBT and ISDBS support in the VTS HIDL test" into android14-tests-dev
diff --git a/tv/tuner/config/TunerTestingConfigReaderV1_0.h b/tv/tuner/config/TunerTestingConfigReaderV1_0.h
index fb76de7..e23067c 100644
--- a/tv/tuner/config/TunerTestingConfigReaderV1_0.h
+++ b/tv/tuner/config/TunerTestingConfigReaderV1_0.h
@@ -56,6 +56,17 @@
using android::hardware::tv::tuner::V1_0::FrontendDvbtSettings;
using android::hardware::tv::tuner::V1_0::FrontendDvbtStandard;
using android::hardware::tv::tuner::V1_0::FrontendDvbtTransmissionMode;
+using android::hardware::tv::tuner::V1_0::FrontendIsdbsCoderate;
+using android::hardware::tv::tuner::V1_0::FrontendIsdbsModulation;
+using android::hardware::tv::tuner::V1_0::FrontendIsdbsRolloff;
+using android::hardware::tv::tuner::V1_0::FrontendIsdbsSettings;
+using android::hardware::tv::tuner::V1_0::FrontendIsdbsStreamIdType;
+using android::hardware::tv::tuner::V1_0::FrontendIsdbtBandwidth;
+using android::hardware::tv::tuner::V1_0::FrontendIsdbtCoderate;
+using android::hardware::tv::tuner::V1_0::FrontendIsdbtGuardInterval;
+using android::hardware::tv::tuner::V1_0::FrontendIsdbtMode;
+using android::hardware::tv::tuner::V1_0::FrontendIsdbtModulation;
+using android::hardware::tv::tuner::V1_0::FrontendIsdbtSettings;
using android::hardware::tv::tuner::V1_0::FrontendSettings;
using android::hardware::tv::tuner::V1_0::FrontendStatus;
using android::hardware::tv::tuner::V1_0::FrontendStatusType;
@@ -261,12 +272,14 @@
}
case FrontendTypeEnum::ISDBS:
type = FrontendType::ISDBS;
+ frontendMap[id].settings.isdbs(readIsdbsFrontendSettings(feConfig));
break;
case FrontendTypeEnum::ISDBS3:
type = FrontendType::ISDBS3;
break;
case FrontendTypeEnum::ISDBT:
type = FrontendType::ISDBT;
+ frontendMap[id].settings.isdbt(readIsdbtFrontendSettings(feConfig));
break;
case FrontendTypeEnum::DTMB:
// dtmb will be handled in readFrontendConfig1_1;
@@ -580,6 +593,46 @@
}
private:
+ static FrontendIsdbtSettings readIsdbtFrontendSettings(Frontend feConfig) {
+ ALOGW("[ConfigReader] fe type is isdbt");
+ FrontendIsdbtSettings isdbtSettings{
+ .frequency = (uint32_t)feConfig.getFrequency(),
+ };
+ if (!feConfig.hasIsdbtFrontendSettings_optional()) {
+ ALOGW("[ConfigReader] no more isdbt settings");
+ return isdbtSettings;
+ }
+ auto isdbt = feConfig.getFirstIsdbtFrontendSettings_optional();
+ isdbtSettings.modulation = static_cast<FrontendIsdbtModulation>(isdbt->getModulation());
+ isdbtSettings.bandwidth = static_cast<FrontendIsdbtBandwidth>(isdbt->getBandwidth());
+ isdbtSettings.mode = static_cast<FrontendIsdbtMode>(isdbt->getMode());
+ isdbtSettings.coderate = static_cast<FrontendIsdbtCoderate>(isdbt->getCoderate());
+ isdbtSettings.guardInterval =
+ static_cast<FrontendIsdbtGuardInterval>(isdbt->getGuardInterval());
+ isdbtSettings.serviceAreaId = static_cast<uint32_t>(isdbt->getServiceAreaId());
+ return isdbtSettings;
+ }
+
+ static FrontendIsdbsSettings readIsdbsFrontendSettings(Frontend feConfig) {
+ ALOGW("[ConfigReader] fe type is isdbs");
+ FrontendIsdbsSettings isdbsSettings{
+ .frequency = (uint32_t)feConfig.getFrequency(),
+ };
+ if (!feConfig.hasIsdbsFrontendSettings_optional()) {
+ ALOGW("[ConfigReader] no more isdbs settings");
+ return isdbsSettings;
+ }
+ auto isdbs = feConfig.getFirstIsdbsFrontendSettings_optional();
+ isdbsSettings.streamId = static_cast<uint16_t>(isdbs->getStreamId());
+ isdbsSettings.streamIdType =
+ static_cast<FrontendIsdbsStreamIdType>(isdbs->getStreamIdType());
+ isdbsSettings.modulation = static_cast<FrontendIsdbsModulation>(isdbs->getModulation());
+ isdbsSettings.coderate = static_cast<FrontendIsdbsCoderate>(isdbs->getCoderate());
+ isdbsSettings.symbolRate = static_cast<uint32_t>(isdbs->getSymbolRate());
+ isdbsSettings.rolloff = static_cast<FrontendIsdbsRolloff>(isdbs->getRolloff());
+ return isdbsSettings;
+ }
+
static FrontendDvbtSettings readDvbtFrontendSettings(Frontend feConfig) {
ALOGW("[ConfigReader] fe type is dvbt");
FrontendDvbtSettings dvbtSettings{
diff --git a/tv/tuner/config/api/current.txt b/tv/tuner/config/api/current.txt
index ff2df90..c382635 100644
--- a/tv/tuner/config/api/current.txt
+++ b/tv/tuner/config/api/current.txt
@@ -509,17 +509,21 @@
public class IsdbtFrontendSettings {
ctor public IsdbtFrontendSettings();
method @Nullable public java.math.BigInteger getBandwidth();
+ method @Nullable public java.math.BigInteger getCoderate();
method @Nullable public android.media.tuner.testing.configuration.V1_0.FrontendIsdbtLayerSettings getFrontendIsdbtLayerSettings();
method @Nullable public java.math.BigInteger getGuardInterval();
method @Nullable public java.math.BigInteger getInversion();
method @Nullable public java.math.BigInteger getMode();
+ method @Nullable public java.math.BigInteger getModulation();
method @Nullable public java.math.BigInteger getPartialReceptionFlag();
method @Nullable public java.math.BigInteger getServiceAreaId();
method public void setBandwidth(@Nullable java.math.BigInteger);
+ method public void setCoderate(@Nullable java.math.BigInteger);
method public void setFrontendIsdbtLayerSettings(@Nullable android.media.tuner.testing.configuration.V1_0.FrontendIsdbtLayerSettings);
method public void setGuardInterval(@Nullable java.math.BigInteger);
method public void setInversion(@Nullable java.math.BigInteger);
method public void setMode(@Nullable java.math.BigInteger);
+ method public void setModulation(@Nullable java.math.BigInteger);
method public void setPartialReceptionFlag(@Nullable java.math.BigInteger);
method public void setServiceAreaId(@Nullable java.math.BigInteger);
}
diff --git a/tv/tuner/config/tuner_testing_dynamic_configuration.xsd b/tv/tuner/config/tuner_testing_dynamic_configuration.xsd
index eafaca9..4f36a16 100644
--- a/tv/tuner/config/tuner_testing_dynamic_configuration.xsd
+++ b/tv/tuner/config/tuner_testing_dynamic_configuration.xsd
@@ -101,8 +101,10 @@
<xs:complexType name="isdbtFrontendSettings">
<xs:attribute name="serviceAreaId" type="xs:nonNegativeInteger" use="required"/>
<xs:attribute name="inversion" type="xs:nonNegativeInteger" use="required"/>
+ <xs:attribute name="modulation" type="xs:nonNegativeInteger" use="required"/>
<xs:attribute name="bandwidth" type="xs:nonNegativeInteger" use="required"/>
<xs:attribute name="mode" type="xs:nonNegativeInteger" use="required"/>
+ <xs:attribute name="coderate" type="xs:nonNegativeInteger" use="required"/>
<xs:attribute name="guardInterval" type="xs:nonNegativeInteger" use="required"/>
<xs:attribute name="partialReceptionFlag" type="xs:nonNegativeInteger" use="required"/>
<xs:element name="FrontendIsdbtLayerSettings" type="FrontendIsdbtLayerSettings"/>