Enhance and refactoring the Tuner VTS on searching frontend by type test
Test: atest VtsHalTvTunerV1_0TargetTest on cf and vendor device
Bug: 150953857
Change-Id: I9c90e34c6b336d20f5456e7f676ced699f166d54
diff --git a/tv/tuner/1.0/default/Frontend.cpp b/tv/tuner/1.0/default/Frontend.cpp
index bb0d8dc..2cff9be 100644
--- a/tv/tuner/1.0/default/Frontend.cpp
+++ b/tv/tuner/1.0/default/Frontend.cpp
@@ -41,6 +41,7 @@
ALOGV("%s", __FUNCTION__);
// Reset callback
mCallback = nullptr;
+ mIsLocked = false;
return Result::SUCCESS;
}
@@ -64,6 +65,7 @@
}
mCallback->onEvent(FrontendEventType::LOCKED);
+ mIsLocked = false;
return Result::SUCCESS;
}
@@ -71,16 +73,35 @@
ALOGV("%s", __FUNCTION__);
mTunerService->frontendStopTune(mId);
+ mIsLocked = false;
return Result::SUCCESS;
}
-Return<Result> Frontend::scan(const FrontendSettings& /* settings */, FrontendScanType /* type */) {
+Return<Result> Frontend::scan(const FrontendSettings& settings, FrontendScanType type) {
ALOGV("%s", __FUNCTION__);
+ if (mType != FrontendType::DVBT) {
+ return Result::UNAVAILABLE;
+ }
+
FrontendScanMessage msg;
+
+ if (mIsLocked) {
+ msg.isEnd(true);
+ mCallback->onScanMessage(FrontendScanMessageType::END, msg);
+ return Result::SUCCESS;
+ }
+
+ uint32_t frequency = settings.dvbt().frequency;
+ if (type == FrontendScanType::SCAN_BLIND) {
+ frequency += 100;
+ }
+ msg.frequencies({frequency});
+ mCallback->onScanMessage(FrontendScanMessageType::FREQUENCY, msg);
msg.isLocked(true);
mCallback->onScanMessage(FrontendScanMessageType::LOCKED, msg);
+ mIsLocked = true;
return Result::SUCCESS;
}
@@ -88,6 +109,7 @@
Return<Result> Frontend::stopScan() {
ALOGV("%s", __FUNCTION__);
+ mIsLocked = false;
return Result::SUCCESS;
}