/* * Copyright (C) 2017 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.hardware.broadcastradio@1.1; import @1.0::IBroadcastRadio; interface IBroadcastRadio extends @1.0::IBroadcastRadio { /** * Retrieve implementation properties. * @return properties A Properties structure containing implementation * description and capabilities. */ getProperties_1_1() generates (Properties properties); /** * Fetch image from radio module. * * This call is meant to make V1_0::MetaData lightweight - instead of * passing an image data blob in the MetadataType.RAW field, the HAL * implementation only passes the identifier, so the client may cache images * or even not fetch them. * * The identifier may be any arbitrary number - sequential, sha256 prefix, * or any other unique value selected by the vendor. * * The data should be a valid PNG, JPEG, GIF or BMP file. * Image data with an invalid format must be handled gracefully in the same * way as a missing image. * * The image identifier may become invalid after some time from passing it * with metadata struct (due to resource cleanup at the HAL implementation). * However, it must remain valid for a currently tuned program at least * until currentProgramInfoChanged or programListChanged is called and * metadata changes for the current program. * * There is still a race condition possible (if the HAL deletes the old * image immediately after notifying about the new one) between * currentProgramInfoChanged callback propagating through the framework and * the HAL implementation removing previous image. In such case, client * application may expect the new currentProgramInfoChanged callback with * updated image identifier. * * @param id Identifier of an image; * value of 0 is reserved and should be treated as invalid image. * @return image A binary blob with image data * or a zero-length vector if identifier doesn't exist. */ getImage(int32_t id) generates (vec<uint8_t> image); };