summaryrefslogtreecommitdiffstats
path: root/media/mtp/MtpServer.cpp
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@android.com>2010-05-14 15:35:17 -0400
committerMike Lockwood <lockwood@android.com>2010-05-18 16:12:38 -0400
commitfceef46513db3507b413f604cea89e3c7f352663 (patch)
tree3155d044d58c5af47cd59663ae7dbc242e5d3102 /media/mtp/MtpServer.cpp
parent15727818edf0c9bd88303656ccb43fccd2515007 (diff)
downloadframeworks_av-fceef46513db3507b413f604cea89e3c7f352663.zip
frameworks_av-fceef46513db3507b413f604cea89e3c7f352663.tar.gz
frameworks_av-fceef46513db3507b413f604cea89e3c7f352663.tar.bz2
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>
Diffstat (limited to 'media/mtp/MtpServer.cpp')
-rw-r--r--media/mtp/MtpServer.cpp46
1 files changed, 38 insertions, 8 deletions
diff --git a/media/mtp/MtpServer.cpp b/media/mtp/MtpServer.cpp
index d868926..6a90568 100644
--- a/media/mtp/MtpServer.cpp
+++ b/media/mtp/MtpServer.cpp
@@ -79,9 +79,35 @@ static const MtpObjectProperty kSupportedObjectProperties[] = {
};
static const MtpObjectFormat kSupportedPlaybackFormats[] = {
- // FIXME - fill this out later
+ // MTP_FORMAT_UNDEFINED,
MTP_FORMAT_ASSOCIATION,
+ // MTP_FORMAT_TEXT,
+ // MTP_FORMAT_HTML,
MTP_FORMAT_MP3,
+ //MTP_FORMAT_AVI,
+ MTP_FORMAT_MPEG,
+ // MTP_FORMAT_ASF,
+ MTP_FORMAT_EXIF_JPEG,
+ MTP_FORMAT_TIFF_EP,
+ // MTP_FORMAT_BMP,
+ MTP_FORMAT_GIF,
+ MTP_FORMAT_JFIF,
+ MTP_FORMAT_PNG,
+ MTP_FORMAT_TIFF,
+ MTP_FORMAT_WMA,
+ MTP_FORMAT_OGG,
+ MTP_FORMAT_AAC,
+ // MTP_FORMAT_FLAC,
+ // MTP_FORMAT_WMV,
+ MTP_FORMAT_MP4_CONTAINER,
+ MTP_FORMAT_MP2,
+ MTP_FORMAT_3GP_CONTAINER,
+ // MTP_FORMAT_ABSTRACT_AUDIO_ALBUM,
+ // MTP_FORMAT_ABSTRACT_AV_PLAYLIST,
+ // MTP_FORMAT_WPL_PLAYLIST,
+ // MTP_FORMAT_M3U_PLAYLIST,
+ // MTP_FORMAT_MPL_PLAYLIST,
+ // MTP_FORMAT_PLS_PLAYLIST,
};
MtpServer::MtpServer(int fd, const char* databasePath)
@@ -420,9 +446,7 @@ MtpResponseCode MtpServer::doSendObjectInfo() {
mData.getString(modified); // date modified
// keywords follow
- time_t createdTime, modifiedTime;
- if (!parseDateTime(created, createdTime))
- createdTime = 0;
+ time_t modifiedTime;
if (!parseDateTime(modified, modifiedTime))
modifiedTime = 0;
printf("SendObjectInfo format: %04X size: %d name: %s, created: %s, modified: %s\n",
@@ -432,11 +456,17 @@ format, mSendObjectFileSize, (const char*)name, (const char*)created, (const cha
path += "/";
path += (const char *)name;
- MtpObjectHandle handle = mDatabase->addFile((const char*)path,
- format, parent, storageID, mSendObjectFileSize,
- createdTime, modifiedTime);
- if (handle == kInvalidObjectHandle)
+ mDatabase->beginTransaction();
+ MtpObjectHandle handle = mDatabase->addFile((const char*)path, format, parent, storageID,
+ mSendObjectFileSize, modifiedTime);
+ if (handle == kInvalidObjectHandle) {
+ mDatabase->rollbackTransaction();
return MTP_RESPONSE_GENERAL_ERROR;
+ }
+ uint32_t table = MtpDatabase::getTableForFile(format);
+ if (table == kObjectHandleTableAudio)
+ handle = mDatabase->addAudioFile(handle);
+ mDatabase->commitTransaction();
if (format == MTP_FORMAT_ASSOCIATION) {
mode_t mask = umask(0);