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

Commit 7fc81c5c authored by Frankie Lizcano's avatar Frankie Lizcano Committed by Android (Google) Code Review
Browse files

Merge "vts: Added support for ISDBT Frontend types"

parents c2d5b00d aee8c9e2
Loading
Loading
Loading
Loading
+39 −0
Original line number Diff line number Diff line
@@ -294,6 +294,8 @@ struct TunerTestingConfigAidlReader1_0 {
                        break;
                    case FrontendTypeEnum::ISDBT:
                        type = FrontendType::ISDBT;
                        frontendMap[id].settings.set<FrontendSettings::Tag::isdbt>(
                                readIsdbtFrontendSettings(feConfig));
                        break;
                    case FrontendTypeEnum::DTMB:
                        type = FrontendType::DTMB;
@@ -735,6 +737,43 @@ struct TunerTestingConfigAidlReader1_0 {
        return isdbsSettings;
    }

    static FrontendIsdbtSettings readIsdbtFrontendSettings(Frontend& feConfig) {
        ALOGW("[ConfigReader] fe type is isdbt");
        FrontendIsdbtSettings isdbtSettings{
                .frequency = (int64_t)feConfig.getFrequency(),
        };
        if (feConfig.hasEndFrequency()) {
            isdbtSettings.endFrequency = (int64_t)feConfig.getEndFrequency();
        }
        if (!feConfig.hasIsdbtFrontendSettings_optional()) {
            ALOGW("[ConfigReader] no more isdbt settings");
            return isdbtSettings;
        }
        auto isdbt = feConfig.getFirstIsdbtFrontendSettings_optional();
        isdbtSettings.inversion = static_cast<FrontendSpectralInversion>(isdbt->getInversion());
        isdbtSettings.bandwidth = static_cast<FrontendIsdbtBandwidth>(isdbt->getBandwidth());
        isdbtSettings.mode = static_cast<FrontendIsdbtMode>(isdbt->getMode());
        isdbtSettings.guardInterval =
                static_cast<FrontendIsdbtGuardInterval>(isdbt->getGuardInterval());
        isdbtSettings.serviceAreaId = (int32_t)isdbt->getServiceAreaId();
        isdbtSettings.partialReceptionFlag =
                static_cast<FrontendIsdbtPartialReceptionFlag>(isdbt->getPartialReceptionFlag());
        if (!isdbt->hasFrontendIsdbtLayerSettings()) {
            ALOGW("[ConfigReader] no isdbt layer settings");
            return isdbtSettings;
        }
        auto layerSettings = isdbt->getFirstFrontendIsdbtLayerSettings();
        ::aidl::android::hardware::tv::tuner::FrontendIsdbtLayerSettings mLayerSettings;
        mLayerSettings.modulation =
                static_cast<FrontendIsdbtModulation>(layerSettings->getModulation());
        mLayerSettings.coderate = static_cast<FrontendIsdbtCoderate>(layerSettings->getCoderate());
        mLayerSettings.timeInterleave =
                static_cast<FrontendIsdbtTimeInterleaveMode>(layerSettings->getTimeInterleave());
        mLayerSettings.numOfSegment = (int32_t)layerSettings->getNumOfSegment();
        isdbtSettings.layerSettings.push_back(mLayerSettings);
        return isdbtSettings;
    }

    static bool readFilterTypeAndSettings(Filter filterConfig, DemuxFilterType& type,
                                          DemuxFilterSettings& settings) {
        auto mainType = filterConfig.getMainType();
+32 −0
Original line number Diff line number Diff line
@@ -327,6 +327,7 @@ package android.media.tuner.testing.configuration.V1_0 {
    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 java.math.BigInteger getRemoveOutputPid();
    method @Nullable public android.media.tuner.testing.configuration.V1_0.FrontendTypeEnum getType();
    method public void setAtscFrontendSettings_optional(@Nullable android.media.tuner.testing.configuration.V1_0.AtscFrontendSettings);
@@ -338,10 +339,23 @@ package android.media.tuner.testing.configuration.V1_0 {
    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 setRemoveOutputPid(@Nullable java.math.BigInteger);
    method public void setType(@Nullable android.media.tuner.testing.configuration.V1_0.FrontendTypeEnum);
  }

  public class FrontendIsdbtLayerSettings {
    ctor public FrontendIsdbtLayerSettings();
    method @Nullable public java.math.BigInteger getCoderate();
    method @Nullable public java.math.BigInteger getModulation();
    method @Nullable public java.math.BigInteger getNumOfSegment();
    method @Nullable public java.math.BigInteger getTimeInterleave();
    method public void setCoderate(@Nullable java.math.BigInteger);
    method public void setModulation(@Nullable java.math.BigInteger);
    method public void setNumOfSegment(@Nullable java.math.BigInteger);
    method public void setTimeInterleave(@Nullable java.math.BigInteger);
  }

  public enum FrontendTypeEnum {
    method @NonNull public String getRawName();
    enum_constant public static final android.media.tuner.testing.configuration.V1_0.FrontendTypeEnum ANALOG;
@@ -450,6 +464,24 @@ package android.media.tuner.testing.configuration.V1_0 {
    method public void setSymbolRate(@Nullable java.math.BigInteger);
  }

  public class IsdbtFrontendSettings {
    ctor public IsdbtFrontendSettings();
    method @Nullable public java.math.BigInteger getBandwidth();
    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 getPartialReceptionFlag();
    method @Nullable public java.math.BigInteger getServiceAreaId();
    method public void setBandwidth(@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 setPartialReceptionFlag(@Nullable java.math.BigInteger);
    method public void setServiceAreaId(@Nullable java.math.BigInteger);
  }

  public class Lnb {
    ctor public Lnb();
    method @Nullable public String getId();
+18 −3
Original line number Diff line number Diff line
@@ -92,6 +92,21 @@
        <xs:attribute name="coderate" type="xs:nonNegativeInteger" use="required"/>
        <xs:attribute name="rolloff" type="xs:nonNegativeInteger" use="required"/>
    </xs:complexType>
    <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="bandwidth" type="xs:nonNegativeInteger" use="required"/>
        <xs:attribute name="mode" 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"/>
    </xs:complexType>
    <xs:complexType name="FrontendIsdbtLayerSettings">
        <xs:attribute name="modulation" type="xs:nonNegativeInteger" use="required"/>
        <xs:attribute name="coderate" type="xs:nonNegativeInteger" use="required"/>
        <xs:attribute name="timeInterleave" type="xs:nonNegativeInteger" use="required"/>
        <xs:attribute name="numOfSegment" type="xs:nonNegativeInteger" use="required"/>
    </xs:complexType>

    <xs:complexType name="frontend">
        <xs:annotation>
@@ -128,9 +143,9 @@
            <xs:element name="dvbsFrontendSettings" type="dvbsFrontendSettings"/>
            <xs:element name="dvbtFrontendSettings" type="dvbtFrontendSettings"/>
            <xs:element name="isdbsFrontendSettings" type="isdbsFrontendSettings"/>
            <!--xs:element name="isdbs3" type="isdbs3Settings"/>
            <xs:element name="isdbt" type="isdbtSettings"/>
            <xs:element name="dtmb" type="dtmbSettings"/-->
            <!--xs:element name="isdbs3" type="isdbs3Settings"/-->
            <xs:element name="isdbtFrontendSettings" type="isdbtFrontendSettings"/>
            <!--xs:element name="dtmb" type="dtmbSettings"/-->
        </xs:choice>
        <xs:attribute name="id" type="frontendId" use="required"/>
        <xs:attribute name="type" type="frontendTypeEnum" use="required"/>