diff --git a/camlibs/ptp2/device-flags.h b/camlibs/ptp2/device-flags.h index 1b842c055..44090328b 100644 --- a/camlibs/ptp2/device-flags.h +++ b/camlibs/ptp2/device-flags.h @@ -244,4 +244,14 @@ * This flag is like DEVICE_FLAG_OGG_IS_UNKNOWN but for FLAC * files instead. Using the unknown filetype for FLAC files. */ -#define DEVICE_FLAG_FLAC_IS_UNKNOWN 0x01000000 +#define DEVICE_FLAG_FLAC_IS_UNKNOWN 0x01000000 +/** + * Device needs unique filenames, no two files can be + * named the same string. + */ +#define DEVICE_FLAG_UNIQUE_FILENAMES 0x02000000 +/** + * This flag performs some random magic on the BlackBerry + * device to switch from USB mass storage to MTP mode we think. + */ +#define DEVICE_FLAG_SWITCH_MODE_BLACKBERRY 0x04000000 diff --git a/camlibs/ptp2/music-players.h b/camlibs/ptp2/music-players.h index b007f4c56..10973a0be 100644 --- a/camlibs/ptp2/music-players.h +++ b/camlibs/ptp2/music-players.h @@ -85,7 +85,11 @@ DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL }, // Reported by Todor Gyumyushev { "ZiiLABS", 0x041e, "Zii EGG", 0x6000, - DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL }, + DEVICE_FLAG_UNLOAD_DRIVER | + DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | + DEVICE_FLAG_NO_RELEASE_INTERFACE | + DEVICE_FLAG_ALWAYS_PROBE_DESCRIPTOR | + DEVICE_FLAG_CANNOT_HANDLE_DATEMODIFIED }, /* * Samsung @@ -216,9 +220,8 @@ { "Samsung", 0x04e8, "GT-S5230", 0xe20c, DEVICE_FLAG_NONE }, - /* - * Intel + * Microsoft & Intel */ { "Intel", 0x045e, "Bandon Portable Media Center", 0x00c9, DEVICE_FLAG_NONE }, // Reported by Tadimarri Sarath @@ -226,6 +229,10 @@ // the early PMC development days when Intel and Microsoft were // partnering. { "Microsoft", 0x045e, "Windows MTP Simulator", 0x0622, DEVICE_FLAG_NONE }, + // Reported by Edward Hutchins (used for Zune HDs) + { "Microsoft", 0x045e, "Zune HD", 0x063e, DEVICE_FLAG_NONE }, + // Reported by Farooq Zaman (used for all Zunes) + { "Microsoft", 0x045e, "Zune", 0x0710, DEVICE_FLAG_NONE }, /* * JVC @@ -362,6 +369,12 @@ DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_NO_RELEASE_INTERFACE | DEVICE_FLAG_ALWAYS_PROBE_DESCRIPTOR | DEVICE_FLAG_CANNOT_HANDLE_DATEMODIFIED }, + // Reported by anonymous SourceForge user + { "SanDisk", 0x0781, "Sansa Clip+", 0x74d0, + DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | + DEVICE_FLAG_NO_RELEASE_INTERFACE | DEVICE_FLAG_ALWAYS_PROBE_DESCRIPTOR | + DEVICE_FLAG_CANNOT_HANDLE_DATEMODIFIED}, + /* * iRiver @@ -550,13 +563,7 @@ // This device is USB 2.0 only. Broken pipe on closing. { "Memorex", 0x10d6, "MMP 8585/8586", 0x2300, DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_NO_RELEASE_INTERFACE}, - - /* - * Microsoft - */ - // Reported by Farooq Zaman (used for all Zunes) - { "Microsoft", 0x045e, "Zune", 0x0710, DEVICE_FLAG_NONE }, - + /* * Sirius */ @@ -566,9 +573,11 @@ /* * Canon - * This is actually a camera, but it has a Microsoft device descriptor - * and reports itself as supporting the MTP extension. + * These are actually cameras, but they have a Microsoft device descriptor + * and reports themselves as supporting the MTP extension. */ + { "Canon", 0x04a9, "Ixus Digital 700 (PTP/MTP mode)", 0x30f2, + DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL }, { "Canon", 0x04a9, "PowerShot A640 (PTP/MTP mode)", 0x3139, DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL }, @@ -805,48 +814,68 @@ // Reported by Alessandro Radaelli { "Sony", 0x054c, "Walkman NWZ-A815/NWZ-A818", 0x0325, DEVICE_FLAG_UNLOAD_DRIVER | - DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST }, + DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | + DEVICE_FLAG_UNIQUE_FILENAMES }, // Reported by anonymous Sourceforge user. - { "Sony", 0x054c, "Walkman NWZ-S516", 0x0326, DEVICE_FLAG_UNLOAD_DRIVER | - DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST }, + { "Sony", 0x054c, "Walkman NWZ-S516", 0x0326, + DEVICE_FLAG_UNLOAD_DRIVER | + DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | + DEVICE_FLAG_UNIQUE_FILENAMES }, // Reported by Endre Oma { "Sony", 0x054c, "Walkman NWZ-S615F/NWZ-S616F/NWZ-S618F", 0x0327, DEVICE_FLAG_UNLOAD_DRIVER | - DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST }, + DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | + DEVICE_FLAG_UNIQUE_FILENAMES }, // Reported by Jean-Marc Bourguet - { "Sony", 0x054c, "Walkman NWZ-S716F", 0x035a, DEVICE_FLAG_UNLOAD_DRIVER | - DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST }, + { "Sony", 0x054c, "Walkman NWZ-S716F", 0x035a, + DEVICE_FLAG_UNLOAD_DRIVER | + DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | + DEVICE_FLAG_UNIQUE_FILENAMES }, // Reported by Anon SF User / Anthon van der Neut { "Sony", 0x054c, "Walkman NWZ-A826/NWZ-A828/NWZ-A829", 0x035b, DEVICE_FLAG_UNLOAD_DRIVER | - DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST }, + DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | + DEVICE_FLAG_UNIQUE_FILENAMES }, // Reported by Niek Klaverstijn { "Sony", 0x054c, "Walkman NWZ-A726/NWZ-A728/NWZ-A768", 0x035c, DEVICE_FLAG_UNLOAD_DRIVER | - DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST }, + DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | + DEVICE_FLAG_UNIQUE_FILENAMES }, // Reported by Mehdi AMINI - { "Sony", 0x054c, "Walkman NWZ-B135", 0x036e, DEVICE_FLAG_UNLOAD_DRIVER | - DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST }, + { "Sony", 0x054c, "Walkman NWZ-B135", 0x036e, + DEVICE_FLAG_UNLOAD_DRIVER | + DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | + DEVICE_FLAG_UNIQUE_FILENAMES }, // Reported by - { "Sony", 0x054c, "Walkman NWZ-E436F", 0x0385, DEVICE_FLAG_UNLOAD_DRIVER | - DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST }, + { "Sony", 0x054c, "Walkman NWZ-E436F", 0x0385, + DEVICE_FLAG_UNLOAD_DRIVER | + DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | + DEVICE_FLAG_UNIQUE_FILENAMES }, // Reported by Michael Wilkinson - { "Sony", 0x054c, "Walkman NWZ-W202", 0x0388, DEVICE_FLAG_UNLOAD_DRIVER | - DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST }, + { "Sony", 0x054c, "Walkman NWZ-W202", 0x0388, + DEVICE_FLAG_UNLOAD_DRIVER | + DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | + DEVICE_FLAG_UNIQUE_FILENAMES }, // Reported by Ondrej Sury - { "Sony", 0x054c, "Walkman NWZ-S739F", 0x038c, DEVICE_FLAG_UNLOAD_DRIVER | - DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST }, + { "Sony", 0x054c, "Walkman NWZ-S739F", 0x038c, + DEVICE_FLAG_UNLOAD_DRIVER | + DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | + DEVICE_FLAG_UNIQUE_FILENAMES }, // Reported by Marco Filipe Nunes Soares Abrantes Pereira - { "Sony", 0x054c, "Walkman NWZ-S638F", 0x038e, DEVICE_FLAG_UNLOAD_DRIVER | - DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST }, + { "Sony", 0x054c, "Walkman NWZ-S638F", 0x038e, + DEVICE_FLAG_UNLOAD_DRIVER | + DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | + DEVICE_FLAG_UNIQUE_FILENAMES }, // Reported by Elliot { "Sony", 0x054c, "Walkman NWZ-X1050B/NWZ-X1060B", 0x0397, DEVICE_FLAG_UNLOAD_DRIVER | - DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST }, + DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | + DEVICE_FLAG_UNIQUE_FILENAMES }, // Reported by Silvio J. Gutierrez { "Sony", 0x054c, "Walkman NWZ-X1051/NWZ-X1061", 0x0398, DEVICE_FLAG_UNLOAD_DRIVER | - DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST }, + DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | + DEVICE_FLAG_UNIQUE_FILENAMES }, /* @@ -961,6 +990,14 @@ // Reported by Sense Hofstede { "Perception Digital, Ltd", 0x0aa6, "Gigaware GX400", 0x9702, DEVICE_FLAG_NONE }, + + /* + * RIM's BlackBerry + */ + // Reported by Nicolas VIVIEN + { "RIM", 0x0fca, "BlackBerry Storm", 0x8007, DEVICE_FLAG_UNLOAD_DRIVER | + DEVICE_FLAG_SWITCH_MODE_BLACKBERRY | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL }, + /* * Other strange stuff. */