Implement ProgramSelector at HIDL layer.
No front-end implementation yet.
Bug: b/32621193
Test: VTS
Change-Id: I48f034e709254836cad35bbeb4285c3c42a9e1cd
diff --git a/broadcastradio/1.1/default/VirtualRadio.cpp b/broadcastradio/1.1/default/VirtualRadio.cpp
index 0eab7ae..acf37a4 100644
--- a/broadcastradio/1.1/default/VirtualRadio.cpp
+++ b/broadcastradio/1.1/default/VirtualRadio.cpp
@@ -15,25 +15,31 @@
*/
#include "VirtualRadio.h"
+#include <Utils.h>
+
namespace android {
namespace hardware {
namespace broadcastradio {
namespace V1_1 {
namespace implementation {
+using V1_0::Band;
+
using std::lock_guard;
using std::move;
using std::mutex;
using std::vector;
+using utils::make_selector;
+
vector<VirtualProgram> gInitialFmPrograms{
- {94900, "Wild 94.9", "Drake ft. Rihanna", "Too Good"},
- {96500, "KOIT", "Celine Dion", "All By Myself"},
- {97300, "Alice@97.3", "Drops of Jupiter", "Train"},
- {99700, "99.7 Now!", "The Chainsmokers", "Closer"},
- {101300, "101-3 KISS-FM", "Justin Timberlake", "Rock Your Body"},
- {103700, "iHeart80s @ 103.7", "Michael Jackson", "Billie Jean"},
- {106100, "106 KMEL", "Drake", "Marvins Room"},
+ {make_selector(Band::FM, 94900), "Wild 94.9", "Drake ft. Rihanna", "Too Good"},
+ {make_selector(Band::FM, 96500), "KOIT", "Celine Dion", "All By Myself"},
+ {make_selector(Band::FM, 97300), "Alice@97.3", "Drops of Jupiter", "Train"},
+ {make_selector(Band::FM, 99700), "99.7 Now!", "The Chainsmokers", "Closer"},
+ {make_selector(Band::FM, 101300), "101-3 KISS-FM", "Justin Timberlake", "Rock Your Body"},
+ {make_selector(Band::FM, 103700), "iHeart80s @ 103.7", "Michael Jackson", "Billie Jean"},
+ {make_selector(Band::FM, 106100), "106 KMEL", "Drake", "Marvins Room"},
};
VirtualRadio::VirtualRadio(VirtualRadio&& o) : mPrograms(move(o.mPrograms)) {}
@@ -45,10 +51,10 @@
return mPrograms;
}
-bool VirtualRadio::getProgram(uint32_t channel, VirtualProgram& programOut) {
+bool VirtualRadio::getProgram(const ProgramSelector& selector, VirtualProgram& programOut) {
lock_guard<mutex> lk(mMut);
for (auto&& program : mPrograms) {
- if (program.channel == channel) {
+ if (utils::tunesTo(selector, program.selector)) {
programOut = program;
return true;
}