platform_hardware_interfaces/broadcastradio/1.1/IBroadcastRadio.hal

64 lines
2.7 KiB
Text

/*
* 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);
};