Refactor Broadcast Radio 1.1 VTS test.
Also apply some minor fixes and log tweaks to the default implementation.
Bug: b/36864490
Test: VTS
Change-Id: I16558d71c6cdee71854ecae9106b8a1c78032439
diff --git a/broadcastradio/1.1/default/Tuner.cpp b/broadcastradio/1.1/default/Tuner.cpp
index bb07f36..a36ec3f 100644
--- a/broadcastradio/1.1/default/Tuner.cpp
+++ b/broadcastradio/1.1/default/Tuner.cpp
@@ -105,9 +105,14 @@
return info11;
}
+bool Tuner::isFmLocked() {
+ if (!utils::isAmFm(utils::getType(mCurrentProgram))) return false;
+ return mAmfmConfig.type == Band::FM_HD || mAmfmConfig.type == Band::FM;
+}
+
void Tuner::tuneInternalLocked(const ProgramSelector& sel) {
VirtualRadio* virtualRadio = nullptr;
- if (mAmfmConfig.type == Band::FM_HD || mAmfmConfig.type == Band::FM) {
+ if (isFmLocked()) {
virtualRadio = &mVirtualFm;
}
@@ -132,11 +137,11 @@
lock_guard<mutex> lk(mMut);
vector<VirtualProgram> list;
- if (mAmfmConfig.type == Band::FM_HD || mAmfmConfig.type == Band::FM) {
+ if (isFmLocked()) {
list = mVirtualFm.getProgramList();
}
- if (list.size() == 0) {
+ if (list.empty()) {
mIsTuneCompleted = false;
auto task = [this, direction]() {
ALOGI("Performing failed scan %s", toString(direction).c_str());
@@ -288,14 +293,17 @@
Return<void> Tuner::getProgramList(const hidl_string& filter __unused, getProgramList_cb _hidl_cb) {
ALOGV("%s", __func__);
+ lock_guard<mutex> lk(mMut);
auto& virtualRadio = mVirtualFm;
- if (mAmfmConfig.type != Band::FM_HD && mAmfmConfig.type != Band::FM) {
+ if (!isFmLocked()) {
+ ALOGI("bands other than FM are not supported yet");
_hidl_cb(ProgramListResult::OK, {});
return Void();
}
auto list = virtualRadio.getProgramList();
+ ALOGD("returning a list of %zu programs", list.size());
_hidl_cb(ProgramListResult::OK, vector<ProgramInfo>(list.begin(), list.end()));
return Void();
}