summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Walleij <triad@df.lth.se>2009-01-02 01:44:00 +0000
committerLinus Walleij <triad@df.lth.se>2009-01-02 01:44:00 +0000
commit2242b028c1ed7864cd5118d6fa3db47aa95ae1a2 (patch)
treef2bc9aa7b1dcbb50e5983de80b5aee897b0c04be
parent8aba06d532cc9f9d061a39420a4186ce834d75a7 (diff)
downloadlibmtp-2242b028c1ed7864cd5118d6fa3db47aa95ae1a2.tar.gz
Several new devices and fixes
-rw-r--r--ChangeLog11
-rw-r--r--README3
-rw-r--r--examples/common.h2
-rw-r--r--examples/connect.c12
-rw-r--r--examples/newfolder.c4
-rw-r--r--examples/sendfile.c4
-rw-r--r--examples/sendtr.c6
-rw-r--r--logs/mtp-detect-iriver-t7-volcano.txt207
-rw-r--r--logs/mtp-detect-samsung-yp-q1.txt429
-rw-r--r--src/music-players.h21
-rw-r--r--src/unicode.h2
11 files changed, 685 insertions, 16 deletions
diff --git a/ChangeLog b/ChangeLog
index 089fa3e..64a44b8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2009-01-02 Linus Walleij <triad@df.lth.se>
+
+ * examples/connect.c: usage patch from Riley Patterson.
+ * examples/sendtr.c: dito. Plus only try to add track to an
+ album if and only if an album name was given.
+ * examples/newfolder.c: real bad bug fixed, didn't even work
+ due to bad args check.
+ * examples/sendfile.c: another bad bug...
+ * examples/common.h: include <config.h> not "config.h"
+ * src/unicode.h: no reason for this to include config.h!
+
2008-12-21 Linus Walleij <triad@df.lth.se>
* Release libmtp 0.3.5.
diff --git a/README b/README
index 024a125..44ea346 100644
--- a/README
+++ b/README
@@ -465,6 +465,9 @@ cannot test your solution.
"blacklist usb-storage". Some have even removed the
"usb-storage.ko" (kernel module file) to avoid loading.
+* Sandisk Sansa Fuze has three modes: auto, MTP or mass storage
+ (MSC). Please set it to MTP to avoid problems with libmtp.
+
* The iriver devices (possibly all of them) cannot handle the
enhanced GetObjectPropList MTP command (0x9805) properly. So
they have been banned from using it.
diff --git a/examples/common.h b/examples/common.h
index 26f3bcf..ec41bb8 100644
--- a/examples/common.h
+++ b/examples/common.h
@@ -22,7 +22,7 @@
*/
#include <libmtp.h>
#ifndef _MSC_VER
-#include "config.h"
+#include <config.h>
#ifdef HAVE_GETOPT_H
#include <getopt.h>
#else
diff --git a/examples/connect.c b/examples/connect.c
index e6c4fbd..157dcbb 100644
--- a/examples/connect.c
+++ b/examples/connect.c
@@ -3,7 +3,7 @@
* Main programs implementing several utilities in one.
*
* Copyright (C) 2006 Chris A. Debenham <chris@adebenham.com>
- * Copyright (C) 2008 Linus Walleij <triad@df.lth.se>
+ * Copyright (C) 2008-2009 Linus Walleij <triad@df.lth.se>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -76,11 +76,6 @@ usage(void)
int main (int argc, char **argv)
{
- if ( argc < 2 ) {
- usage ();
- return 1;
- }
-
checklang();
LIBMTP_Init();
@@ -106,6 +101,11 @@ int main (int argc, char **argv)
} else if ((strncmp(basename(argv[0]),"mtp-sendtr",10) == 0) || (strncmp(basename(argv[0]),"sendtr",6) == 0)) {
sendtrack_command(argc, argv);
} else {
+ if ( argc < 2 ) {
+ usage ();
+ return 1;
+ }
+
while (1) {
int option_index = 0;
static struct option long_options[] = {
diff --git a/examples/newfolder.c b/examples/newfolder.c
index 420fe37..198e10f 100644
--- a/examples/newfolder.c
+++ b/examples/newfolder.c
@@ -2,7 +2,7 @@
* \file newfolder.c
* Example program to create a folder on the device.
*
- * Copyright (C) 2006-2007 Linus Walleij <triad@df.lth.se>
+ * Copyright (C) 2006-2009 Linus Walleij <triad@df.lth.se>
* Copyright (C) 2006 Chris A. Debenham <chris@adebenham.com>
*
* This library is free software; you can redistribute it and/or
@@ -35,7 +35,7 @@ void newfolder_command (int argc, char **argv)
{
uint32_t newid;
- if(argc != 3) {
+ if(argc != 4) {
printf("Usage: newfolder name <parent> <storage>\n");
printf(" parent = parent folder or 0 to create the new folder in the root dir\n");
printf(" storage = storage id or 0 to create the new folder on the primary storage\n");
diff --git a/examples/sendfile.c b/examples/sendfile.c
index dd52ad3..a98a3da 100644
--- a/examples/sendfile.c
+++ b/examples/sendfile.c
@@ -2,7 +2,7 @@
* \file sendfile.c
* Example program to send an arbitrary file to a device.
*
- * Copyright (C) 2005-2007 Linus Walleij <triad@df.lth.se>
+ * Copyright (C) 2005-2009 Linus Walleij <triad@df.lth.se>
* Copyright (C) 2006 Chris A. Debenham <chris@adebenham.com>
*
* This library is free software; you can redistribute it and/or
@@ -85,7 +85,7 @@ int sendfile_function(char * from_path, char *to_path)
genfile->filesize = filesize;
genfile->filename = strdup(filename);
genfile->filetype = find_filetype (filename);
- genfile->parent_id = 0;
+ genfile->parent_id = parent_id;
genfile->storage_id = 0;
printf("Sending file...\n");
diff --git a/examples/sendtr.c b/examples/sendtr.c
index 484cc3e..b99d4d9 100644
--- a/examples/sendtr.c
+++ b/examples/sendtr.c
@@ -5,7 +5,7 @@
* based on Enrique Jorreto Ledesma's work on the original program by
* Shaun Jackman and Linus Walleij.
*
- * Copyright (C) 2003-2008 Linus Walleij <triad@df.lth.se>
+ * Copyright (C) 2003-2009 Linus Walleij <triad@df.lth.se>
* Copyright (C) 2003-2005 Shaun Jackman
* Copyright (C) 2003-2005 Enrique Jorrete Ledesma
* Copyright (C) 2006 Chris A. Debenham <chris@adebenham.com>
@@ -369,7 +369,8 @@ int sendtrack_function(char * from_path, char * to_path, char *partist, char *pa
}
/* Add here add to album call */
- ret = add_track_to_album(albuminfo, trackmeta);
+ if (palbum)
+ ret = add_track_to_album(albuminfo, trackmeta);
LIBMTP_destroy_album_t(albuminfo);
LIBMTP_destroy_track_t(trackmeta);
@@ -443,6 +444,7 @@ void sendtrack_command (int argc, char **argv) {
if ( argc != 2 ) {
printf("You need to pass a filename and destination.\n");
sendtrack_usage();
+ return;
}
checklang();
diff --git a/logs/mtp-detect-iriver-t7-volcano.txt b/logs/mtp-detect-iriver-t7-volcano.txt
new file mode 100644
index 0000000..03ead6e
--- /dev/null
+++ b/logs/mtp-detect-iriver-t7-volcano.txt
@@ -0,0 +1,207 @@
+~$ mtp-detect
+
+libmtp version: 0.3.3
+
+Listing raw device(s)
+ Found 1 device(s):
+ 1043:1143 @ bus 0, dev 9
+Attempting to connect device(s)
+USB low-level info:
+ Using kernel interface "usbfs"
+ bcdUSB: 512
+ bDeviceClass: 255
+ bDeviceSubClass: 0
+ bDeviceProtocol: 0
+ idVendor: 1043
+ idProduct: 1143
+ IN endpoint maxpacket: 512 bytes
+ OUT endpoint maxpacket: 512 bytes
+ Raw device info:
+ Bus location: 0
+ Device number: 9
+ Device entry info:
+ Vendor: (null)
+ Vendor id: 0x1043
+ Product: (null)
+ Vendor id: 0x1143
+ Device flags: 0x00000000
+Microsoft device descriptor 0xee:
+ 0000: 1203 4d00 5300 4600 5400 3100 3000 3000 ..M.S.F.T.1.0.0.
+ 0010: fe00 ..
+Microsoft device response to control message 1, CMD 0xfe:
+ 0000: 2800 0000 0001 0400 0100 0000 0000 0000 (...............
+ 0010: 0001 4d54 5000 0000 0000 0000 0000 0000 ..MTP...........
+ 0020: 0000 0000 0000 0000 ........
+Microsoft device response to control message 2, CMD 0xfe:
+ 0000: 2800 0000 0001 0400 0100 0000 0000 0000 (...............
+ 0010: 0001 4d54 5000 0000 0000 0000 0000 0000 ..MTP...........
+ 0020: 0000 0000 0000 0000 ........
+Device info:
+ Manufacturer: iriver
+ Model: iriver T7
+ Device version: MTP-1.01-N-ENG
+ Serial number: A00000600001
+ Vendor extension ID: 0x00000006
+ Vendor extension description: microsoft.com: 1.0;
+microsoft.com/WMDRMPD: 10.1; microsoft.com/WMPPD: 10.0;
+ Detected object size: 64 bits
+Supported operations:
+ 1001: get device info
+ 1002: Open session
+ 1003: Close session
+ 1004: Get storage IDs
+ 1005: Get storage info
+ 1006: Get number of objects
+ 1007: Get object handles
+ 1008: Get object info
+ 1009: Get object
+ 100b: Delete object
+ 100c: Send object info
+ 100d: Send object
+ 100f: Format storage
+ 1010: Reset device
+ 1014: Get device property description
+ 1015: Get device property value
+ 1016: Set device property value
+ 9801: Get object properties supported
+ 9802: Get object property description
+ 9803: Get object property value
+ 9804: Set object property value
+ 9810: Get object references
+ 9811: Set object references
+ 9101: Get secure time challenge
+ 9102: Get secure time response
+ 9103: Set license response
+ 9104: Get sync list
+ 9105: Send meter challenge query
+ 9106: Get meter challenge
+ 9107: Get meter response
+ 9108: Clean data store
+ 9109: Get license state
+Events supported:
+ 0x4004
+ 0x4005
+Device Properties Supported:
+ 0xd101: Secure Time
+ 0xd102: Device Certificate
+Playable File (Object) Types and Object Properties Supported:
+ 3000: Undefined Type
+ dc01: StorageID UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc02: ObjectFormat UINT16 data type ANY 16BIT VALUE form READ ONLY
+ dc03: ProtectionStatus UINT16 data type enumeration: 0, 1, READ ONLY
+ dc04: ObjectSize UINT64 data type READ ONLY
+ dc07: ObjectFileName STRING data type REGULAR EXPRESSION FORM GET/SET
+ dc0b: ParentObject UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc41: PersistantUniqueObjectIdentifier UINT128 data type READ ONLY
+ dc44: Name STRING data type GET/SET
+ dc4f: NonConsumable UINT8 data type enumeration: 0, 1, GET/SET
+ 3001: Association/Directory
+ dc01: StorageID UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc02: ObjectFormat UINT16 data type ANY 16BIT VALUE form READ ONLY
+ dc03: ProtectionStatus UINT16 data type enumeration: 0, 1, READ ONLY
+ dc04: ObjectSize UINT64 data type READ ONLY
+ dc07: ObjectFileName STRING data type REGULAR EXPRESSION FORM GET/SET
+ dc0b: ParentObject UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc41: PersistantUniqueObjectIdentifier UINT128 data type READ ONLY
+ dc44: Name STRING data type GET/SET
+ dc4f: NonConsumable UINT8 data type enumeration: 0, 1, GET/SET
+ 3009: MP3
+ dc01: StorageID UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc02: ObjectFormat UINT16 data type ANY 16BIT VALUE form READ ONLY
+ dc03: ProtectionStatus UINT16 data type enumeration: 0, 1, READ ONLY
+ dc04: ObjectSize UINT64 data type READ ONLY
+ dc07: ObjectFileName STRING data type REGULAR EXPRESSION FORM GET/SET
+ dc0b: ParentObject UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc41: PersistantUniqueObjectIdentifier UINT128 data type READ ONLY
+ dc44: Name STRING data type GET/SET
+ dc46: Artist STRING data type GET/SET
+ dc4f: NonConsumable UINT8 data type enumeration: 0, 1, GET/SET
+ dc8a: Rating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET
+ dc8b: Track UINT16 data type ANY 16BIT VALUE form GET/SET
+ dc8c: Genre STRING data type GET/SET
+ dc96: Composer STRING data type GET/SET
+ dc9a: AlbumName STRING data type GET/SET
+ de93: SampleRate UINT32 data type range: MIN 8000, MAX 48000, STEP 50 READ ONLY
+ de94: NumberOfChannels UINT16 data type enumeration: 2, READ ONLY
+ de9a: AudioBitRate UINT32 data type range: MIN 5000, MAX 384000, STEP 1 READ ONLY
+ b901: WMA
+ dc01: StorageID UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc02: ObjectFormat UINT16 data type ANY 16BIT VALUE form READ ONLY
+ dc03: ProtectionStatus UINT16 data type enumeration: 0, 1, READ ONLY
+ dc04: ObjectSize UINT64 data type READ ONLY
+ dc07: ObjectFileName STRING data type REGULAR EXPRESSION FORM GET/SET
+ dc0b: ParentObject UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc41: PersistantUniqueObjectIdentifier UINT128 data type READ ONLY
+ dc44: Name STRING data type GET/SET
+ dc46: Artist STRING data type GET/SET
+ dc4f: NonConsumable UINT8 data type enumeration: 0, 1, GET/SET
+ dc8a: Rating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET
+ dc8b: Track UINT16 data type ANY 16BIT VALUE form GET/SET
+ dc8c: Genre STRING data type GET/SET
+ dc96: Composer STRING data type GET/SET
+ dc9a: AlbumName STRING data type GET/SET
+ de93: SampleRate UINT32 data type range: MIN 8000, MAX 48000, STEP 50 READ ONLY
+ de94: NumberOfChannels UINT16 data type enumeration: 2, READ ONLY
+ de9a: AudioBitRate UINT32 data type range: MIN 5000, MAX 384000, STEP 1 READ ONLY
+ ba03: Abstract Audio Album
+ dc01: StorageID UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc02: ObjectFormat UINT16 data type ANY 16BIT VALUE form READ ONLY
+ dc03: ProtectionStatus UINT16 data type enumeration: 0, 1, READ ONLY
+ dc04: ObjectSize UINT64 data type READ ONLY
+ dc07: ObjectFileName STRING data type REGULAR EXPRESSION FORM GET/SET
+ dc0b: ParentObject UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc41: PersistantUniqueObjectIdentifier UINT128 data type READ ONLY
+ dc44: Name STRING data type GET/SET
+ dc4f: NonConsumable UINT8 data type enumeration: 0, 1, GET/SET
+ dc81: RepresentativeSampleFormat UINT16 data type enumeration: READ ONLY
+ dc8c: Genre STRING data type GET/SET
+ ba05: Abstract Audio Video Playlist
+ dc01: StorageID UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc02: ObjectFormat UINT16 data type ANY 16BIT VALUE form READ ONLY
+ dc03: ProtectionStatus UINT16 data type enumeration: 0, 1, READ ONLY
+ dc04: ObjectSize UINT64 data type READ ONLY
+ dc07: ObjectFileName STRING data type REGULAR EXPRESSION FORM GET/SET
+ dc0b: ParentObject UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc41: PersistantUniqueObjectIdentifier UINT128 data type READ ONLY
+ dc44: Name STRING data type GET/SET
+ dc4f: NonConsumable UINT8 data type enumeration: 0, 1, GET/SET
+Storage Devices:
+ StorageID: 0x00010001
+ StorageType: 0x0004 removable RAM storage
+ FilesystemType: 0x0002 generic hierarchical
+ AccessCapability: 0x0000 read/write
+ MaxCapacity: 4059193344
+ FreeSpaceInBytes: 4059160576
+ FreeSpaceInObjects: 4294967295
+ StorageDescription: iriver T7 files
+ VolumeIdentifier: (null)
+Special directories:
+ Default music folder: 0x00000000
+ Default playlist folder: 0x00000000
+ Default picture folder: 0x00000000
+ Default video folder: 0x00000000
+ Default organizer folder: 0x00000000
+ Default zencast folder: 0x00000000
+ Default album folder: 0x00000000
+ Default text folder: 0x00000000
+MTP-specific device properties:
+ Friendly name: (NULL)
+ Synchronization partner: (NULL)
+libmtp supported (playable) filetypes:
+ ISO MPEG-1 Audio Layer 3
+ Microsoft Windows Media Audio
+
+Secure Time:
+<DRMCLOCK type="status"><VALUE>#20080114
+19:26:48Z#</VALUE><FLAG>DRM_CLK_NOT_SET</FLAG></DRMCLOCK>
+
+Device Certificate:
+<DEVCERT version="1.0"><CERTIFICATE type="DEVICE"><DATA><UNIQUEID
+private="1">nrDQMNYHb0qoz1fqYUDqxmFA6sY=</UNIQUEID><PUBLICKEY
+private="1">WbWEVwzD/6k56XKst4OnRTXFJSFurpcN/nEqZeM8/1nMhaqcqrUEQw==</PUBLICKEY><KEYDATA>yZBMmoENcUJrZlqoKjB3RqWbZBk=</KEYDATA></DATA><MSDRM_SIGNATURE_VALUE>WbWEVwzD/6k56XKst4OnRTXFJSENGS5l+4hHr9gLDu1ThP1y59iwSQ==</MSDRM_SIGNATURE_VALUE><SYMSIGNATURE>AZDXn3sieh4rYaQNQl/MdIAKcL0=</SYMSIGNATURE></CERTIFICATE><FALLBACK><SECURITYVERSION>2.4.111.31</SECURITYVERSION><CERTIFICATE
+private="1">WbWEVwzD/6k56XKst4OnRTXFJSFurpcN/nEqZeM8/1nMhaqcqrUEQwIEbx9ZtYRXDMP/qTnpcqy3g6dFNcUlIf4NogOPQJYt/s2w7iE5BAM/r9Iq</CERTIFICATE></FALLBACK><CERTIFICATE
+type="GROUP"><DATA><NAME>T7</NAME><MANUFACTURER>iriver</MANUFACTURER><MAKE>iriver</MAKE><DISTRIBUTOR>iriver</DISTRIBUTOR><MODEL>T7</MODEL><SECURITYLEVEL>2000</SECURITYLEVEL><HARDWARE_VER_MAJOR>1.0</HARDWARE_VER_MAJOR><HARDWARE_VER_MINOR>1.0</HARDWARE_VER_MINOR><FIRMWARE_VER_MAJOR>1.0</FIRMWARE_VER_MAJOR><FIRMWARE_VER_MINOR>1.0</FIRMWARE_VER_MINOR><FEATURES><CLOCK>2</CLOCK><SECURECLOCK><URL>http://go.microsoft.com/fwlink/?LinkId=25817</URL><PUBLICKEY>!CNhvvz1WaNV1AFUmetxkvm9iD4UrE9cnGUi!qcqdxMiXmD1*ikYGA==</PUBLICKEY></SECURECLOCK><METERING>1</METERING><LICENSE_ACQ>0</LICENSE_ACQ><LICENSE_SYNC>1</LICENSE_SYNC><ENCRYPTION>0</ENCRYPTION><SYMMETRIC_OPT>0</SYMMETRIC_OPT></FEATURES><LIMITS><MAXCHAINDEPTH>2</MAXCHAINDEPTH><MAXLICENSESIZE>6656</MAXLICENSESIZE><MAXHEADERSIZE>5120</MAXHEADERSIZE></LIMITS><PUBLICKEY>3BpF6JtA7FbR1nASAkawbHYRtEWT5o8TrP7a2L6Bvxb7/P0+i5NLLA==</PUBLICKEY></DATA><MSDRM_SIGNATURE_VALUE>WRTND1A2JBpLj8Qsi40ZqMRWx4h/7FCW2OCTmtILKq2DJfeA99WGVg==</MSDRM_SIGNATURE_VALUE></CERTIFICATE><CERTIFICATE
+type="AUTHORIZATION"><DATA><SECURITYLEVEL>2000</SECURITYLEVEL><AUTH_ID>2691</AUTH_ID><PUBLICKEY>WmzVzzbfShRhYsmIVMx/NHFUoxx4e0Mw84ZZX/Jkb5TDaeO2+Y3whA==</PUBLICKEY></DATA><MSDRM_SIGNATURE_VALUE>GU1KjL5g1ZWk23mePnHrT1lJSWscoAt36qwgV2jL+BX5R/uUTr3ADg==</MSDRM_SIGNATURE_VALUE></CERTIFICATE><CERTIFICATE
+type="AUTHORIZATION_ROOT"><DATA><AUTH_ID>1</AUTH_ID><PUBLICKEY>a1t3hxrg!qbOgktnbYaEEi4teCse!gz6RvTPuC!zizKJlpU7xoduSw==</PUBLICKEY></DATA><MSDRM_SIGNATURE_VALUE>97tzJe/maHwwV07tt0FoMe84Hn9adZfKZ7PJ9j3dWh11FiAzG8jxJA==</MSDRM_SIGNATURE_VALUE></CERTIFICATE></DEVCERT>
+WMPInfo.xml Does not exist on this device
+OK.
diff --git a/logs/mtp-detect-samsung-yp-q1.txt b/logs/mtp-detect-samsung-yp-q1.txt
new file mode 100644
index 0000000..3bab299
--- /dev/null
+++ b/logs/mtp-detect-samsung-yp-q1.txt
@@ -0,0 +1,429 @@
+PTP: Opening session
+PTP_ERROR_IO: Trying again after re-initializing USB interface
+PTP: Opening session
+libmtp version: 0.3.3
+
+Listing raw device(s)
+ Found 1 device(s):
+ Samsung: YP-Q1 (04e8:5115) @ bus 0, dev 8
+Attempting to connect device(s)
+USB low-level info:
+ Using kernel interface "usbfs"
+ bcdUSB: 512
+ bDeviceClass: 0
+ bDeviceSubClass: 0
+ bDeviceProtocol: 0
+ idVendor: 04e8
+ idProduct: 5115
+ IN endpoint maxpacket: 512 bytes
+ OUT endpoint maxpacket: 512 bytes
+ Raw device info:
+ Bus location: 0
+ Device number: 8
+ Device entry info:
+ Vendor: Samsung
+ Vendor id: 0x04e8
+ Product: YP-Q1
+ Vendor id: 0x5115
+ Device flags: 0x00000002
+Microsoft device descriptor 0xee:
+ 0000: 1203 4d00 5300 4600 5400 3100 3000 3000 ..M.S.F.T.1.0.0.
+ 0010: 0100 ..
+Device info:
+ Manufacturer: SAMSUNG
+ Model: Q1
+ Device version: 1.23
+ Serial number: 9A255DFB0019261397A0DE7CF0008F16
+ Vendor extension ID: 0x00000006
+ Vendor extension description: microsoft.com/WMPPD: 11.0;microsoft.com/WMDRMPD: 10.1;microsoft.com/WMPPD: 10.0;microsoft.com/AAVT: 1.0;microsoft.com/WMDRMND: 1.0;audible.com: 1.0;
+ Detected object size: 64 bits
+Supported operations:
+ 1001: get device info
+ 1002: Open session
+ 1003: Close session
+ 1004: Get storage IDs
+ 1005: Get storage info
+ 1006: Get number of objects
+ 1007: Get object handles
+ 1008: Get object info
+ 1009: Get object
+ 100b: Delete object
+ 100c: Send object info
+ 100d: Send object
+ 100f: Format storage
+ 1010: Reset device
+ 1014: Get device property description
+ 1015: Get device property value
+ 1016: Set device property value
+ 9810: Get object references
+ 9811: Set object references
+ 9802: Get object property description
+ 9801: Get object properties supported
+ 9803: Get object property value
+ 9804: Set object property value
+ 9805: Get object property list
+ 9806: Set object property list
+ 101b: Get partial object
+ 9201: Report Added/Deleted Items
+ 9202: Report Acquired Items
+ 9101: Get secure time challenge
+ 9102: Get secure time response
+ 9103: Set license response
+ 9104: Get sync list
+ 9105: Send meter challenge query
+ 9106: Get meter challenge
+ 9107: Get meter response
+ 9108: Clean data store
+ 9109: Get license state
+ 910a: Send WMDRM-PD Command
+ 910b: Send WMDRM-PD Request
+ 9170: Open Media Session
+ 9171: Close Media Session
+ 9172: Get Next Data Block
+ 9173: Set Current Time Position
+ 9180: Send Registration Request
+ 9181: Get Registration Response
+ 9182: Get Proximity Challenge
+ 9183: Send Proximity Response
+ 9184: Send WMDRM-ND License Request
+ 9185: Get WMDRM-ND License Response
+Events supported:
+ 0x4004
+ 0x4005
+Device Properties Supported:
+ 0x5001: Battery Level
+ 0xd401: Synchronization Partner
+ 0xd402: Friendly Device Name
+ 0xd101: Secure Time
+ 0xd102: Device Certificate
+ 0xd103: Revocation Info
+Playable File (Object) Types and Object Properties Supported:
+ 3001: Association/Directory
+ dc44: Name STRING data type GET/SET
+ dc01: StorageID UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc04: ObjectSize UINT64 data type READ ONLY
+ dc07: ObjectFileName STRING data type REGULAR EXPRESSION FORM GET/SET
+ dc09: DateModified STRING data type DATETIME FORM GET/SET
+ dc4f: NonConsumable UINT8 data type enumeration: 0, 1, GET/SET
+ dc02: ObjectFormat UINT16 data type ANY 16BIT VALUE form READ ONLY
+ dc0b: ParentObject UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc41: PersistantUniqueObjectIdentifier UINT128 data type READ ONLY
+ dc03: ProtectionStatus UINT16 data type enumeration: 0, 1, READ ONLY
+ dc97: EffectiveRating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET
+ dc8a: Rating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET
+ dc91: UseCount UINT32 data type ANY 32BIT VALUE form GET/SET
+ d901: BuyFlag UINT8 data type ANY 8BIT VALUE form GET/SET
+ dc9a: AlbumName STRING data type GET/SET
+ 3009: MP3
+ dc44: Name STRING data type GET/SET
+ dc01: StorageID UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc04: ObjectSize UINT64 data type READ ONLY
+ dc07: ObjectFileName STRING data type REGULAR EXPRESSION FORM GET/SET
+ dc09: DateModified STRING data type DATETIME FORM GET/SET
+ dc4f: NonConsumable UINT8 data type enumeration: 0, 1, GET/SET
+ dc02: ObjectFormat UINT16 data type ANY 16BIT VALUE form READ ONLY
+ dc0b: ParentObject UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc41: PersistantUniqueObjectIdentifier UINT128 data type READ ONLY
+ dc03: ProtectionStatus UINT16 data type enumeration: 0, 1, READ ONLY
+ dc97: EffectiveRating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET
+ dc8a: Rating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET
+ dc91: UseCount UINT32 data type ANY 32BIT VALUE form GET/SET
+ d901: BuyFlag UINT8 data type ANY 8BIT VALUE form GET/SET
+ dc89: Duration UINT32 data type range: MIN 0, MAX 268435456, STEP 1 GET/SET
+ de93: SampleRate UINT32 data type range: MIN 8000, MAX 48000, STEP 50 READ ONLY
+ de9a: AudioBitRate UINT32 data type range: MIN 8000, MAX 320000, STEP 1 READ ONLY
+ de99: AudioWAVECodec UINT32 data type enumeration: 0, 1, 2, 3, 8, 9, 11, 49, 50, 80, 85, 352, 353, 354, 355, 356, 41222, GET/SET
+ de94: NumberOfChannels UINT16 data type enumeration: 1, 2, GET/SET
+ de92: BitRateType UINT16 data type enumeration: 0, 1, 2, 3, GET/SET
+ dc8b: Track UINT16 data type ANY 16BIT VALUE form GET/SET
+ dc99: OriginalReleaseDate STRING data type DATETIME FORM GET/SET
+ dc46: Artist STRING data type GET/SET
+ dc8c: Genre STRING data type GET/SET
+ dc9a: AlbumName STRING data type GET/SET
+ dc9b: AlbumArtist STRING data type GET/SET
+ b901: WMA
+ dc44: Name STRING data type GET/SET
+ dc01: StorageID UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc04: ObjectSize UINT64 data type READ ONLY
+ dc07: ObjectFileName STRING data type REGULAR EXPRESSION FORM GET/SET
+ dc09: DateModified STRING data type DATETIME FORM GET/SET
+ dc4f: NonConsumable UINT8 data type enumeration: 0, 1, GET/SET
+ dc02: ObjectFormat UINT16 data type ANY 16BIT VALUE form READ ONLY
+ dc0b: ParentObject UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc41: PersistantUniqueObjectIdentifier UINT128 data type READ ONLY
+ dc03: ProtectionStatus UINT16 data type enumeration: 0, 1, READ ONLY
+ dc97: EffectiveRating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET
+ dc8a: Rating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET
+ dc91: UseCount UINT32 data type ANY 32BIT VALUE form GET/SET
+ d901: BuyFlag UINT8 data type ANY 8BIT VALUE form GET/SET
+ dc89: Duration UINT32 data type range: MIN 0, MAX 268435456, STEP 1 GET/SET
+ de93: SampleRate UINT32 data type range: MIN 8000, MAX 48000, STEP 50 READ ONLY
+ de9a: AudioBitRate UINT32 data type range: MIN 5000, MAX 320000, STEP 1 READ ONLY
+ de99: AudioWAVECodec UINT32 data type enumeration: 0, 1, 2, 3, 8, 9, 11, 49, 50, 80, 85, 352, 353, 354, 355, 356, 41222, GET/SET
+ de94: NumberOfChannels UINT16 data type enumeration: 1, 2, GET/SET
+ de92: BitRateType UINT16 data type enumeration: 0, 1, 2, 3, GET/SET
+ dc8b: Track UINT16 data type ANY 16BIT VALUE form GET/SET
+ dc99: OriginalReleaseDate STRING data type DATETIME FORM GET/SET
+ dc46: Artist STRING data type GET/SET
+ dc8c: Genre STRING data type GET/SET
+ dc9a: AlbumName STRING data type GET/SET
+ dc9b: AlbumArtist STRING data type GET/SET
+ 3801: JPEG
+ dc44: Name STRING data type GET/SET
+ dc01: StorageID UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc04: ObjectSize UINT64 data type READ ONLY
+ dc07: ObjectFileName STRING data type REGULAR EXPRESSION FORM GET/SET
+ dc09: DateModified STRING data type DATETIME FORM GET/SET
+ dc4f: NonConsumable UINT8 data type enumeration: 0, 1, GET/SET
+ dc02: ObjectFormat UINT16 data type ANY 16BIT VALUE form READ ONLY
+ dc0b: ParentObject UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc41: PersistantUniqueObjectIdentifier UINT128 data type READ ONLY
+ dc03: ProtectionStatus UINT16 data type enumeration: 0, 1, READ ONLY
+ dc97: EffectiveRating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET
+ dc8a: Rating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET
+ dc91: UseCount UINT32 data type ANY 32BIT VALUE form GET/SET
+ d901: BuyFlag UINT8 data type ANY 8BIT VALUE form GET/SET
+ dc87: Width UINT32 data type range: MIN 1, MAX 640, STEP 1 GET/SET
+ dc88: Height UINT32 data type range: MIN 1, MAX 640, STEP 1 GET/SET
+ 380b: PNG
+ dc44: Name STRING data type GET/SET
+ dc01: StorageID UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc04: ObjectSize UINT64 data type READ ONLY
+ dc07: ObjectFileName STRING data type REGULAR EXPRESSION FORM GET/SET
+ dc09: DateModified STRING data type DATETIME FORM GET/SET
+ dc4f: NonConsumable UINT8 data type enumeration: 0, 1, GET/SET
+ dc02: ObjectFormat UINT16 data type ANY 16BIT VALUE form READ ONLY
+ dc0b: ParentObject UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc41: PersistantUniqueObjectIdentifier UINT128 data type READ ONLY
+ dc03: ProtectionStatus UINT16 data type enumeration: 0, 1, READ ONLY
+ dc97: EffectiveRating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET
+ dc8a: Rating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET
+ dc91: UseCount UINT32 data type ANY 32BIT VALUE form GET/SET
+ d901: BuyFlag UINT8 data type ANY 8BIT VALUE form GET/SET
+ dc87: Width UINT32 data type range: MIN 1, MAX 640, STEP 1 GET/SET
+ dc88: Height UINT32 data type range: MIN 1, MAX 640, STEP 1 GET/SET
+ 3804: BMP
+ dc44: Name STRING data type GET/SET
+ dc01: StorageID UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc04: ObjectSize UINT64 data type READ ONLY
+ dc07: ObjectFileName STRING data type REGULAR EXPRESSION FORM GET/SET
+ dc09: DateModified STRING data type DATETIME FORM GET/SET
+ dc4f: NonConsumable UINT8 data type enumeration: 0, 1, GET/SET
+ dc02: ObjectFormat UINT16 data type ANY 16BIT VALUE form READ ONLY
+ dc0b: ParentObject UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc41: PersistantUniqueObjectIdentifier UINT128 data type READ ONLY
+ dc03: ProtectionStatus UINT16 data type enumeration: 0, 1, READ ONLY
+ dc97: EffectiveRating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET
+ dc8a: Rating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET
+ dc91: UseCount UINT32 data type ANY 32BIT VALUE form GET/SET
+ d901: BuyFlag UINT8 data type ANY 8BIT VALUE form GET/SET
+ dc87: Width UINT32 data type range: MIN 1, MAX 640, STEP 1 GET/SET
+ dc88: Height UINT32 data type range: MIN 1, MAX 640, STEP 1 GET/SET
+ 3807: GIF
+ dc44: Name STRING data type GET/SET
+ dc01: StorageID UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc04: ObjectSize UINT64 data type READ ONLY
+ dc07: ObjectFileName STRING data type REGULAR EXPRESSION FORM GET/SET
+ dc09: DateModified STRING data type DATETIME FORM GET/SET
+ dc4f: NonConsumable UINT8 data type enumeration: 0, 1, GET/SET
+ dc02: ObjectFormat UINT16 data type ANY 16BIT VALUE form READ ONLY
+ dc0b: ParentObject UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc41: PersistantUniqueObjectIdentifier UINT128 data type READ ONLY
+ dc03: ProtectionStatus UINT16 data type enumeration: 0, 1, READ ONLY
+ dc97: EffectiveRating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET
+ dc8a: Rating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET
+ dc91: UseCount UINT32 data type ANY 32BIT VALUE form GET/SET
+ d901: BuyFlag UINT8 data type ANY 8BIT VALUE form GET/SET
+ dc87: Width UINT32 data type range: MIN 1, MAX 640, STEP 1 GET/SET
+ dc88: Height UINT32 data type range: MIN 1, MAX 640, STEP 1 GET/SET
+ b981: WMV
+ dc44: Name STRING data type GET/SET
+ dc01: StorageID UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc04: ObjectSize UINT64 data type READ ONLY
+ dc07: ObjectFileName STRING data type REGULAR EXPRESSION FORM GET/SET
+ dc09: DateModified STRING data type DATETIME FORM GET/SET
+ dc4f: NonConsumable UINT8 data type enumeration: 0, 1, GET/SET
+ dc02: ObjectFormat UINT16 data type ANY 16BIT VALUE form READ ONLY
+ dc0b: ParentObject UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc41: PersistantUniqueObjectIdentifier UINT128 data type READ ONLY
+ dc03: ProtectionStatus UINT16 data type enumeration: 0, 1, READ ONLY
+ dc97: EffectiveRating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET
+ dc8a: Rating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET
+ dc91: UseCount UINT32 data type ANY 32BIT VALUE form GET/SET
+ d901: BuyFlag UINT8 data type ANY 8BIT VALUE form GET/SET
+ dc87: Width UINT32 data type range: MIN 1, MAX 320, STEP 1 GET/SET
+ dc88: Height UINT32 data type range: MIN 1, MAX 240, STEP 1 GET/SET
+ de97: ScanDepth UINT16 data type enumeration: 1, READ ONLY
+ de9d: FramesPerThousandSeconds UINT32 data type enumeration: 0, 20000, 25000, 29970, 30000, GET/SET
+ de9b: VideoFourCCCodec UINT32 data type enumeration: 0, 859189832, 958804552, 1195724877, 827739479, 844516695, 861293911, GET/SET
+ de9e: KeyFrameDistance UINT32 data type range: MIN 100, MAX 300, STEP 1 GET/SET
+ de9c: VideoBitRate UINT32 data type range: MIN 1, MAX 850000, STEP 1 GET/SET
+ dc99: OriginalReleaseDate STRING data type DATETIME FORM GET/SET
+ dc8c: Genre STRING data type GET/SET
+ de93: SampleRate UINT32 data type range: MIN 8000, MAX 48000, STEP 50 READ ONLY
+ de9a: AudioBitRate UINT32 data type range: MIN 1, MAX 320000, STEP 1 READ ONLY
+ de99: AudioWAVECodec UINT32 data type enumeration: 0, 1, 2, 3, 8, 9, 11, 49, 50, 80, 85, 352, 353, 354, 355, 356, 41222, GET/SET
+ de94: NumberOfChannels UINT16 data type enumeration: 1, 2, GET/SET
+ dea1: EncodingProfile STRING data type GET/SET
+ 300c: ASF
+ dc44: Name STRING data type GET/SET
+ dc01: StorageID UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc04: ObjectSize UINT64 data type READ ONLY
+ dc07: ObjectFileName STRING data type REGULAR EXPRESSION FORM GET/SET
+ dc09: DateModified STRING data type DATETIME FORM GET/SET
+ dc4f: NonConsumable UINT8 data type enumeration: 0, 1, GET/SET
+ dc02: ObjectFormat UINT16 data type ANY 16BIT VALUE form READ ONLY
+ dc0b: ParentObject UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc41: PersistantUniqueObjectIdentifier UINT128 data type READ ONLY
+ dc03: ProtectionStatus UINT16 data type enumeration: 0, 1, READ ONLY
+ dc97: EffectiveRating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET
+ dc8a: Rating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET
+ dc91: UseCount UINT32 data type ANY 32BIT VALUE form GET/SET
+ d901: BuyFlag UINT8 data type ANY 8BIT VALUE form GET/SET
+ dc87: Width UINT32 data type range: MIN 1, MAX 320, STEP 1 GET/SET
+ dc88: Height UINT32 data type range: MIN 1, MAX 240, STEP 1 GET/SET
+ de97: ScanDepth UINT16 data type enumeration: 1, READ ONLY
+ de9d: FramesPerThousandSeconds UINT32 data type enumeration: 0, 20000, 25000, 29970, 30000, GET/SET
+ de9b: VideoFourCCCodec UINT32 data type enumeration: 0, 859189832, 958804552, 1195724877, 827739479, 844516695, 861293911, GET/SET
+ de9e: KeyFrameDistance UINT32 data type range: MIN 100, MAX 300, STEP 1 GET/SET
+ de9c: VideoBitRate UINT32 data type range: MIN 1, MAX 850000, STEP 1 GET/SET
+ dc99: OriginalReleaseDate STRING data type DATETIME FORM GET/SET
+ dc8c: Genre STRING data type GET/SET
+ de93: SampleRate UINT32 data type range: MIN 8000, MAX 48000, STEP 50 READ ONLY
+ de9a: AudioBitRate UINT32 data type range: MIN 1, MAX 320000, STEP 1 READ ONLY
+ de99: AudioWAVECodec UINT32 data type enumeration: 0, 1, 2, 3, 8, 9, 11, 49, 50, 80, 85, 352, 353, 354, 355, 356, 41222, GET/SET
+ de94: NumberOfChannels UINT16 data type enumeration: 1, 2, GET/SET
+ dea1: EncodingProfile STRING data type GET/SET
+ 3001: Association/Directory
+ dc44: Name STRING data type GET/SET
+ dc01: StorageID UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc04: ObjectSize UINT64 data type READ ONLY
+ dc07: ObjectFileName STRING data type REGULAR EXPRESSION FORM GET/SET
+ dc09: DateModified STRING data type DATETIME FORM GET/SET
+ dc4f: NonConsumable UINT8 data type enumeration: 0, 1, GET/SET
+ dc02: ObjectFormat UINT16 data type ANY 16BIT VALUE form READ ONLY
+ dc0b: ParentObject UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc41: PersistantUniqueObjectIdentifier UINT128 data type READ ONLY
+ dc03: ProtectionStatus UINT16 data type enumeration: 0, 1, READ ONLY
+ dc97: EffectiveRating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET
+ dc8a: Rating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET
+ dc91: UseCount UINT32 data type ANY 32BIT VALUE form GET/SET
+ d901: BuyFlag UINT8 data type ANY 8BIT VALUE form GET/SET
+ dc9a: AlbumName STRING data type GET/SET
+ ba05: Abstract Audio Video Playlist
+ dc44: Name STRING data type GET/SET
+ dc01: StorageID UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc04: ObjectSize UINT64 data type READ ONLY
+ dc07: ObjectFileName STRING data type REGULAR EXPRESSION FORM GET/SET
+ dc09: DateModified STRING data type DATETIME FORM GET/SET
+ dc4f: NonConsumable UINT8 data type enumeration: 0, 1, GET/SET
+ dc02: ObjectFormat UINT16 data type ANY 16BIT VALUE form READ ONLY
+ dc0b: ParentObject UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc41: PersistantUniqueObjectIdentifier UINT128 data type READ ONLY
+ dc03: ProtectionStatus UINT16 data type enumeration: 0, 1, READ ONLY
+ dc97: EffectiveRating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET
+ dc8a: Rating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET
+ dc91: UseCount UINT32 data type ANY 32BIT VALUE form GET/SET
+ d901: BuyFlag UINT8 data type ANY 8BIT VALUE form GET/SET
+ 3000: Undefined Type
+ dc44: Name STRING data type GET/SET
+ dc01: StorageID UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc04: ObjectSize UINT64 data type READ ONLY
+ dc07: ObjectFileName STRING data type REGULAR EXPRESSION FORM GET/SET
+ dc09: DateModified STRING data type DATETIME FORM GET/SET
+ dc4f: NonConsumable UINT8 data type enumeration: 0, 1, GET/SET
+ dc02: ObjectFormat UINT16 data type ANY 16BIT VALUE form READ ONLY
+ dc0b: ParentObject UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc41: PersistantUniqueObjectIdentifier UINT128 data type READ ONLY
+ dc03: ProtectionStatus UINT16 data type enumeration: 0, 1, READ ONLY
+ dc97: EffectiveRating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET
+ dc8a: Rating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET
+ dc91: UseCount UINT32 data type ANY 32BIT VALUE form GET/SET
+ d901: BuyFlag UINT8 data type ANY 8BIT VALUE form GET/SET
+ b802: Firmware
+ dc44: Name STRING data type GET/SET
+ dc01: StorageID UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc04: ObjectSize UINT64 data type READ ONLY
+ dc07: ObjectFileName STRING data type REGULAR EXPRESSION FORM GET/SET
+ dc09: DateModified STRING data type DATETIME FORM GET/SET
+ dc4f: NonConsumable UINT8 data type enumeration: 0, 1, GET/SET
+ dc02: ObjectFormat UINT16 data type ANY 16BIT VALUE form READ ONLY
+ dc0b: ParentObject UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc41: PersistantUniqueObjectIdentifier UINT128 data type READ ONLY
+ dc03: ProtectionStatus UINT16 data type enumeration: 0, 1, READ ONLY
+ dc97: EffectiveRating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET
+ dc8a: Rating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET
+ dc91: UseCount UINT32 data type ANY 32BIT VALUE form GET/SET
+ d901: BuyFlag UINT8 data type ANY 8BIT VALUE form GET/SET
+ ba03: Abstract Audio Album
+ dc44: Name STRING data type GET/SET
+ dc01: StorageID UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc04: ObjectSize UINT64 data type READ ONLY
+ dc07: ObjectFileName STRING data type REGULAR EXPRESSION FORM GET/SET
+ dc09: DateModified STRING data type DATETIME FORM GET/SET
+ dc4f: NonConsumable UINT8 data type enumeration: 0, 1, GET/SET
+ dc02: ObjectFormat UINT16 data type ANY 16BIT VALUE form READ ONLY
+ dc0b: ParentObject UINT32 data type ANY 32BIT VALUE form READ ONLY
+ dc41: PersistantUniqueObjectIdentifier UINT128 data type READ ONLY
+ dc03: ProtectionStatus UINT16 data type enumeration: 0, 1, READ ONLY
+ dc97: EffectiveRating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET
+ dc8a: Rating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET
+ dc91: UseCount UINT32 data type ANY 32BIT VALUE form GET/SET
+ d901: BuyFlag UINT8 data type ANY 8BIT VALUE form GET/SET
+ dc86: RepresentativeSampleData array of UINT8 data type byte array: GET/SET
+ dc81: RepresentativeSampleFormat UINT16 data type enumeration: 14337, READ ONLY
+ dc83: RepresentativeSampleHeight UINT32 data type range: MIN 0, MAX 1000000, STEP 1 READ ONLY
+ dc84: RepresentativeSampleWidth UINT32 data type range: MIN 0, MAX 1000000, STEP 1 READ ONLY
+ dc82: RepresentativeSampleSize UINT32 data type range: MIN 0, MAX -1, STEP 1 READ ONLY
+ dc9b: AlbumArtist STRING data type GET/SET
+ dc46: Artist STRING data type GET/SET
+ dc8c: Genre STRING data type GET/SET
+Storage Devices:
+ StorageID: 0x00010001
+ StorageType: 0x0003 fixed RAM storage
+ FilesystemType: 0x0002 generic hierarchical
+ AccessCapability: 0x0000 read/write
+ MaxCapacity: 3959422976
+ FreeSpaceInBytes: 2829459456
+ FreeSpaceInObjects: 11755
+ StorageDescription: Internal Storage
+ VolumeIdentifier: 9A255DFB0019261397A0DE7CF0008F16
+Special directories:
+ Default music folder: 0x20000003
+ Default playlist folder: 0x20000007
+ Default picture folder: 0x20000005
+ Default video folder: 0x20000004
+ Default organizer folder: 0x00000000
+ Default zencast folder: 0x20000008
+ Default album folder: 0x00000000
+ Default text folder: 0x20000006
+MTP-specific device properties:
+ Friendly name: Q1
+ Synchronization partner: Longhorn Sync Engine
+ Battery level 100 of 100 (100%)
+libmtp supported (playable) filetypes:
+ ISO MPEG-1 Audio Layer 3
+ Microsoft Windows Media Audio
+ JPEG file
+ Portable Network Graphics
+ BMP bitmap file
+ GIF bitmap file
+ Microsoft Windows Media Video
+ Microsoft Advanced Systems Format
+ Firmware file
+
+Secure Time:
+<DRMCLOCK type="status"><VALUE>#20080216 04:57:42Z#</VALUE><FLAG>DRM_CLK_NEEDS_REFRESH</FLAG></DRMCLOCK>AG></DRMCLOCK>
+
+Device Certificate:
+<DEVCERT version="1.0"><CERTIFICATE type="DEVICE"><DATA><UNIQUEID private="1">miVd+wAZJhOXoN588ACPFgAAAAA=</UNIQUEID><PUBLICKEY private="1">f5ZTnfdVJCBr+EZcGcyOeItdZGTzCMoua/q75vyJmbbRkCsiiGONXA==</PUBLICKEY><KEYDATA>9Vf+jY5NiA6PGacv7Svi9vn5OVI=</KEYDATA></DATA><MSDRM_SIGNATURE_VALUE>WQpEBcHBBUV+Xx+/UkHSMkwvolOFQPWF5zmJI9oBbCaC1DNC2XFBQg==</MSDRM_SIGNATURE_VALUE><SYMSIGNATURE>NS9/kxJ4fUU/xtsm2rzt1EMMWrw=</SYMSIGNATURE></CERTIFICATE><FALLBACK><SECURITYVERSION>2.4.108.81</SECURITYVERSION><CERTIFICATE private="1">f5ZTnfdVJCBr+EZcGcyOeItdZGTzCMoua/q75vyJmbbRkCsiiGONXAIEbFGfuQhkfsFBSgpanwXNtdYK2FqFO0xvoaG8W14Te4ivup3gxJLYbLkx</CERTIFICATE></FALLBACK><CERTIFICATE type="GROUP"><DATA><NAME>YP-T10</NAME><MANUFACTURER>Samsung</MANUFACTURER><MAKE>Samsung</MAKE><DISTRIBUTOR>WorldWideImporters</DISTRIBUTOR><MODEL>YP-T10</MODEL><SECURITYLEVEL>2000</SECURITYLEVEL><HARDWARE_VER_MAJOR>1</HARDWARE_VER_MAJOR><HARDWARE_VER_MINOR>0</HARDWARE_VER_MINOR><FIRMWARE_VER_MAJOR>1</FIRMWARE_VER_MAJOR><FIRMWARE_VER_MINOR>0</FIRMWARE_VER_MINOR><FEATURES><CLOCK>2</CLOCK><SECURECLOCK><URL>http://go.microsoft.com/fwlink/?LinkId=25817</URL><PUBLICKEY>!CNhvvz1WaNV1AFUmetxkvm9iD4UrE9cnGUi!qcqdxMiXmD1*ikYGA==</PUBLICKEY></SECURECLOCK><METERING>1</METERING><LICENSE_ACQ>0</LICENSE_ACQ><LICENSE_SYNC>1</LICENSE_SYNC><ENCRYPTION>0</ENCRYPTION><SYMMETRIC_OPT>1</SYMMETRIC_OPT></FEATURES><LIMITS><PTP: Closing session
+inep: usb_get_endpoint_status(): Connection timed out
+outep: usb_get_endpoint_status(): Connection timed out
+usb_clear_halt() on IN endpoint: Connection timed out
+usb_clear_halt() on OUT endpoint: Connection timed out
+usb_clear_halt() on INTERRUPT endpoint: Connection timed out
+MAXCHAINDEPTH>2</MAXCHAINDEPTH><MAXLICENSESIZE>10240</MAXLICENSESIZE><MAXHEADERSIZE>5120</MAXHEADERSIZE></LIMITS><PUBLICKEY>vRW/PPkzAfSzYbHv8LiL7SlduCMIW81dE7wFRuHHwZRIpgo8I6RGWg==</PUBLICKEY></DATA><MSDRM_SIGNATURE_VALUE>+leZFfHTUpPiJuxKrZY2NGc/E1NDZTaCFl84wvYcHSHdyMBbTL0AJw==</MSDRM_SIGNATURE_VALUE></CERTIFICATE><CERTIFICATE type="AUTHORIZATION"><DATA><SECURITYLEVEL>2000</SECURITYLEVEL><AUTH_ID>1973</AUTH_ID><PUBLICKEY>LA99x43GKtSfbrir3YWgsHH/Ih/txGBoe5E8LV4KVNb9uQABohtMDw==</PUBLICKEY></DATA><MSDRM_SIGNATURE_VALUE>rId2DudMrmY+yzso2pVn0lNzYIHUpiH/CJBb+TvgT7FOGD7omELtGw==</MSDRM_SIGNATURE_VALUE></CERTIFICATE><CERTIFICATE type="AUTHORIZATION_ROOT"><DATA><AUTH_ID>1</AUTH_ID><PUBLICKEY>a1t3hxrg!qbOgktnbYaEEi4teCse!gz6RvTPuC!zizKJlpU7xoduSw==</PUBLICKEY></DATA><MSDRM_SIGNATURE_VALUE>SmPt0XQ5U8r9y+GecoWQ/zMpF2YxJ/6kRzS3tQKbVjUY2kJGVpqoJg==</MSDRM_SIGNATURE_VALUE></CERTIFICATE></DEVCERT>
+WMPInfo.xml Does not exist on this device
+OK.
+
+
diff --git a/src/music-players.h b/src/music-players.h
index f8c90fe..2d48001 100644
--- a/src/music-players.h
+++ b/src/music-players.h
@@ -3,7 +3,7 @@
* List of music players as USB ids.
*
* Copyright (C) 2005-2007 Richard A. Low <richard@wentnet.com>
- * Copyright (C) 2005-2008 Linus Walleij <triad@df.lth.se>
+ * Copyright (C) 2005-2009 Linus Walleij <triad@df.lth.se>
* Copyright (C) 2006-2007 Marcus Meissner
* Copyright (C) 2007 Ted Bullock
*
@@ -206,6 +206,8 @@
{ "Philips", 0x0471, "GoGear SA6125/SA6145/SA6185", 0x2002, DEVICE_FLAG_UNLOAD_DRIVER },
// From anonymous Sourceforge user, not verified to be MTP!
{ "Philips", 0x0471, "GoGear SA3345", 0x2004, DEVICE_FLAG_UNLOAD_DRIVER },
+ // From Roberto Vidmar <rvidmar@libero.it>
+ { "Philips", 0x0471, "SA5285", 0x2022, DEVICE_FLAG_UNLOAD_DRIVER },
// from XNJB user
{ "Philips", 0x0471, "PSA235", 0x7e01, DEVICE_FLAG_NONE },
@@ -268,6 +270,10 @@
{ "SanDisk", 0x0781, "Sansa c240/c250", 0x7450,
DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL |
DEVICE_FLAG_NO_RELEASE_INTERFACE | DEVICE_FLAG_CANNOT_HANDLE_DATEMODIFIED },
+ // Reported by anonymous SourceForge user
+ { "SanDisk", 0x0781, "Sansa c250 v2", 0x7452,
+ DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST_ALL |
+ DEVICE_FLAG_NO_RELEASE_INTERFACE | DEVICE_FLAG_CANNOT_HANDLE_DATEMODIFIED },
// Reported by Troy Curtis Jr.
{ "SanDisk", 0x0781, "Sansa Express", 0x7460,
DEVICE_FLAG_UNLOAD_DRIVER | DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST |
@@ -300,6 +306,8 @@
{ "iRiver", 0x1006, "Portable Media Center", 0x4003,
DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_NO_ZERO_READS |
DEVICE_FLAG_IRIVER_OGG_ALZHEIMER },
+ // From [st]anislav <iamstanislav@gmail.com>
+ { "iRiver", 0x1042, "T7 Volcano", 0x1143, DEVICE_FLAG_NONE },
// From an anonymous person at SourceForge, uncertain about this one
{ "iRiver", 0x4102, "iFP-880", 0x1008,
DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_NO_ZERO_READS |
@@ -623,6 +631,9 @@
// Reported by Joseph Nahmias <joe@nahimas.net>
{ "LG Electronics Inc.", 0x1004, "VX8550 V CAST Mobile Phone", 0x6010,
DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST | DEVICE_FLAG_ALWAYS_PROBE_DESCRIPTOR },
+ // Reported by Cyrille Potereau <cyrille.potereau@wanadoo.fr>
+ { "LG Electronics Inc.", 0x1004, "KC910 Renoir Mobile Phone", 0x608f,
+ DEVICE_FLAG_UNLOAD_DRIVER },
/*
* Sony
@@ -644,6 +655,8 @@
{ "Sony", 0x054c, "Walkman NWZ-A726/NWZ-A728/NWZ-A768", 0x035c, DEVICE_FLAG_UNLOAD_DRIVER },
// Reported by Mehdi AMINI <mehdi.amini - at - ulp.u-strasbg.fr>
{ "Sony", 0x054c, "Walkman NWZ-B135", 0x036e, DEVICE_FLAG_UNLOAD_DRIVER },
+ // Reported by <tiagoboldt@users.sourceforge.net>
+ { "Sony", 0x054c, "Walkman NWZ-E436F", 0x0385, DEVICE_FLAG_UNLOAD_DRIVER },
// Reported by Marco Filipe Nunes Soares Abrantes Pereira <marcopereira@ua.pt>
{ "Sony", 0x054c, "Walkman NWZ-S638F", 0x038e, DEVICE_FLAG_UNLOAD_DRIVER },
@@ -726,6 +739,12 @@
{ "Polaroid", 0x0546, "Freescape/MPU-433158", 0x2035, DEVICE_FLAG_NONE },
/*
+ * Pioneer
+ */
+ // Reported by Dan Allen <dan.j.allen@gmail.com>
+ { "Pioneer", 0x08e4, "XMP3", 0x0148, DEVICE_FLAG_NONE },
+
+ /*
* Other strange stuff.
*/
{ "Isabella", 0x0b20, "Her Prototype", 0xddee, DEVICE_FLAG_NONE }
diff --git a/src/unicode.h b/src/unicode.h
index 7f28a1a..f612c32 100644
--- a/src/unicode.h
+++ b/src/unicode.h
@@ -32,8 +32,6 @@
#ifndef __MTP__UNICODE__H
#define __MTP__UNICODE__H
-#include "config.h"
-
int ucs2_strlen(uint16_t const * const);
char *utf16_to_utf8(LIBMTP_mtpdevice_t*,const uint16_t*);
uint16_t *utf8_to_utf16(LIBMTP_mtpdevice_t*, const char*);