Broadcast Radio default implementation: analog forced switch.
Bug: b/36864090
Test: VTS
Change-Id: I2b7bcf2bb3ad7075f39280ab72b32bff5bf166a3
diff --git a/broadcastradio/1.1/default/Tuner.cpp b/broadcastradio/1.1/default/Tuner.cpp
index 133593e..2985d42 100644
--- a/broadcastradio/1.1/default/Tuner.cpp
+++ b/broadcastradio/1.1/default/Tuner.cpp
@@ -52,7 +52,8 @@
Tuner::Tuner(const sp<V1_0::ITunerCallback>& callback)
: mCallback(callback),
mCallback1_1(ITunerCallback::castFrom(callback).withDefault(nullptr)),
- mVirtualFm(make_fm_radio()) {
+ mVirtualFm(make_fm_radio()),
+ mIsAnalogForced(false) {
// TODO (b/36864090): inject this data in a more elegant way
setCompatibilityLevel(mCallback1_1 == nullptr ? 1 : 2);
}
@@ -320,15 +321,14 @@
Return<void> Tuner::isAnalogForced(isAnalogForced_cb _hidl_cb) {
ALOGV("%s", __func__);
- // TODO(b/36864090): implement
- _hidl_cb(Result::INVALID_STATE, false);
+ _hidl_cb(Result::OK, mIsAnalogForced);
return Void();
}
-Return<Result> Tuner::setAnalogForced(bool isForced __unused) {
+Return<Result> Tuner::setAnalogForced(bool isForced) {
ALOGV("%s", __func__);
- // TODO(b/36864090): implement
- return Result::INVALID_STATE;
+ mIsAnalogForced = isForced;
+ return Result::OK;
}
} // namespace implementation
diff --git a/broadcastradio/1.1/default/Tuner.h b/broadcastradio/1.1/default/Tuner.h
index 2222e5a..3efbd09 100644
--- a/broadcastradio/1.1/default/Tuner.h
+++ b/broadcastradio/1.1/default/Tuner.h
@@ -65,6 +65,7 @@
bool mIsTuneCompleted = false;
ProgramSelector mCurrentProgram = {};
ProgramInfo mCurrentProgramInfo = {};
+ std::atomic<bool> mIsAnalogForced;
void tuneInternalLocked(const ProgramSelector& sel);
bool isFmLocked(); // TODO(b/36864090): make it generic, not FM only