Add basic metadata retrieval support for midi, ogg, etc.
Bug 2050320
diff --git a/include/media/MediaMetadataRetrieverInterface.h b/include/media/MediaMetadataRetrieverInterface.h
index b178836..e228357 100644
--- a/include/media/MediaMetadataRetrieverInterface.h
+++ b/include/media/MediaMetadataRetrieverInterface.h
@@ -44,6 +44,28 @@
 {
 public:
     virtual             ~MediaMetadataRetrieverInterface() {}
+
+    // @param mode The intended mode of operations:
+    // can be any of the following:
+    // METADATA_MODE_NOOP: Experimental - just add and remove data source.
+    // METADATA_MODE_FRAME_CAPTURE_ONLY: For capture frame/thumbnail only.
+    // METADATA_MODE_METADATA_RETRIEVAL_ONLY: For meta data retrieval only.
+    // METADATA_MODE_FRAME_CAPTURE_AND_METADATA_RETRIEVAL: For both frame
+    //     capture and meta data retrieval.
+    virtual status_t    setMode(int mode) {
+                            if (mode < METADATA_MODE_NOOP ||
+                                mode > METADATA_MODE_FRAME_CAPTURE_AND_METADATA_RETRIEVAL) {
+                                return BAD_VALUE;
+                            }
+                            return NO_ERROR;
+                        }
+
+    virtual status_t    getMode(int* mode) const { *mode = mMode; return NO_ERROR; }
+    virtual VideoFrame* captureFrame() { return NULL; }
+    virtual MediaAlbumArt* extractAlbumArt() { return NULL; }
+    virtual const char* extractMetadata(int keyCode) { return NULL; }
+
+    uint32_t mMode;
 };
 
 }; // namespace android
diff --git a/include/media/mediametadataretriever.h b/include/media/mediametadataretriever.h
index 9ea2775..cfc205c 100644
--- a/include/media/mediametadataretriever.h
+++ b/include/media/mediametadataretriever.h
@@ -56,6 +56,18 @@
     // Add more here...
 };
 
+// The intended mode of operations:$
+// METADATA_MODE_NOOP: Experimental - just add and remove data source.$
+// METADATA_MODE_FRAME_CAPTURE_ONLY: For capture frame/thumbnail only.$
+// METADATA_MODE_METADATA_RETRIEVAL_ONLY: For meta data retrieval only.$
+// METADATA_MODE_FRAME_CAPTURE_AND_METADATA_RETRIEVAL: For both frame capture
+//   and meta data retrieval.$
+enum {
+    METADATA_MODE_NOOP                                 = 0x00,
+    METADATA_MODE_FRAME_CAPTURE_ONLY                   = 0x01,
+    METADATA_MODE_METADATA_RETRIEVAL_ONLY              = 0x02,
+    METADATA_MODE_FRAME_CAPTURE_AND_METADATA_RETRIEVAL = 0x03
+};
 
 class MediaMetadataRetriever: public RefBase
 {