Make metadata field mandatory for program info struct.
Test: VTS, manual
Change-Id: I532dbb0f3d9cb5194265c67fd1328bce55e43b9d
diff --git a/broadcastradio/1.0/default/Tuner.cpp b/broadcastradio/1.0/default/Tuner.cpp
index 27b298b..de63127 100644
--- a/broadcastradio/1.0/default/Tuner.cpp
+++ b/broadcastradio/1.0/default/Tuner.cpp
@@ -46,7 +46,7 @@
mCallback->antennaStateChange(halEvent->on);
break;
case RADIO_EVENT_TUNED:
- Utils::convertProgramInfoFromHal(&info, &halEvent->info, true);
+ Utils::convertProgramInfoFromHal(&info, &halEvent->info);
mCallback->tuneComplete(Utils::convertHalResult(halEvent->status), info);
break;
case RADIO_EVENT_METADATA: {
@@ -61,7 +61,7 @@
mCallback->trafficAnnouncement(halEvent->on);
break;
case RADIO_EVENT_AF_SWITCH:
- Utils::convertProgramInfoFromHal(&info, &halEvent->info, true);
+ Utils::convertProgramInfoFromHal(&info, &halEvent->info);
mCallback->afSwitch(info);
break;
case RADIO_EVENT_EA:
@@ -164,7 +164,7 @@
return Utils::convertHalResult(rc);
}
-Return<void> Tuner::getProgramInformation(bool withMetadata, getProgramInformation_cb _hidl_cb) {
+Return<void> Tuner::getProgramInformation(getProgramInformation_cb _hidl_cb) {
int rc;
radio_program_info_t halInfo;
ProgramInfo info;
@@ -174,18 +174,13 @@
rc = -ENODEV;
goto exit;
}
- if (withMetadata) {
- radio_metadata_allocate(&halInfo.metadata, 0, 0);
- } else {
- halInfo.metadata = NULL;
- }
+
+ radio_metadata_allocate(&halInfo.metadata, 0, 0);
rc = mHalTuner->get_program_information(mHalTuner, &halInfo);
if (rc == 0) {
- Utils::convertProgramInfoFromHal(&info, &halInfo, withMetadata);
+ Utils::convertProgramInfoFromHal(&info, &halInfo);
}
- if (withMetadata) {
- radio_metadata_deallocate(halInfo.metadata);
- }
+ radio_metadata_deallocate(halInfo.metadata);
exit:
_hidl_cb(Utils::convertHalResult(rc), info);
diff --git a/broadcastradio/1.0/default/Tuner.h b/broadcastradio/1.0/default/Tuner.h
index a621d97..bfdd4f4 100644
--- a/broadcastradio/1.0/default/Tuner.h
+++ b/broadcastradio/1.0/default/Tuner.h
@@ -40,8 +40,7 @@
Return<Result> step(Direction direction, bool skipSubChannel) override;
Return<Result> tune(uint32_t channel, uint32_t subChannel) override;
Return<Result> cancel() override;
- Return<void> getProgramInformation(bool withMetadata,
- getProgramInformation_cb _hidl_cb) override;
+ Return<void> getProgramInformation(getProgramInformation_cb _hidl_cb) override;
static void callback(radio_hal_event_t *halEvent, void *cookie);
void onCallback(radio_hal_event_t *halEvent);
diff --git a/broadcastradio/1.0/default/Utils.cpp b/broadcastradio/1.0/default/Utils.cpp
index c2c2ff3..aefeeb1 100644
--- a/broadcastradio/1.0/default/Utils.cpp
+++ b/broadcastradio/1.0/default/Utils.cpp
@@ -222,8 +222,7 @@
//static
void Utils::convertProgramInfoFromHal(ProgramInfo *info,
- radio_program_info_t *halInfo,
- bool withMetadata)
+ radio_program_info_t *halInfo)
{
info->channel = halInfo->channel;
info->subChannel = halInfo->sub_channel;
@@ -231,9 +230,7 @@
info->stereo = halInfo->stereo;
info->digital = halInfo->digital;
info->signalStrength = halInfo->signal_strength;
- if (withMetadata && halInfo->metadata != NULL) {
- convertMetaDataFromHal(info->metadata, halInfo->metadata);
- }
+ convertMetaDataFromHal(info->metadata, halInfo->metadata);
}
//static
@@ -241,6 +238,7 @@
radio_metadata_t *halMetadata)
{
if (halMetadata == NULL) {
+ ALOGE("Invalid argument: halMetadata is NULL");
return 0;
}
diff --git a/broadcastradio/1.0/default/Utils.h b/broadcastradio/1.0/default/Utils.h
index 25eb6ee..4ef22a5 100644
--- a/broadcastradio/1.0/default/Utils.h
+++ b/broadcastradio/1.0/default/Utils.h
@@ -36,8 +36,7 @@
static void convertBandConfigToHal(radio_hal_band_config_t *halConfig,
const BandConfig *config);
static void convertProgramInfoFromHal(ProgramInfo *info,
- radio_program_info_t *halInfo,
- bool withMetadata);
+ radio_program_info_t *halInfo);
static int convertMetaDataFromHal(hidl_vec<MetaData>& metadata,
radio_metadata_t *halMetadata);
private: