MTP: Add support for PTP variant of GetDeviceInfo result.

Change-Id: I09f86fda768b7697665e401adb9516588859bf59
Signed-off-by: Mike Lockwood <lockwood@android.com>
diff --git a/media/mtp/MtpServer.cpp b/media/mtp/MtpServer.cpp
index 9ec73c4..bc04e8c 100644
--- a/media/mtp/MtpServer.cpp
+++ b/media/mtp/MtpServer.cpp
@@ -95,10 +95,11 @@
     MTP_EVENT_STORE_REMOVED,
 };
 
-MtpServer::MtpServer(int fd, MtpDatabase* database,
+MtpServer::MtpServer(int fd, MtpDatabase* database, bool ptp,
                     int fileGroup, int filePerm, int directoryPerm)
     :   mFD(fd),
         mDatabase(database),
+        mPtp(ptp),
         mFileGroup(fileGroup),
         mFilePermission(filePerm),
         mDirectoryPermission(directoryPerm),
@@ -426,9 +427,20 @@
 
     // fill in device info
     mData.putUInt16(MTP_STANDARD_VERSION);
-    mData.putUInt32(6); // MTP Vendor Extension ID
+    if (mPtp) {
+        mData.putUInt32(0);
+    } else {
+        // MTP Vendor Extension ID
+        mData.putUInt32(6);
+    }
     mData.putUInt16(MTP_STANDARD_VERSION);
-    string.set("microsoft.com: 1.0; android.com: 1.0;");
+    if (mPtp) {
+        // no extensions
+        string.set("");
+    } else {
+        // MTP extensions
+        string.set("microsoft.com: 1.0; android.com: 1.0;");
+    }
     mData.putString(string); // MTP Extensions
     mData.putUInt16(0); //Functional Mode
     mData.putAUInt16(kSupportedOperationCodes,
diff --git a/media/mtp/MtpServer.h b/media/mtp/MtpServer.h
index 859a18e..dfa8258 100644
--- a/media/mtp/MtpServer.h
+++ b/media/mtp/MtpServer.h
@@ -39,6 +39,9 @@
 
     MtpDatabase*        mDatabase;
 
+    // appear as a PTP device
+    bool                mPtp;
+
     // group to own new files and folders
     int                 mFileGroup;
     // permissions for new files and directories
@@ -87,7 +90,7 @@
     Vector<ObjectEdit*>  mObjectEditList;
 
 public:
-                        MtpServer(int fd, MtpDatabase* database,
+                        MtpServer(int fd, MtpDatabase* database, bool ptp,
                                     int fileGroup, int filePerm, int directoryPerm);
     virtual             ~MtpServer();