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/BroadcastRadio.cpp b/broadcastradio/1.1/default/BroadcastRadio.cpp
index 3aac127..1119ffd 100644
--- a/broadcastradio/1.1/default/BroadcastRadio.cpp
+++ b/broadcastradio/1.1/default/BroadcastRadio.cpp
@@ -121,7 +121,7 @@
Return<void> BroadcastRadio::openTuner(const BandConfig& config, bool audio __unused,
const sp<V1_0::ITunerCallback>& callback,
openTuner_cb _hidl_cb) {
- ALOGV("%s", __func__);
+ ALOGV("%s(%s)", __func__, toString(config.type).c_str());
lock_guard<mutex> lk(mMut);
auto oldTuner = mTuner.promote();
diff --git a/broadcastradio/1.1/default/BroadcastRadioFactory.cpp b/broadcastradio/1.1/default/BroadcastRadioFactory.cpp
index c2c1158..f57bc79 100644
--- a/broadcastradio/1.1/default/BroadcastRadioFactory.cpp
+++ b/broadcastradio/1.1/default/BroadcastRadioFactory.cpp
@@ -48,7 +48,7 @@
}
Return<void> BroadcastRadioFactory::connectModule(Class classId, connectModule_cb _hidl_cb) {
- ALOGV("%s", __func__);
+ ALOGV("%s(%s)", __func__, toString(classId).c_str());
auto moduleIt = mRadioModules.find(classId);
if (moduleIt == mRadioModules.end()) {
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();
}
diff --git a/broadcastradio/1.1/default/Tuner.h b/broadcastradio/1.1/default/Tuner.h
index 17ee99f..5c8a7e5 100644
--- a/broadcastradio/1.1/default/Tuner.h
+++ b/broadcastradio/1.1/default/Tuner.h
@@ -65,6 +65,7 @@
ProgramInfo mCurrentProgramInfo = {};
void tuneInternalLocked(const ProgramSelector& sel);
+ bool isFmLocked(); // TODO(b/36864090): make it generic, not FM only
};
} // namespace implementation