From 288de6d6fb5ea0b08b60825bced127a04209dfe2 Mon Sep 17 00:00:00 2001 From: Atsushi Iriboshi Date: Fri, 13 Oct 2023 09:47:36 +0900 Subject: [PATCH] [RESTRICT AUTOMERGE] Add ISDBT and ISDBS support in the VTS Currently, ISDB configuration isn't supported in config reader. Add it in this CL. Bug: 304857982 Test: atest VtsHalTvTunerV1_0TargetTest Change-Id: I21f53717ab157779d462ead34493169c2934fca7 --- .../config/TunerTestingConfigReaderV1_0.h | 53 +++++++++++++++++++ tv/tuner/config/api/current.txt | 36 +++++++++++++ .../tuner_testing_dynamic_configuration.xsd | 24 +++++++-- 3 files changed, 109 insertions(+), 4 deletions(-) diff --git a/tv/tuner/config/TunerTestingConfigReaderV1_0.h b/tv/tuner/config/TunerTestingConfigReaderV1_0.h index fb76de7af4..e23067cbae 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::FrontendDvbtPlpMode; 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 @@ struct TunerTestingConfigReader1_0 { } 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 @@ struct TunerTestingConfigReader1_0 { } 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(isdbt->getModulation()); + isdbtSettings.bandwidth = static_cast(isdbt->getBandwidth()); + isdbtSettings.mode = static_cast(isdbt->getMode()); + isdbtSettings.coderate = static_cast(isdbt->getCoderate()); + isdbtSettings.guardInterval = + static_cast(isdbt->getGuardInterval()); + isdbtSettings.serviceAreaId = static_cast(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(isdbs->getStreamId()); + isdbsSettings.streamIdType = + static_cast(isdbs->getStreamIdType()); + isdbsSettings.modulation = static_cast(isdbs->getModulation()); + isdbsSettings.coderate = static_cast(isdbs->getCoderate()); + isdbsSettings.symbolRate = static_cast(isdbs->getSymbolRate()); + isdbsSettings.rolloff = static_cast(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 d026bf9e40..3e53aef12f 100644 --- a/tv/tuner/config/api/current.txt +++ b/tv/tuner/config/api/current.txt @@ -311,6 +311,8 @@ package android.media.tuner.testing.configuration.V1_0 { method @Nullable public java.math.BigInteger getFrequency(); method @Nullable public String getId(); method @Nullable public boolean getIsSoftwareFrontend(); + method @Nullable public android.media.tuner.testing.configuration.V1_0.IsdbsFrontendSettings getIsdbsFrontendSettings_optional(); + method @Nullable public android.media.tuner.testing.configuration.V1_0.IsdbtFrontendSettings getIsdbtFrontendSettings_optional(); method @Nullable public android.media.tuner.testing.configuration.V1_0.FrontendTypeEnum getType(); method public void setConnectToCicamId(@Nullable java.math.BigInteger); method public void setDvbsFrontendSettings_optional(@Nullable android.media.tuner.testing.configuration.V1_0.DvbsFrontendSettings); @@ -319,6 +321,8 @@ package android.media.tuner.testing.configuration.V1_0 { method public void setFrequency(@Nullable java.math.BigInteger); method public void setId(@Nullable String); method public void setIsSoftwareFrontend(@Nullable boolean); + method public void setIsdbsFrontendSettings_optional(@Nullable android.media.tuner.testing.configuration.V1_0.IsdbsFrontendSettings); + method public void setIsdbtFrontendSettings_optional(@Nullable android.media.tuner.testing.configuration.V1_0.IsdbtFrontendSettings); method public void setType(@Nullable android.media.tuner.testing.configuration.V1_0.FrontendTypeEnum); } @@ -414,6 +418,38 @@ package android.media.tuner.testing.configuration.V1_0 { method public void setSrcPort(@Nullable long); } + public class IsdbsFrontendSettings { + ctor public IsdbsFrontendSettings(); + method @Nullable public java.math.BigInteger getCoderate(); + method @Nullable public java.math.BigInteger getModulation(); + method @Nullable public java.math.BigInteger getRolloff(); + method @Nullable public java.math.BigInteger getStreamId(); + method @Nullable public java.math.BigInteger getStreamIdType(); + method @Nullable public java.math.BigInteger getSymbolRate(); + method public void setCoderate(@Nullable java.math.BigInteger); + method public void setModulation(@Nullable java.math.BigInteger); + method public void setRolloff(@Nullable java.math.BigInteger); + method public void setStreamId(@Nullable java.math.BigInteger); + method public void setStreamIdType(@Nullable java.math.BigInteger); + method public void setSymbolRate(@Nullable java.math.BigInteger); + } + + public class IsdbtFrontendSettings { + ctor public IsdbtFrontendSettings(); + method @Nullable public java.math.BigInteger getBandwidth(); + method @Nullable public java.math.BigInteger getCoderate(); + method @Nullable public java.math.BigInteger getGuardInterval(); + method @Nullable public java.math.BigInteger getMode(); + method @Nullable public java.math.BigInteger getModulation(); + 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 setGuardInterval(@Nullable java.math.BigInteger); + method public void setMode(@Nullable java.math.BigInteger); + method public void setModulation(@Nullable java.math.BigInteger); + method public void setServiceAreaId(@Nullable java.math.BigInteger); + } + public class Lnb { ctor public Lnb(); method @Nullable public String getId(); diff --git a/tv/tuner/config/tuner_testing_dynamic_configuration.xsd b/tv/tuner/config/tuner_testing_dynamic_configuration.xsd index 6a04b7ebe1..a6157b159f 100644 --- a/tv/tuner/config/tuner_testing_dynamic_configuration.xsd +++ b/tv/tuner/config/tuner_testing_dynamic_configuration.xsd @@ -80,6 +80,22 @@ + + + + + + + + + + + + + + + + @@ -113,10 +129,10 @@ - + + + +