Bug: b/
34054813
Test: VTS, manual - both done in internal branch
Change-Id: If9c27669bb0d75ca67b75a761afe4cdc9dc51f0b
cc_library_shared {
name: "libradio_metadata",
- srcs: ["src/radio_metadata.c"],
+ srcs: [
+ "src/radio_metadata.c",
+ "src/RadioMetadataWrapper.cpp",
+ ],
cflags: [
"-Werror",
--- /dev/null
+#ifndef ANDROID_RADIO_METADATA_WRAPPER_H
+#define ANDROID_RADIO_METADATA_WRAPPER_H
+
+#include <system/radio_metadata.h>
+
+namespace android {
+
+class ANDROID_API RadioMetadataWrapper
+{
+public:
+ explicit RadioMetadataWrapper(radio_metadata_t **metadata);
+
+ virtual ~RadioMetadataWrapper();
+
+private:
+ radio_metadata_t **mMetadata;
+};
+
+} // namespace android
+
+#endif // ANDROID_RADIO_METADATA_WRAPPER_H
--- /dev/null
+#define LOG_TAG "RadioMetadataWrapper"
+//#define LOG_NDEBUG 0
+
+#include <system/RadioMetadataWrapper.h>
+#include <utils/Log.h>
+
+namespace android {
+
+RadioMetadataWrapper::RadioMetadataWrapper(radio_metadata_t **metadata)
+ : mMetadata(metadata)
+{
+ *mMetadata = nullptr;
+
+ auto status = radio_metadata_allocate(mMetadata, 0, 0);
+ if (status != 0) {
+ // *mMetadata remains NULL if allocation fails
+ ALOGE("Failed to allocate metadata buffer");
+ }
+}
+
+RadioMetadataWrapper::~RadioMetadataWrapper()
+{
+ radio_metadata_deallocate(*mMetadata);
+}
+
+} // namespace android