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

Commit 803f77cd authored by Amy Zhang's avatar Amy Zhang Committed by Android (Google) Code Review
Browse files

Merge "Add new Frontend Status Types and a new scan msg in Tuner HAL 1.1"

parents c66e023c 7e669ce5
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -302,6 +302,12 @@ Return<void> Frontend::getStatusExt1_1(const hidl_vec<V1_1::FrontendStatusTypeEx
                status.codeRates(codeRates);
                break;
            }
            case V1_1::FrontendStatusTypeExt1_1::BANDWIDTH: {
                V1_1::FrontendBandwidth bandwidth;
                bandwidth.dvbt(FrontendDvbtBandwidth::BANDWIDTH_8MHZ);
                status.bandwidth(bandwidth);
                break;
            }
            case V1_1::FrontendStatusTypeExt1_1::GUARD_INTERVAL: {
                V1_1::FrontendGuardInterval interval;
                interval.dvbt(FrontendDvbtGuardInterval::INTERVAL_1_32);  // value = 1 << 1
@@ -339,6 +345,24 @@ Return<void> Frontend::getStatusExt1_1(const hidl_vec<V1_1::FrontendStatusTypeEx
                status.tsDataRate(dataRates);
                break;
            }
            case V1_1::FrontendStatusTypeExt1_1::ROLL_OFF: {
                V1_1::FrontendRollOff rollOff;
                rollOff.dvbs(FrontendDvbsRolloff::ROLLOFF_0_35);
                status.rollOff(rollOff);
                break;
            }
            case V1_1::FrontendStatusTypeExt1_1::IS_MISO: {
                status.isMiso(true);
                break;
            }
            case V1_1::FrontendStatusTypeExt1_1::IS_LINEAR: {
                status.isLinear(true);
                break;
            }
            case V1_1::FrontendStatusTypeExt1_1::IS_SHORT_FRAMES: {
                status.isShortFrames(true);
                break;
            }
            default: {
                continue;
            }
+48 −1
Original line number Diff line number Diff line
@@ -20,14 +20,18 @@ import @1.0::Constant;
import @1.0::DemuxFilterMmtpRecordEvent;
import @1.0::DemuxFilterTsRecordEvent;
import @1.0::DemuxScIndex;
import @1.0::FrontendIsdbs3Rolloff;
import @1.0::FrontendAtsc3Bandwidth;
import @1.0::FrontendAtsc3Modulation;
import @1.0::FrontendAtsc3TimeInterleaveMode;
import @1.0::FrontendIsdbsRolloff;
import @1.0::FrontendAtscModulation;
import @1.0::FrontendDvbcAnnex;
import @1.0::FrontendDvbcModulation;
import @1.0::FrontendDvbtBandwidth;
import @1.0::FrontendDvbcSpectralInversion;
import @1.0::FrontendDvbsModulation;
import @1.0::FrontendDvbsRolloff;
import @1.0::FrontendDvbtBandwidth;
import @1.0::FrontendDvbtConstellation;
import @1.0::FrontendDvbtTransmissionMode;
import @1.0::FrontendDvbtGuardInterval;
@@ -477,6 +481,14 @@ safe_union FrontendTransmissionMode {
    FrontendDtmbTransmissionMode dtmb;
};

safe_union FrontendRollOff {
    @1.0::FrontendDvbsRolloff dvbs;

    @1.0::FrontendIsdbsRolloff isdbs;

    @1.0::FrontendIsdbs3Rolloff isdbs3;
};

@export
enum FrontendStatusTypeExt1_1 : uint32_t {
    /**
@@ -524,6 +536,22 @@ enum FrontendStatusTypeExt1_1 : uint32_t {
     * Transport Stream Data Rate in BPS of the current channel.
     */
    TS_DATA_RATES,
    /**
     * Roll Off Type status of the frontend.
     */
    ROLL_OFF,
    /**
     * If the frontend currently supports MISO or not.
     */
    IS_MISO,
    /**
     * If the frontend code rate is linear or not.
     */
    IS_LINEAR,
    /**
     * If short frames is enabled or not.
     */
    IS_SHORT_FRAMES,
};

safe_union FrontendStatusExt1_1 {
@@ -582,16 +610,35 @@ safe_union FrontendStatusExt1_1 {
     * Transport Stream Data Rate in BPS of the current channel.
     */
    vec<uint32_t> tsDataRate;
    /**
     * Roll Off Type status of the frontend.
     */
    FrontendRollOff rollOff;
    /**
     * If the frontend currently supports MISO or not.
     */
    bool isMiso;
    /**
     * If the frontend code rate is linear or not.
     */
    bool isLinear;
    /**
     * If short frames is enabled or not.
     */
    bool isShortFrames;
};

enum FrontendScanMessageTypeExt1_1 : uint32_t {
    MODULATION = @1.0::FrontendScanMessageType:ATSC3_PLP_INFO + 1,
    DVBC_ANNEX,
    HIGH_PRIORITY,
};

safe_union FrontendScanMessageExt1_1 {
    FrontendModulation modulation;

    @1.0::FrontendDvbcAnnex annex;

    bool isHighPriority;
};

+19 −0
Original line number Diff line number Diff line
@@ -58,6 +58,9 @@ Return<void> FrontendCallback::onScanMessageExt1_1(FrontendScanMessageTypeExt1_1
        case FrontendScanMessageExt1_1::hidl_discriminator::isHighPriority:
            ALOGD("[vts] frontend ext1_1 scan message high priority: %d", message.isHighPriority());
            break;
        case FrontendScanMessageExt1_1::hidl_discriminator::annex:
            ALOGD("[vts] frontend ext1_1 scan message dvbc annex: %hhu", message.annex());
            break;
        default:
            break;
    }
@@ -374,6 +377,22 @@ void FrontendTests::verifyFrontendStatusExt1_1(vector<FrontendStatusTypeExt1_1>
                                       expectStatuses[i].tsDataRate().begin()));
                break;
            }
            case FrontendStatusTypeExt1_1::ROLL_OFF: {
                // TODO: verify roll off
                break;
            }
            case FrontendStatusTypeExt1_1::IS_MISO: {
                ASSERT_TRUE(realStatuses[i].isMiso() == expectStatuses[i].isMiso());
                break;
            }
            case FrontendStatusTypeExt1_1::IS_LINEAR: {
                ASSERT_TRUE(realStatuses[i].isLinear() == expectStatuses[i].isLinear());
                break;
            }
            case FrontendStatusTypeExt1_1::IS_SHORT_FRAMES: {
                ASSERT_TRUE(realStatuses[i].isShortFrames() == expectStatuses[i].isShortFrames());
                break;
            }
            default: {
                continue;
            }
+5 −1
Original line number Diff line number Diff line
@@ -138,10 +138,14 @@ inline void initFrontendConfig() {
    frontendArray[DVBT].type = FrontendType::DVBT, frontendArray[DVBT].settings.dvbt(dvbtSettings);
    vector<FrontendStatusTypeExt1_1> types;
    types.push_back(FrontendStatusTypeExt1_1::UEC);
    types.push_back(FrontendStatusTypeExt1_1::IS_MISO);
    vector<FrontendStatusExt1_1> statuses;
    FrontendStatusExt1_1 status;
    status.uec(4);
    vector<FrontendStatusExt1_1> statuses;
    statuses.push_back(status);
    status.isMiso(true);
    statuses.push_back(status);

    frontendArray[DVBT].tuneStatusTypes = types;
    frontendArray[DVBT].expectTuneStatuses = statuses;
    frontendArray[DVBT].isSoftwareFe = true;