MTP: More prototyping work:

New media scanner test program
Media scanner now cleans up after files that no longer exist
Separate database table for audio files
Extract metadata from audio files with libstagefright

Change-Id: I2bd0fe877836c741658e72fcfeb89c11be0d9b41
Signed-off-by: Mike Lockwood <lockwood@android.com>
diff --git a/media/mtp/MtpDatabase.h b/media/mtp/MtpDatabase.h
index 2a48155..a6be6a6 100644
--- a/media/mtp/MtpDatabase.h
+++ b/media/mtp/MtpDatabase.h
@@ -33,20 +33,38 @@
     SqliteStatement*        mObjectInfoQuery;
     SqliteStatement*        mFileInserter;
     SqliteStatement*        mFileDeleter;
+    SqliteStatement*        mAudioInserter;
+    SqliteStatement*        mAudioDeleter;
 
 public:
                             MtpDatabase();
     virtual                 ~MtpDatabase();
 
+    static uint32_t         getTableForFile(MtpObjectFormat format);
+
     bool                    open(const char* path, bool create);
+    MtpObjectHandle         getObjectHandle(const char* path);
     MtpObjectHandle         addFile(const char* path,
                                     MtpObjectFormat format,
                                     MtpObjectHandle parent,
                                     MtpStorageID storage,
                                     uint64_t size,
-                                    time_t created,
                                     time_t modified);
 
+    MtpObjectHandle         addAudioFile(MtpObjectHandle id);
+
+    MtpObjectHandle         addAudioFile(MtpObjectHandle id,
+                                    const char* title,
+                                    const char* artist,
+                                    const char* album,
+                                    const char* albumArtist,
+                                    const char* genre,
+                                    const char* composer,
+                                    const char* mimeType,
+                                    int track,
+                                    int year,
+                                    int duration);
+
     MtpObjectHandleList*    getObjectList(MtpStorageID storageID,
                                     MtpObjectFormat format,
                                     MtpObjectHandle parent);
@@ -62,6 +80,9 @@
                                     MtpString& filePath,
                                     int64_t& fileLength);
     bool                    deleteFile(MtpObjectHandle handle);
+
+    // helper for media scanner
+    MtpObjectHandle*        getFileList(int& outCount);
 };
 
 }; // namespace android