Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit caee9505 authored by Allie Abad's avatar Allie Abad Committed by Android (Google) Code Review
Browse files

Merge "Initial change to add mock DAB stations (hardcoded for now)."

parents fc020e8b f62374d0
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -49,6 +49,7 @@ static Properties initProperties(const VirtualRadio& virtualRadio) {
        static_cast<uint32_t>(IdentifierType::AMFM_FREQUENCY),
        static_cast<uint32_t>(IdentifierType::AMFM_FREQUENCY),
        static_cast<uint32_t>(IdentifierType::RDS_PI),
        static_cast<uint32_t>(IdentifierType::RDS_PI),
        static_cast<uint32_t>(IdentifierType::HD_STATION_ID_EXT),
        static_cast<uint32_t>(IdentifierType::HD_STATION_ID_EXT),
        static_cast<uint32_t>(IdentifierType::DAB_SID_EXT),
    });
    });
    prop.vendorInfo = hidl_vec<VendorKeyValue>({
    prop.vendorInfo = hidl_vec<VendorKeyValue>({
        {"com.google.dummy", "dummy"},
        {"com.google.dummy", "dummy"},
+11 −0
Original line number Original line Diff line number Diff line
@@ -28,6 +28,7 @@ using std::move;
using std::mutex;
using std::mutex;
using std::vector;
using std::vector;
using utils::make_selector_amfm;
using utils::make_selector_amfm;
using utils::make_selector_dab;


VirtualRadio gAmFmRadio(
VirtualRadio gAmFmRadio(
    "AM/FM radio mock",
    "AM/FM radio mock",
@@ -41,6 +42,16 @@ VirtualRadio gAmFmRadio(
        {make_selector_amfm(106100), "106 KMEL", "Drake", "Marvins Room"},
        {make_selector_amfm(106100), "106 KMEL", "Drake", "Marvins Room"},
    });
    });


// clang-format off
VirtualRadio gDabRadio(
    "DAB radio mock",
    {
        {make_selector_dab(12345, 225648), "BBC Radio 1", "Khalid", "Talk"},  // 12B
        {make_selector_dab(22345, 222064), "Classic FM", "Jean Sibelius", "Andante Festivo"},  // 11D
        {make_selector_dab(32345, 222064), "Absolute Radio", "Coldplay", "Clocks"},  // 11D
    });
// clang-format on

VirtualRadio::VirtualRadio(const std::string& name, const vector<VirtualProgram>& initialList)
VirtualRadio::VirtualRadio(const std::string& name, const vector<VirtualProgram>& initialList)
    : mName(name), mPrograms(initialList) {}
    : mName(name), mPrograms(initialList) {}


+3 −0
Original line number Original line Diff line number Diff line
@@ -52,6 +52,9 @@ class VirtualRadio {
/** AM/FM virtual radio space. */
/** AM/FM virtual radio space. */
extern VirtualRadio gAmFmRadio;
extern VirtualRadio gAmFmRadio;


/** DAB virtual radio space. */
extern VirtualRadio gDabRadio;

}  // namespace implementation
}  // namespace implementation
}  // namespace V2_0
}  // namespace V2_0
}  // namespace broadcastradio
}  // namespace broadcastradio
+8 −2
Original line number Original line Diff line number Diff line
@@ -23,6 +23,7 @@ using android::hardware::configureRpcThreadpool;
using android::hardware::joinRpcThreadpool;
using android::hardware::joinRpcThreadpool;
using android::hardware::broadcastradio::V2_0::implementation::BroadcastRadio;
using android::hardware::broadcastradio::V2_0::implementation::BroadcastRadio;
using android::hardware::broadcastradio::V2_0::implementation::gAmFmRadio;
using android::hardware::broadcastradio::V2_0::implementation::gAmFmRadio;
using android::hardware::broadcastradio::V2_0::implementation::gDabRadio;


int main() {
int main() {
    android::base::SetDefaultTag("BcRadioDef");
    android::base::SetDefaultTag("BcRadioDef");
@@ -30,8 +31,13 @@ int main() {
    configureRpcThreadpool(4, true);
    configureRpcThreadpool(4, true);


    BroadcastRadio broadcastRadio(gAmFmRadio);
    BroadcastRadio broadcastRadio(gAmFmRadio);
    auto status = broadcastRadio.registerAsService();
    auto amFmStatus = broadcastRadio.registerAsService("amfm");
    CHECK_EQ(status, android::OK) << "Failed to register Broadcast Radio HAL implementation";
    CHECK_EQ(amFmStatus, android::OK)
        << "Failed to register Broadcast Radio AM/FM HAL implementation";

    BroadcastRadio dabRadio(gDabRadio);
    auto dabStatus = dabRadio.registerAsService("dab");
    CHECK_EQ(dabStatus, android::OK) << "Failed to register Broadcast Radio DAB HAL implementation";


    joinRpcThreadpool();
    joinRpcThreadpool();
    return 1;  // joinRpcThreadpool shouldn't exit
    return 1;  // joinRpcThreadpool shouldn't exit
+14 −0
Original line number Original line Diff line number Diff line
@@ -299,6 +299,20 @@ ProgramSelector make_selector_amfm(uint32_t frequency) {
    return sel;
    return sel;
}
}


ProgramSelector make_selector_dab(uint32_t sidExt, uint32_t ensemble) {
    ProgramSelector sel = {};
    // TODO(maryabad): Have a helper function to create the sidExt instead of
    // passing the whole identifier here. Something like make_dab_sid_ext.
    sel.primaryId = make_identifier(IdentifierType::DAB_SID_EXT, sidExt);
    hidl_vec<ProgramIdentifier> secondaryIds = {
        make_identifier(IdentifierType::DAB_ENSEMBLE, ensemble),
        // TODO(maryabad): Include frequency here when the helper method to
        // translate between ensemble and frequency is implemented.
    };
    sel.secondaryIds = secondaryIds;
    return sel;
}

Metadata make_metadata(MetadataKey key, int64_t value) {
Metadata make_metadata(MetadataKey key, int64_t value) {
    Metadata meta = {};
    Metadata meta = {};
    meta.key = static_cast<uint32_t>(key);
    meta.key = static_cast<uint32_t>(key);
Loading