C interface to MediaMetrics
C interface is more stable across upgrades than C++
and simplifies cross-package interfaces in upgradeable components.
Bug: 119675363
Test: parallel metrics generation from nuplayer
Change-Id: I36beeade82a208be64af0860eb6f175a2801b27f
diff --git a/media/libmediametrics/MediaAnalyticsItem.cpp b/media/libmediametrics/MediaAnalyticsItem.cpp
index d3de01e..448e2d9 100644
--- a/media/libmediametrics/MediaAnalyticsItem.cpp
+++ b/media/libmediametrics/MediaAnalyticsItem.cpp
@@ -487,6 +487,18 @@
return true;
}
+bool MediaAnalyticsItem::getString(MediaAnalyticsItem::Attr name, std::string *value) {
+ Prop *prop = findProp(name);
+ if (prop == NULL || prop->mType != kTypeCString) {
+ return false;
+ }
+ if (value != NULL) {
+ // std::string makes a copy for us
+ *value = prop->u.CStringValue;
+ }
+ return true;
+}
+
// remove indicated keys and their values
// return value is # keys removed
int32_t MediaAnalyticsItem::filter(int n, MediaAnalyticsItem::Attr attrs[]) {
@@ -726,6 +738,15 @@
}
+const char *MediaAnalyticsItem::toCString() {
+ return toCString(PROTO_LAST);
+}
+
+const char * MediaAnalyticsItem::toCString(int version) {
+ std::string val = toString(version);
+ return strdup(val.c_str());
+}
+
std::string MediaAnalyticsItem::toString() {
return toString(PROTO_LAST);
}