Loading tv/tuner/1.1/default/Frontend.cpp +24 −0 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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; } Loading tv/tuner/1.1/types.hal +48 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 { /** Loading Loading @@ -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 { Loading Loading @@ -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; }; Loading tv/tuner/1.1/vts/functional/FrontendTests.cpp +19 −0 Original line number Diff line number Diff line Loading @@ -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; } Loading Loading @@ -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; } Loading tv/tuner/1.1/vts/functional/VtsHalTvTunerV1_1TestConfigurations.h +5 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading
tv/tuner/1.1/default/Frontend.cpp +24 −0 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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; } Loading
tv/tuner/1.1/types.hal +48 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 { /** Loading Loading @@ -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 { Loading Loading @@ -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; }; Loading
tv/tuner/1.1/vts/functional/FrontendTests.cpp +19 −0 Original line number Diff line number Diff line Loading @@ -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; } Loading Loading @@ -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; } Loading
tv/tuner/1.1/vts/functional/VtsHalTvTunerV1_1TestConfigurations.h +5 −1 Original line number Diff line number Diff line Loading @@ -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; Loading