MTP: remove separate audio table from prototype MTP database
Change-Id: I5e4b49b741a0a3c6ddf5afcbb20a0d7c9515c8ce
Signed-off-by: Mike Lockwood <lockwood@android.com>
diff --git a/media/mtp/MtpMediaScanner.cpp b/media/mtp/MtpMediaScanner.cpp
index ac4c0cf..a9adf01 100644
--- a/media/mtp/MtpMediaScanner.cpp
+++ b/media/mtp/MtpMediaScanner.cpp
@@ -31,143 +31,15 @@
#include <stdio.h>
#include <limits.h>
-#include <media/mediascanner.h>
-#include <media/stagefright/StagefrightMediaScanner.h>
-
namespace android {
-class MtpMediaScannerClient : public MediaScannerClient
-{
-public:
- MtpMediaScannerClient()
- {
- reset();
- }
-
- virtual ~MtpMediaScannerClient()
- {
- }
-
- // returns true if it succeeded, false if an exception occured in the Java code
- virtual bool scanFile(const char* path, long long lastModified, long long fileSize)
- {
- LOGV("scanFile %s", path);
- return true;
- }
-
- // returns true if it succeeded, false if an exception occured in the Java code
- virtual bool handleStringTag(const char* name, const char* value)
- {
- int temp;
-
- if (!strcmp(name, "title")) {
- mTitle = value;
- mHasTitle = true;
- } else if (!strcmp(name, "artist")) {
- mArtist = value;
- mHasArtist = true;
- } else if (!strcmp(name, "album")) {
- mAlbum = value;
- mHasAlbum = true;
- } else if (!strcmp(name, "albumartist")) {
- mAlbumArtist = value;
- mHasAlbumArtist = true;
- } else if (!strcmp(name, "genre")) {
- // FIXME - handle numeric values here
- mGenre = value;
- mHasGenre = true;
- } else if (!strcmp(name, "composer")) {
- mComposer = value;
- mHasComposer = true;
- } else if (!strcmp(name, "tracknumber")) {
- if (sscanf(value, "%d", &temp) == 1)
- mTrack = temp;
- } else if (!strcmp(name, "discnumber")) {
- // currently unused
- } else if (!strcmp(name, "year") || !strcmp(name, "date")) {
- if (sscanf(value, "%d", &temp) == 1)
- mYear = temp;
- } else if (!strcmp(name, "duration")) {
- if (sscanf(value, "%d", &temp) == 1)
- mDuration = temp;
- } else {
- LOGV("handleStringTag %s : %s", name, value);
- }
- return true;
- }
-
- // returns true if it succeeded, false if an exception occured in the Java code
- virtual bool setMimeType(const char* mimeType)
- {
- mMimeType = mimeType;
- mHasMimeType = true;
- return true;
- }
-
- // returns true if it succeeded, false if an exception occured in the Java code
- virtual bool addNoMediaFolder(const char* path)
- {
- LOGV("addNoMediaFolder %s", path);
- return true;
- }
-
- void reset()
- {
- mHasTitle = false;
- mHasArtist = false;
- mHasAlbum = false;
- mHasAlbumArtist = false;
- mHasGenre = false;
- mHasComposer = false;
- mHasMimeType = false;
- mTrack = mYear = mDuration = 0;
- }
-
- inline const char* getTitle() const { return mHasTitle ? (const char *)mTitle : NULL; }
- inline const char* getArtist() const { return mHasArtist ? (const char *)mArtist : NULL; }
- inline const char* getAlbum() const { return mHasAlbum ? (const char *)mAlbum : NULL; }
- inline const char* getAlbumArtist() const { return mHasAlbumArtist ? (const char *)mAlbumArtist : NULL; }
- inline const char* getGenre() const { return mHasGenre ? (const char *)mGenre : NULL; }
- inline const char* getComposer() const { return mHasComposer ? (const char *)mComposer : NULL; }
- inline const char* getMimeType() const { return mHasMimeType ? (const char *)mMimeType : NULL; }
- inline int getTrack() const { return mTrack; }
- inline int getYear() const { return mYear; }
- inline int getDuration() const { return mDuration; }
-
-private:
- MtpString mTitle;
- MtpString mArtist;
- MtpString mAlbum;
- MtpString mAlbumArtist;
- MtpString mGenre;
- MtpString mComposer;
- MtpString mMimeType;
-
- bool mHasTitle;
- bool mHasArtist;
- bool mHasAlbum;
- bool mHasAlbumArtist;
- bool mHasGenre;
- bool mHasComposer;
- bool mHasMimeType;
-
- int mTrack;
- int mYear;
- int mDuration;
-};
-
-
MtpMediaScanner::MtpMediaScanner(MtpStorageID id, const char* filePath, MtpDatabase* db)
: mStorageID(id),
mFilePath(filePath),
mDatabase(db),
- mMediaScanner(NULL),
- mMediaScannerClient(NULL),
mFileList(NULL),
mFileCount(0)
{
- mMediaScanner = new StagefrightMediaScanner;
- mMediaScannerClient = new MtpMediaScannerClient;
}
MtpMediaScanner::~MtpMediaScanner() {
@@ -199,47 +71,46 @@
{
const char* extension;
MtpObjectFormat format;
- uint32_t table;
} sFileTypes[] =
{
- { "MP3", MTP_FORMAT_MP3, kObjectHandleTableAudio },
- { "M4A", MTP_FORMAT_UNDEFINED_AUDIO, kObjectHandleTableAudio },
- { "WAV", MTP_FORMAT_WAV, kObjectHandleTableAudio },
- { "AMR", MTP_FORMAT_UNDEFINED_AUDIO, kObjectHandleTableAudio },
- { "AWB", MTP_FORMAT_UNDEFINED_AUDIO, kObjectHandleTableAudio },
- { "WMA", MTP_FORMAT_WMA, kObjectHandleTableAudio },
- { "OGG", MTP_FORMAT_OGG, kObjectHandleTableAudio },
- { "OGA", MTP_FORMAT_UNDEFINED_AUDIO, kObjectHandleTableAudio },
- { "AAC", MTP_FORMAT_AAC, kObjectHandleTableAudio },
- { "MID", MTP_FORMAT_UNDEFINED_AUDIO, kObjectHandleTableAudio },
- { "MIDI", MTP_FORMAT_UNDEFINED_AUDIO, kObjectHandleTableAudio },
- { "XMF", MTP_FORMAT_UNDEFINED_AUDIO, kObjectHandleTableAudio },
- { "RTTTL", MTP_FORMAT_UNDEFINED_AUDIO, kObjectHandleTableAudio },
- { "SMF", MTP_FORMAT_UNDEFINED_AUDIO, kObjectHandleTableAudio },
- { "IMY", MTP_FORMAT_UNDEFINED_AUDIO, kObjectHandleTableAudio },
- { "RTX", MTP_FORMAT_UNDEFINED_AUDIO, kObjectHandleTableAudio },
- { "OTA", MTP_FORMAT_UNDEFINED_AUDIO, kObjectHandleTableAudio },
- { "MPEG", MTP_FORMAT_UNDEFINED_VIDEO, kObjectHandleTableVideo },
- { "MP4", MTP_FORMAT_UNDEFINED_VIDEO, kObjectHandleTableVideo },
- { "M4V", MTP_FORMAT_UNDEFINED_VIDEO, kObjectHandleTableVideo },
- { "3GP", MTP_FORMAT_UNDEFINED_VIDEO, kObjectHandleTableVideo },
- { "3GPP", MTP_FORMAT_UNDEFINED_VIDEO, kObjectHandleTableVideo },
- { "3G2", MTP_FORMAT_UNDEFINED_VIDEO, kObjectHandleTableVideo },
- { "3GPP2", MTP_FORMAT_UNDEFINED_VIDEO, kObjectHandleTableVideo },
- { "WMV", MTP_FORMAT_UNDEFINED_VIDEO, kObjectHandleTableVideo },
- { "ASF", MTP_FORMAT_UNDEFINED_VIDEO, kObjectHandleTableVideo },
- { "JPG", MTP_FORMAT_EXIF_JPEG, kObjectHandleTableImage },
- { "JPEG", MTP_FORMAT_EXIF_JPEG, kObjectHandleTableImage },
- { "GIF", MTP_FORMAT_GIF, kObjectHandleTableImage },
- { "PNG", MTP_FORMAT_PNG, kObjectHandleTableImage },
- { "BMP", MTP_FORMAT_BMP, kObjectHandleTableImage },
- { "WBMP", MTP_FORMAT_BMP, kObjectHandleTableImage },
- { "M3U", MTP_FORMAT_M3U_PLAYLIST, kObjectHandleTablePlaylist },
- { "PLS", MTP_FORMAT_PLS_PLAYLIST, kObjectHandleTablePlaylist },
- { "WPL", MTP_FORMAT_WPL_PLAYLIST, kObjectHandleTablePlaylist },
+ { "MP3", MTP_FORMAT_MP3, },
+ { "M4A", MTP_FORMAT_UNDEFINED_AUDIO, },
+ { "WAV", MTP_FORMAT_WAV, },
+ { "AMR", MTP_FORMAT_UNDEFINED_AUDIO, },
+ { "AWB", MTP_FORMAT_UNDEFINED_AUDIO, },
+ { "WMA", MTP_FORMAT_WMA, },
+ { "OGG", MTP_FORMAT_OGG, },
+ { "OGA", MTP_FORMAT_UNDEFINED_AUDIO, },
+ { "AAC", MTP_FORMAT_AAC, },
+ { "MID", MTP_FORMAT_UNDEFINED_AUDIO, },
+ { "MIDI", MTP_FORMAT_UNDEFINED_AUDIO, },
+ { "XMF", MTP_FORMAT_UNDEFINED_AUDIO, },
+ { "RTTTL", MTP_FORMAT_UNDEFINED_AUDIO, },
+ { "SMF", MTP_FORMAT_UNDEFINED_AUDIO, },
+ { "IMY", MTP_FORMAT_UNDEFINED_AUDIO, },
+ { "RTX", MTP_FORMAT_UNDEFINED_AUDIO, },
+ { "OTA", MTP_FORMAT_UNDEFINED_AUDIO, },
+ { "MPEG", MTP_FORMAT_UNDEFINED_VIDEO, },
+ { "MP4", MTP_FORMAT_UNDEFINED_VIDEO, },
+ { "M4V", MTP_FORMAT_UNDEFINED_VIDEO, },
+ { "3GP", MTP_FORMAT_UNDEFINED_VIDEO, },
+ { "3GPP", MTP_FORMAT_UNDEFINED_VIDEO, },
+ { "3G2", MTP_FORMAT_UNDEFINED_VIDEO, },
+ { "3GPP2", MTP_FORMAT_UNDEFINED_VIDEO, },
+ { "WMV", MTP_FORMAT_UNDEFINED_VIDEO, },
+ { "ASF", MTP_FORMAT_UNDEFINED_VIDEO, },
+ { "JPG", MTP_FORMAT_EXIF_JPEG, },
+ { "JPEG", MTP_FORMAT_EXIF_JPEG, },
+ { "GIF", MTP_FORMAT_GIF, },
+ { "PNG", MTP_FORMAT_PNG, },
+ { "BMP", MTP_FORMAT_BMP, },
+ { "WBMP", MTP_FORMAT_BMP, },
+ { "M3U", MTP_FORMAT_M3U_PLAYLIST, },
+ { "PLS", MTP_FORMAT_PLS_PLAYLIST, },
+ { "WPL", MTP_FORMAT_WPL_PLAYLIST, },
};
-MtpObjectFormat MtpMediaScanner::getFileFormat(const char* path, uint32_t& table)
+MtpObjectFormat MtpMediaScanner::getFileFormat(const char* path)
{
const char* extension = strrchr(path, '.');
if (!extension)
@@ -248,11 +119,9 @@
for (unsigned i = 0; i < sizeof(sFileTypes) / sizeof(sFileTypes[0]); i++) {
if (!strcasecmp(extension, sFileTypes[i].extension)) {
- table = sFileTypes[i].table;
return sFileTypes[i].format;
}
}
- table = kObjectHandleTableFile;
return MTP_FORMAT_UNDEFINED;
}
@@ -316,8 +185,7 @@
}
void MtpMediaScanner::scanFile(const char* path, MtpObjectHandle parent, struct stat& statbuf) {
- uint32_t table;
- MtpObjectFormat format = getFileFormat(path, table);
+ MtpObjectFormat format = getFileFormat(path);
// don't scan unknown file types
if (format == MTP_FORMAT_UNDEFINED)
return;
@@ -334,22 +202,6 @@
mDatabase->rollbackTransaction();
return;
}
-
- if (table == kObjectHandleTableAudio) {
- mMediaScannerClient->reset();
- mMediaScanner->processFile(path, NULL, *mMediaScannerClient);
- handle = mDatabase->addAudioFile(handle,
- mMediaScannerClient->getTitle(),
- mMediaScannerClient->getArtist(),
- mMediaScannerClient->getAlbum(),
- mMediaScannerClient->getAlbumArtist(),
- mMediaScannerClient->getGenre(),
- mMediaScannerClient->getComposer(),
- mMediaScannerClient->getMimeType(),
- mMediaScannerClient->getTrack(),
- mMediaScannerClient->getYear(),
- mMediaScannerClient->getDuration());
- }
mDatabase->commitTransaction();
}
}