Loading radio/IRadio.cpp +10 −19 Original line number Diff line number Diff line Loading @@ -172,16 +172,11 @@ public: virtual status_t getProgramInformation(struct radio_program_info *info) { Parcel data, reply; if (info == NULL) { if (info == nullptr || info->metadata == nullptr) { return BAD_VALUE; } radio_metadata_t *metadata = info->metadata; data.writeInterfaceToken(IRadio::getInterfaceDescriptor()); if (metadata != NULL) { data.writeUint32(1); } else { data.writeUint32(0); } status_t status = remote()->transact(GET_PROGRAM_INFORMATION, data, &reply); if (status == NO_ERROR) { status = (status_t)reply.readInt32(); Loading @@ -190,13 +185,13 @@ public: // restore local metadata pointer info->metadata = metadata; uint32_t metatataSize = reply.readUint32(); if ((metadata != NULL) && (metatataSize != 0)) { radio_metadata_t *newMetadata = (radio_metadata_t *)malloc(metatataSize); uint32_t metadataSize = reply.readUint32(); if (metadataSize != 0) { radio_metadata_t *newMetadata = (radio_metadata_t *)malloc(metadataSize); if (newMetadata == NULL) { return NO_MEMORY; } reply.read(newMetadata, metatataSize); reply.read(newMetadata, metadataSize); status = radio_metadata_add_metadata(&info->metadata, newMetadata); free(newMetadata); } Loading Loading @@ -306,21 +301,17 @@ status_t BnRadio::onTransact( CHECK_INTERFACE(IRadio, data, reply); struct radio_program_info info; status_t status; // query metadata only if requested by remote side if (data.readUint32() == 1) { status = radio_metadata_allocate(&info.metadata, 0, 0); if (status != NO_ERROR) { return status; } } else { info.metadata = NULL; } status = getProgramInformation(&info); reply->writeInt32(status); if (status == NO_ERROR) { reply->write(&info, sizeof(struct radio_program_info)); if ((info.metadata != NULL) && (radio_metadata_get_count(info.metadata) > 0)) { if (radio_metadata_get_count(info.metadata) > 0) { size_t size = radio_metadata_get_size(info.metadata); reply->writeUint32((uint32_t)size); reply->write(info.metadata, size); Loading services/radio/HidlUtils.cpp +3 −6 Original line number Diff line number Diff line Loading @@ -122,8 +122,7 @@ void HidlUtils::convertBandConfigFromHal(radio_hal_band_config_t *config, //static void HidlUtils::convertProgramInfoFromHal(radio_program_info_t *info, const ProgramInfo *halInfo, bool withMetadata) const ProgramInfo *halInfo) { info->channel = halInfo->channel; info->sub_channel = halInfo->subChannel; Loading @@ -131,11 +130,9 @@ void HidlUtils::convertProgramInfoFromHal(radio_program_info_t *info, info->stereo = halInfo->stereo; info->digital = halInfo->digital; info->signal_strength = halInfo->signalStrength; if (withMetadata && halInfo->metadata.size() != 0) { convertMetaDataFromHal(&info->metadata, halInfo->metadata, halInfo->channel, halInfo->subChannel); } } //static void HidlUtils::convertMetaDataFromHal(radio_metadata_t **metadata, Loading services/radio/HidlUtils.h +1 −2 Original line number Diff line number Diff line Loading @@ -38,8 +38,7 @@ public: static void convertBandConfigToHal(BandConfig *halConfig, const radio_hal_band_config_t *config); static void convertProgramInfoFromHal(radio_program_info_t *info, const ProgramInfo *halInfo, bool withMetadata); const ProgramInfo *halInfo); static void convertMetaDataFromHal(radio_metadata_t **metadata, const hidl_vec<MetaData>& halMetadata, uint32_t channel, Loading services/radio/RadioHalHidl.cpp +13 −13 Original line number Diff line number Diff line Loading @@ -233,11 +233,13 @@ int RadioHalHidl::Tuner::getProgramInformation(radio_program_info_t *info) if (mHalTuner == 0) { return -ENODEV; } if (info == nullptr || info->metadata == nullptr) { return BAD_VALUE; } ProgramInfo halInfo; Result halResult; bool withMetaData = (info->metadata != NULL); Return<void> hidlReturn = mHalTuner->getProgramInformation( withMetaData, [&](Result result, const ProgramInfo& info) { [&](Result result, const ProgramInfo& info) { halResult = result; if (result == Result::OK) { halInfo = info; Loading @@ -245,7 +247,7 @@ int RadioHalHidl::Tuner::getProgramInformation(radio_program_info_t *info) }); status_t status = checkHidlStatus(hidlReturn.getStatus()); if (status == NO_ERROR && halResult == Result::OK) { HidlUtils::convertProgramInfoFromHal(info, &halInfo, withMetaData); HidlUtils::convertProgramInfoFromHal(info, &halInfo); } return HidlUtils::convertHalResult(halResult); } Loading Loading @@ -276,11 +278,9 @@ Return<void> RadioHalHidl::Tuner::tuneComplete(Result result, const ProgramInfo& memset(&event, 0, sizeof(radio_hal_event_t)); event.type = RADIO_EVENT_TUNED; event.status = HidlUtils::convertHalResult(result); HidlUtils::convertProgramInfoFromHal(&event.info, &info, true); HidlUtils::convertProgramInfoFromHal(&event.info, &info); onCallback(&event); if (event.info.metadata != NULL) { radio_metadata_deallocate(event.info.metadata); } return Return<void>(); } Loading @@ -290,7 +290,7 @@ Return<void> RadioHalHidl::Tuner::afSwitch(const ProgramInfo& info) radio_hal_event_t event; memset(&event, 0, sizeof(radio_hal_event_t)); event.type = RADIO_EVENT_AF_SWITCH; HidlUtils::convertProgramInfoFromHal(&event.info, &info, true); HidlUtils::convertProgramInfoFromHal(&event.info, &info); onCallback(&event); if (event.info.metadata != NULL) { radio_metadata_deallocate(event.info.metadata); Loading Loading
radio/IRadio.cpp +10 −19 Original line number Diff line number Diff line Loading @@ -172,16 +172,11 @@ public: virtual status_t getProgramInformation(struct radio_program_info *info) { Parcel data, reply; if (info == NULL) { if (info == nullptr || info->metadata == nullptr) { return BAD_VALUE; } radio_metadata_t *metadata = info->metadata; data.writeInterfaceToken(IRadio::getInterfaceDescriptor()); if (metadata != NULL) { data.writeUint32(1); } else { data.writeUint32(0); } status_t status = remote()->transact(GET_PROGRAM_INFORMATION, data, &reply); if (status == NO_ERROR) { status = (status_t)reply.readInt32(); Loading @@ -190,13 +185,13 @@ public: // restore local metadata pointer info->metadata = metadata; uint32_t metatataSize = reply.readUint32(); if ((metadata != NULL) && (metatataSize != 0)) { radio_metadata_t *newMetadata = (radio_metadata_t *)malloc(metatataSize); uint32_t metadataSize = reply.readUint32(); if (metadataSize != 0) { radio_metadata_t *newMetadata = (radio_metadata_t *)malloc(metadataSize); if (newMetadata == NULL) { return NO_MEMORY; } reply.read(newMetadata, metatataSize); reply.read(newMetadata, metadataSize); status = radio_metadata_add_metadata(&info->metadata, newMetadata); free(newMetadata); } Loading Loading @@ -306,21 +301,17 @@ status_t BnRadio::onTransact( CHECK_INTERFACE(IRadio, data, reply); struct radio_program_info info; status_t status; // query metadata only if requested by remote side if (data.readUint32() == 1) { status = radio_metadata_allocate(&info.metadata, 0, 0); if (status != NO_ERROR) { return status; } } else { info.metadata = NULL; } status = getProgramInformation(&info); reply->writeInt32(status); if (status == NO_ERROR) { reply->write(&info, sizeof(struct radio_program_info)); if ((info.metadata != NULL) && (radio_metadata_get_count(info.metadata) > 0)) { if (radio_metadata_get_count(info.metadata) > 0) { size_t size = radio_metadata_get_size(info.metadata); reply->writeUint32((uint32_t)size); reply->write(info.metadata, size); Loading
services/radio/HidlUtils.cpp +3 −6 Original line number Diff line number Diff line Loading @@ -122,8 +122,7 @@ void HidlUtils::convertBandConfigFromHal(radio_hal_band_config_t *config, //static void HidlUtils::convertProgramInfoFromHal(radio_program_info_t *info, const ProgramInfo *halInfo, bool withMetadata) const ProgramInfo *halInfo) { info->channel = halInfo->channel; info->sub_channel = halInfo->subChannel; Loading @@ -131,11 +130,9 @@ void HidlUtils::convertProgramInfoFromHal(radio_program_info_t *info, info->stereo = halInfo->stereo; info->digital = halInfo->digital; info->signal_strength = halInfo->signalStrength; if (withMetadata && halInfo->metadata.size() != 0) { convertMetaDataFromHal(&info->metadata, halInfo->metadata, halInfo->channel, halInfo->subChannel); } } //static void HidlUtils::convertMetaDataFromHal(radio_metadata_t **metadata, Loading
services/radio/HidlUtils.h +1 −2 Original line number Diff line number Diff line Loading @@ -38,8 +38,7 @@ public: static void convertBandConfigToHal(BandConfig *halConfig, const radio_hal_band_config_t *config); static void convertProgramInfoFromHal(radio_program_info_t *info, const ProgramInfo *halInfo, bool withMetadata); const ProgramInfo *halInfo); static void convertMetaDataFromHal(radio_metadata_t **metadata, const hidl_vec<MetaData>& halMetadata, uint32_t channel, Loading
services/radio/RadioHalHidl.cpp +13 −13 Original line number Diff line number Diff line Loading @@ -233,11 +233,13 @@ int RadioHalHidl::Tuner::getProgramInformation(radio_program_info_t *info) if (mHalTuner == 0) { return -ENODEV; } if (info == nullptr || info->metadata == nullptr) { return BAD_VALUE; } ProgramInfo halInfo; Result halResult; bool withMetaData = (info->metadata != NULL); Return<void> hidlReturn = mHalTuner->getProgramInformation( withMetaData, [&](Result result, const ProgramInfo& info) { [&](Result result, const ProgramInfo& info) { halResult = result; if (result == Result::OK) { halInfo = info; Loading @@ -245,7 +247,7 @@ int RadioHalHidl::Tuner::getProgramInformation(radio_program_info_t *info) }); status_t status = checkHidlStatus(hidlReturn.getStatus()); if (status == NO_ERROR && halResult == Result::OK) { HidlUtils::convertProgramInfoFromHal(info, &halInfo, withMetaData); HidlUtils::convertProgramInfoFromHal(info, &halInfo); } return HidlUtils::convertHalResult(halResult); } Loading Loading @@ -276,11 +278,9 @@ Return<void> RadioHalHidl::Tuner::tuneComplete(Result result, const ProgramInfo& memset(&event, 0, sizeof(radio_hal_event_t)); event.type = RADIO_EVENT_TUNED; event.status = HidlUtils::convertHalResult(result); HidlUtils::convertProgramInfoFromHal(&event.info, &info, true); HidlUtils::convertProgramInfoFromHal(&event.info, &info); onCallback(&event); if (event.info.metadata != NULL) { radio_metadata_deallocate(event.info.metadata); } return Return<void>(); } Loading @@ -290,7 +290,7 @@ Return<void> RadioHalHidl::Tuner::afSwitch(const ProgramInfo& info) radio_hal_event_t event; memset(&event, 0, sizeof(radio_hal_event_t)); event.type = RADIO_EVENT_AF_SWITCH; HidlUtils::convertProgramInfoFromHal(&event.info, &info, true); HidlUtils::convertProgramInfoFromHal(&event.info, &info); onCallback(&event); if (event.info.metadata != NULL) { radio_metadata_deallocate(event.info.metadata); Loading