+void ContentInstance::MediaContentChangeCallback(
+ media_content_error_e error,
+ int pid,
+ media_content_db_update_item_type_e update_item,
+ media_content_db_update_type_e update_type,
+ media_content_type_e media_type,
+ char* uuid,
+ char* path,
+ char* mime_type,
+ void* user_data) {
+#ifdef DEBUG_ITEM
+ std::cout << "MediaContentChangeCallback: error=" << error <<
+ ", item=" << update_item << ", type=" << update_type << ", " <<
+ uuid << ", " << path << std::endl;
+#endif
+ if (!user_data)
+ return;
+
+ ContentInstance* self =
+ reinterpret_cast<ContentInstance*>(user_data);
+
+ picojson::value::object om;
+ om["replyId"] = picojson::value(static_cast<double>(0));
+ const std::string type = (update_type == MEDIA_CONTENT_INSERT ?
+ "INSERT" : (update_type == MEDIA_CONTENT_DELETE ? "DELETE" : "UPDATE"));
+ om[STR_EVENT_TYPE] = picojson::value(type);
+ picojson::value::object ov;
+ ov["type"] = picojson::value(static_cast<double>(media_type));
+
+ if (uuid)
+ ov["id"] = picojson::value(uuid);
+
+ if (path)
+ ov["contentURI"] = picojson::value(path);
+
+ if (mime_type)
+ ov["mimeType"] = picojson::value(mime_type);
+
+ picojson::value msg(om);
+ picojson::value value(ov);
+#ifdef DEBUG_JSON_REPLY
+ std::cout << "JSON event msg: " << msg.serialize().c_str() << std::endl;
+ std::cout << "JSON event val: " << value.serialize().c_str() << std::endl;
+#endif
+
+ self->PostAsyncSuccessReply(msg, value);
+}
+