From: Sciamano <sci...@gm...> - 2008-02-11 14:51:37
|
Hi everybody, I'm the owner of a SanDisk Sansa View player, which needs the MTP protocol to work (MSC is only available as a workaround, and anyway I'd like it to work with libmtp). I thought the developers of libmtp might be interested in the anomalous behavior that happens when I try to connect to the device. When I connect the View to the USB cable, its display shows "Connected", but it really is not so. In fact if I try to connect with any MTP-compatible software, like Qlix or Amarok, they fail. If I send the mtp-detect command, the View will reboot, and the terminal will show the following info: -------------------- libmtp version: 0.2.5 Attempting to connect device(s) usb_claim_interface(): No such device LIBMTP PANIC: Unable to initialize device 1 LIBMTP PANIC: configure_usb_devices() error code: 7 on line 1561 Detect: There has been an error connecting. Exiting ------------------- As I said, while this shows up in the terminal, the device reboots. During reboot, the View shows a splash screen with SanDisk's logo and such, then there is a super-short moment (maybe half a second long) when the View's GUI shows up. Immediately after that, the black screen with the "connected" sign shows up again. If I send the mtp-detect command now, it reboots again, and again, and again... you get the point. To make things work, I have to send the mpt-detect command during that short moment in which the View's GUI is shown, otherwise I will not be able to connect with any program that uses the mtp protocol. I hope this helps improve libmtp's compatibility. If you need any more information, or need me to try something, just ask. Thanks for reading (and for working on libmtp). Luca |
From: Linus W. <lin...@gm...> - 2008-02-11 19:36:22
|
2008/2/11, Sciamano <sci...@gm...>: > If I send the mtp-detect command, the View will reboot, and the > terminal will show the following info: Hm. As a matter of fact we have a few reports on the Sansa View actually working, one of them was from Miguel de Icaza even. I suspect something more low-level USB might be involved here, because I thought the View was bascially working. What kernel version is this? Have you tried some other kernel/setup, e.g. on a totally different machine with a different distro? Linus |
From: Sciamano <sci...@gm...> - 2008-02-11 20:00:11
|
2008/2/11, Linus Walleij <lin...@gm...>: > Hm. As a matter of fact we have a few reports on the Sansa View actually > working, one of them was from Miguel de Icaza even. > > I suspect something more low-level USB might be involved here, because > I thought the View was bascially working. What kernel version is this? > Have you tried some other kernel/setup, e.g. on a totally different machine > with a different distro? Unfortunately no. I've only tried it with my desktop and my laptop, both of which run Kubuntu Gutsy Gibbon, with kernel "2.6.22-14-generic". I compiled libmtp-0.25 from source, since Kubuntu comes with version 0.2.1 which did not support the View. The same problem shows up on both my computers, with the exact same behavior and error messages. Luca |
From: Sciamano <sci...@gm...> - 2008-02-11 20:03:32
|
If it helps, this is the mtp-detect output (once I launch it at the right moment :-) -------------------begin----------------- libmtp version: 0.2.5 Attempting to connect device(s) PTP: Opening session Detect: Successfully connected 1 devices USB low-level info: Using kernel interface "usbfs" bcdUSB: 512 bDeviceClass: 0 bDeviceSubClass: 0 bDeviceProtocol: 0 idVendor: 0781 idProduct: 74b0 IN endpoint maxpacket: 512 bytes OUT endpoint maxpacket: 512 bytes Device flags: 0x00000043 Microsoft device descriptor 0xee: 0000: 1203 4d00 5300 4600 5400 3100 3000 3000 ..M.S.F.T.1.0.0. 0010: fe00 4d54 5000 0000 0000 0000 0000 0000 ..MTP........... 0020: 0000 0000 0000 0000 3600 6100 6300 6500 ........6.a.c.e. 0030: 3400 3400 3500 3000 3000 3700 6300 3300 4.4.5.0.0.7.c.3. 0040: 6600 3000 3000 3000 3000 3000 3000 3000 f.0.0.0.0.0.0.0. 0050: 3000 0000 0000 0000 0000 0000 0000 0000 0............... 0060: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0070: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0080: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0090: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0100: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0110: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0120: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0130: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0140: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0150: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0160: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0170: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0180: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0190: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 01a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 01b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 01c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 01d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 01e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 01f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0200: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0210: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0220: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0230: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0240: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0250: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0260: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0270: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0280: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0290: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 02a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 02b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 02c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 02d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 02e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 02f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0300: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0310: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0320: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0330: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0340: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0350: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0360: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0370: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0380: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0390: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 03a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 03b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 03c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 03d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 03e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 03f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 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 3600 6100 6300 6500 ........6.a.c.e. 0030: 3400 3400 3500 3000 3000 3700 6300 3300 4.4.5.0.0.7.c.3. 0040: 6600 3000 3000 3000 3000 3000 3000 3000 f.0.0.0.0.0.0.0. 0050: 3000 0000 0000 0000 0000 0000 0000 0000 0............... 0060: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0070: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0080: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0090: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0100: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0110: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0120: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0130: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0140: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0150: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0160: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0170: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0180: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0190: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 01a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 01b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 01c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 01d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 01e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 01f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0200: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0210: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0220: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0230: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0240: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0250: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0260: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0270: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0280: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0290: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 02a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 02b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 02c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 02d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 02e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 02f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0300: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0310: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0320: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0330: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0340: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0350: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0360: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0370: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0380: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0390: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 03a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 03b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 03c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 03d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 03e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 03f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ Potential MTP Device with VendorID:0781 and ProductID:74b0 responded to control message 2 with a response that was too short. Problems may arrise but continuing Device info: Manufacturer: SanDisk Model: Sansa View Device version: 01.01.06A Serial number: 03534453443136478016ace445007c3f00000000 Vendor extension ID: 0x00000006 Vendor extension description: microsoft.com: 1.0; microsoft.com/WMPPD: 10.0; microsoft.com/WMDRMPD: 10.1; audible.com: 1.0 Detected object size: 64 bits Supported operations: 1014: Get device property description 1015: Get device property value 1016: Set device property value 1017: Reset device property value 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 101b: Get partial object 100c: Send object info 100d: Send object 100b: Delete object 1012: Set object protection 100f: Format storage 9801: Get object properties supported 9802: Get object property description 9803: Get object property value 9804: Set object property value 9805: Get object property list 9806: Set object property list 9810: Get object references 9811: Set object references 9201: Report Added/Deleted 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 Events supported: 0x4004 0x4005 Device Properties Supported: 0x5001: Battery Level 0xd100: Unknown property 0xd101: Secure Time 0xd102: Device Certificate 0xd401: Synchronization Partner 0xd402: Friendly Device Name Playable File (Object) Types and Object Properties Supported: 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, 32770, 32771, READ ONLY dc04: ObjectSize UINT64 data type READ ONLY dc07: ObjectFileName STRING data type 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 dc09: DateModified STRING data type GET/SET 3004: Text 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, 32770, 32771, READ ONLY dc04: ObjectSize UINT64 data type READ ONLY dc07: ObjectFileName STRING data type 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 dc09: DateModified STRING data type GET/SET 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, 32770, 32771, READ ONLY dc04: ObjectSize UINT64 data type READ ONLY dc07: ObjectFileName STRING data type 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 dc09: DateModified STRING data type GET/SET 3008: MS Wave 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, 32770, 32771, READ ONLY dc04: ObjectSize UINT64 data type READ ONLY dc07: ObjectFileName STRING data type 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 dc09: DateModified STRING data type GET/SET dc46: Artist STRING data type GET/SET dc8b: Track UINT16 data type ANY 16BIT VALUE form GET/SET dc8c: Genre STRING data type GET/SET dc9a: AlbumName STRING data type GET/SET de93: SampleRate UINT32 data type range: MIN 8000, MAX 96000, STEP 50 READ ONLY de94: NumberOfChannels UINT16 data type enumeration: 1, 2, GET/SET de9a: AudioBitRate UINT32 data type range: MIN 8000, MAX 1500000, STEP 1 READ ONLY de99: AudioWAVECodec UINT32 data type enumeration: 0, 85, 353, 384, 41222, 304, 1, READ ONLY de92: BitRateType UINT16 data type enumeration: 0, 1, 2, 3, GET/SET dc9b: AlbumArtist STRING data type GET/SET dc89: Duration UINT32 data type range: MIN 0, MAX -2147483648, 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 dc99: OriginalReleaseDate STRING data type 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, 32770, 32771, READ ONLY dc04: ObjectSize UINT64 data type READ ONLY dc07: ObjectFileName STRING data type 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 dc09: DateModified STRING data type GET/SET dc46: Artist STRING data type GET/SET dc8b: Track UINT16 data type ANY 16BIT VALUE form GET/SET dc8c: Genre STRING data type GET/SET dc9a: AlbumName STRING data type GET/SET de93: SampleRate UINT32 data type range: MIN 8000, MAX 96000, STEP 50 READ ONLY de94: NumberOfChannels UINT16 data type enumeration: 1, 2, GET/SET de9a: AudioBitRate UINT32 data type range: MIN 8000, MAX 1500000, STEP 1 READ ONLY de99: AudioWAVECodec UINT32 data type enumeration: 0, 85, 353, 384, 41222, 304, 1, READ ONLY de92: BitRateType UINT16 data type enumeration: 0, 1, 2, 3, GET/SET dc9b: AlbumArtist STRING data type GET/SET dc89: Duration UINT32 data type range: MIN 0, MAX -2147483648, 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 dc99: OriginalReleaseDate STRING data type GET/SET 300a: MS AVI 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, 32770, 32771, READ ONLY dc04: ObjectSize UINT64 data type READ ONLY dc07: ObjectFileName STRING data type 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 dc09: DateModified STRING data type GET/SET dc88: Height UINT32 data type range: MIN 0, MAX 240, STEP 1 READ ONLY dc87: Width UINT32 data type range: MIN 0, MAX 320, STEP 1 READ ONLY dc8c: Genre STRING data type GET/SET dc89: Duration UINT32 data type range: MIN 0, MAX -2147483648, 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 dc99: OriginalReleaseDate STRING data type GET/SET de93: SampleRate UINT32 data type range: MIN 8000, MAX 96000, STEP 50 READ ONLY de94: NumberOfChannels UINT16 data type enumeration: 1, 2, GET/SET de9a: AudioBitRate UINT32 data type range: MIN 8000, MAX 1500000, STEP 1 READ ONLY de99: AudioWAVECodec UINT32 data type enumeration: 0, 85, 353, 384, 41222, 304, 1, READ ONLY de97: ScanDepth UINT16 data type enumeration: 1, READ ONLY de9b: VideoFourCCCodec UINT32 data type enumeration: 861293911, GET/SET de9c: VideoBitRate UINT32 data type range: MIN 384000, MAX 768000, STEP 1 READ ONLY de9d: FramesPerThousandSeconds UINT32 data type enumeration: 24000, 25000, 29970, GET/SET de9e: KeyFrameDistance UINT32 data type range: MIN 0, MAX 15000, STEP 1 GET/SET 300c: ASF 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, 32770, 32771, READ ONLY dc04: ObjectSize UINT64 data type READ ONLY dc07: ObjectFileName STRING data type 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 dc09: DateModified STRING data type GET/SET dc46: Artist STRING data type GET/SET dc8b: Track UINT16 data type ANY 16BIT VALUE form GET/SET dc8c: Genre STRING data type GET/SET dc9a: AlbumName STRING data type GET/SET de93: SampleRate UINT32 data type range: MIN 8000, MAX 96000, STEP 50 READ ONLY de94: NumberOfChannels UINT16 data type enumeration: 1, 2, GET/SET de9a: AudioBitRate UINT32 data type range: MIN 8000, MAX 1500000, STEP 1 READ ONLY de99: AudioWAVECodec UINT32 data type enumeration: 0, 85, 353, 384, 41222, 304, 1, READ ONLY de92: BitRateType UINT16 data type enumeration: 0, 1, 2, 3, GET/SET dc9b: AlbumArtist STRING data type GET/SET dc89: Duration UINT32 data type range: MIN 0, MAX -2147483648, 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 dc99: OriginalReleaseDate STRING data type GET/SET 3801: JPEG 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, 32770, 32771, READ ONLY dc04: ObjectSize UINT64 data type READ ONLY dc07: ObjectFileName STRING data type 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 dc09: DateModified STRING data type GET/SET dc99: OriginalReleaseDate STRING data type GET/SET dc8a: Rating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET dc88: Height UINT32 data type range: MIN 0, MAX 240, STEP 1 READ ONLY dc87: Width UINT32 data type range: MIN 0, MAX 320, STEP 1 READ ONLY 3804: BMP 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, 32770, 32771, READ ONLY dc04: ObjectSize UINT64 data type READ ONLY dc07: ObjectFileName STRING data type 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 dc09: DateModified STRING data type GET/SET dc99: OriginalReleaseDate STRING data type GET/SET dc8a: Rating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET dc88: Height UINT32 data type range: MIN 0, MAX 240, STEP 1 READ ONLY dc87: Width UINT32 data type range: MIN 0, MAX 320, STEP 1 READ ONLY 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, 32770, 32771, READ ONLY dc04: ObjectSize UINT64 data type READ ONLY dc07: ObjectFileName STRING data type 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 dc09: DateModified STRING data type GET/SET 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, 32770, 32771, READ ONLY dc04: ObjectSize UINT64 data type READ ONLY dc07: ObjectFileName STRING data type 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 dc09: DateModified STRING data type GET/SET dc9b: AlbumArtist STRING data type GET/SET d901: BuyFlag UINT8 data type ANY 8BIT VALUE form GET/SET dc81: RepresentativeSampleFormat UINT16 data type enumeration: 14337, READ ONLY dc86: RepresentativeSampleData array of UINT8 data type byte array: GET/SET dc83: RepresentativeSampleHeight UINT32 data type range: MIN 0, MAX 320, STEP 1 READ ONLY dc84: RepresentativeSampleWidth UINT32 data type range: MIN 0, MAX 240, STEP 1 READ ONLY dc82: RepresentativeSampleSize UINT32 data type range: MIN 0, MAX 153600, STEP 10 READ ONLY dc8c: Genre STRING data type GET/SET 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, 32770, 32771, READ ONLY dc04: ObjectSize UINT64 data type READ ONLY dc07: ObjectFileName STRING data type 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 dc09: DateModified STRING data type GET/SET dc46: Artist STRING data type GET/SET dc8b: Track UINT16 data type ANY 16BIT VALUE form GET/SET dc8c: Genre STRING data type GET/SET dc9a: AlbumName STRING data type GET/SET de93: SampleRate UINT32 data type range: MIN 8000, MAX 96000, STEP 50 READ ONLY de94: NumberOfChannels UINT16 data type enumeration: 1, 2, GET/SET de9a: AudioBitRate UINT32 data type range: MIN 8000, MAX 1500000, STEP 1 READ ONLY de99: AudioWAVECodec UINT32 data type enumeration: 0, 85, 353, 384, 41222, 304, 1, READ ONLY de92: BitRateType UINT16 data type enumeration: 0, 1, 2, 3, GET/SET dc9b: AlbumArtist STRING data type GET/SET dc89: Duration UINT32 data type range: MIN 0, MAX -2147483648, 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 dc99: OriginalReleaseDate STRING data type GET/SET dc42: SyncID STRING data type GET/SET dc0d: Hidden UINT16 data type enumeration: 0, 1, GET/SET b981: WMV 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, 32770, 32771, READ ONLY dc04: ObjectSize UINT64 data type READ ONLY dc07: ObjectFileName STRING data type 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 dc09: DateModified STRING data type GET/SET dc88: Height UINT32 data type range: MIN 0, MAX 240, STEP 1 READ ONLY dc87: Width UINT32 data type range: MIN 0, MAX 320, STEP 1 READ ONLY dc8c: Genre STRING data type GET/SET dc89: Duration UINT32 data type range: MIN 0, MAX -2147483648, 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 dc99: OriginalReleaseDate STRING data type GET/SET de93: SampleRate UINT32 data type range: MIN 8000, MAX 96000, STEP 50 READ ONLY de94: NumberOfChannels UINT16 data type enumeration: 1, 2, GET/SET de9a: AudioBitRate UINT32 data type range: MIN 8000, MAX 1500000, STEP 1 READ ONLY de99: AudioWAVECodec UINT32 data type enumeration: 0, 85, 353, 384, 41222, 304, 1, READ ONLY de97: ScanDepth UINT16 data type enumeration: 1, READ ONLY de9b: VideoFourCCCodec UINT32 data type enumeration: 861293911, GET/SET de9c: VideoBitRate UINT32 data type range: MIN 384000, MAX 768000, STEP 1 READ ONLY de9d: FramesPerThousandSeconds UINT32 data type enumeration: 24000, 25000, 29970, GET/SET de9e: KeyFrameDistance UINT32 data type range: MIN 0, MAX 15000, STEP 1 GET/SET b982: MP4 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, 32770, 32771, READ ONLY dc04: ObjectSize UINT64 data type READ ONLY dc07: ObjectFileName STRING data type 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 dc09: DateModified STRING data type GET/SET dc88: Height UINT32 data type range: MIN 0, MAX 240, STEP 1 READ ONLY dc87: Width UINT32 data type range: MIN 0, MAX 320, STEP 1 READ ONLY dc8c: Genre STRING data type GET/SET dc89: Duration UINT32 data type range: MIN 0, MAX -2147483648, 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 dc99: OriginalReleaseDate STRING data type GET/SET de93: SampleRate UINT32 data type range: MIN 8000, MAX 96000, STEP 50 READ ONLY de94: NumberOfChannels UINT16 data type enumeration: 1, 2, GET/SET de9a: AudioBitRate UINT32 data type range: MIN 8000, MAX 1500000, STEP 1 READ ONLY de99: AudioWAVECodec UINT32 data type enumeration: 0, 85, 353, 384, 41222, 304, 1, READ ONLY de97: ScanDepth UINT16 data type enumeration: 1, READ ONLY de9b: VideoFourCCCodec UINT32 data type enumeration: 861293911, GET/SET de9c: VideoBitRate UINT32 data type range: MIN 384000, MAX 768000, STEP 1 READ ONLY de9d: FramesPerThousandSeconds UINT32 data type enumeration: 24000, 25000, 29970, GET/SET de9e: KeyFrameDistance UINT32 data type range: MIN 0, MAX 15000, STEP 1 GET/SET b006: Unknown(b006) 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, 32770, 32771, READ ONLY dc04: ObjectSize UINT64 data type READ ONLY dc07: ObjectFileName STRING data type 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 dc09: DateModified STRING data type GET/SET dc88: Height UINT32 data type range: MIN 0, MAX 240, STEP 1 READ ONLY dc87: Width UINT32 data type range: MIN 0, MAX 320, STEP 1 READ ONLY dc8c: Genre STRING data type GET/SET dc89: Duration UINT32 data type range: MIN 0, MAX -2147483648, 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 dc99: OriginalReleaseDate STRING data type GET/SET de93: SampleRate UINT32 data type range: MIN 8000, MAX 96000, STEP 50 READ ONLY de94: NumberOfChannels UINT16 data type enumeration: 1, 2, GET/SET de9a: AudioBitRate UINT32 data type range: MIN 8000, MAX 1500000, STEP 1 READ ONLY de99: AudioWAVECodec UINT32 data type enumeration: 0, 85, 353, 384, 41222, 304, 1, READ ONLY de97: ScanDepth UINT16 data type enumeration: 1, READ ONLY de9b: VideoFourCCCodec UINT32 data type enumeration: 861293911, GET/SET de9c: VideoBitRate UINT32 data type range: MIN 384000, MAX 768000, STEP 1 READ ONLY de9d: FramesPerThousandSeconds UINT32 data type enumeration: 24000, 25000, 29970, GET/SET de9e: KeyFrameDistance UINT32 data type range: MIN 0, MAX 15000, STEP 1 GET/SET b007: Unknown(b007) 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, 32770, 32771, READ ONLY dc04: ObjectSize UINT64 data type READ ONLY dc07: ObjectFileName STRING data type 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 dc09: DateModified STRING data type GET/SET dc88: Height UINT32 data type range: MIN 0, MAX 240, STEP 1 READ ONLY dc87: Width UINT32 data type range: MIN 0, MAX 320, STEP 1 READ ONLY dc8c: Genre STRING data type GET/SET dc89: Duration UINT32 data type range: MIN 0, MAX -2147483648, 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 dc99: OriginalReleaseDate STRING data type GET/SET de93: SampleRate UINT32 data type range: MIN 8000, MAX 96000, STEP 50 READ ONLY de94: NumberOfChannels UINT16 data type enumeration: 1, 2, GET/SET de9a: AudioBitRate UINT32 data type range: MIN 8000, MAX 1500000, STEP 1 READ ONLY de99: AudioWAVECodec UINT32 data type enumeration: 0, 85, 353, 384, 41222, 304, 1, READ ONLY de97: ScanDepth UINT16 data type enumeration: 1, READ ONLY de9b: VideoFourCCCodec UINT32 data type enumeration: 861293911, GET/SET de9c: VideoBitRate UINT32 data type range: MIN 384000, MAX 768000, STEP 1 READ ONLY de9d: FramesPerThousandSeconds UINT32 data type enumeration: 24000, 25000, 29970, GET/SET de9e: KeyFrameDistance UINT32 data type range: MIN 0, MAX 15000, STEP 1 GET/SET b904: Audible.com Codec 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, 32770, 32771, READ ONLY dc04: ObjectSize UINT64 data type READ ONLY dc07: ObjectFileName STRING data type 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 dc09: DateModified STRING data type GET/SET dc46: Artist STRING data type GET/SET dc8b: Track UINT16 data type ANY 16BIT VALUE form GET/SET dc8c: Genre STRING data type GET/SET dc9a: AlbumName STRING data type GET/SET de93: SampleRate UINT32 data type range: MIN 8000, MAX 96000, STEP 50 READ ONLY de94: NumberOfChannels UINT16 data type enumeration: 1, 2, GET/SET de9a: AudioBitRate UINT32 data type range: MIN 8000, MAX 1500000, STEP 1 READ ONLY de99: AudioWAVECodec UINT32 data type enumeration: 0, 85, 353, 384, 41222, 304, 1, READ ONLY de92: BitRateType UINT16 data type enumeration: 0, 1, 2, 3, GET/SET dc9b: AlbumArtist STRING data type GET/SET dc89: Duration UINT32 data type range: MIN 0, MAX -2147483648, 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 dc99: OriginalReleaseDate STRING data type GET/SET da00: unknown(da00) UINT32 data type enumeration: 0, 2, 3, 4, 6, 7, 8, GET/SET da01: unknown(da01) STRING data type GET/SET da02: unknown(da02) UINT32 data type ANY 32BIT VALUE form GET/SET da03: unknown(da03) UINT32 data type enumeration: 0, 1, GET/SET b903: AAC 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, 32770, 32771, READ ONLY dc04: ObjectSize UINT64 data type READ ONLY dc07: ObjectFileName STRING data type 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 dc09: DateModified STRING data type GET/SET dc46: Artist STRING data type GET/SET dc8b: Track UINT16 data type ANY 16BIT VALUE form GET/SET dc8c: Genre STRING data type GET/SET dc9a: AlbumName STRING data type GET/SET de93: SampleRate UINT32 data type range: MIN 8000, MAX 96000, STEP 50 READ ONLY de94: NumberOfChannels UINT16 data type enumeration: 1, 2, GET/SET de9a: AudioBitRate UINT32 data type range: MIN 8000, MAX 1500000, STEP 1 READ ONLY de99: AudioWAVECodec UINT32 data type enumeration: 0, 85, 353, 384, 41222, 304, 1, READ ONLY de92: BitRateType UINT16 data type enumeration: 0, 1, 2, 3, GET/SET dc9b: AlbumArtist STRING data type GET/SET dc89: Duration UINT32 data type range: MIN 0, MAX -2147483648, 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 dc99: OriginalReleaseDate STRING data type GET/SET b004: Unknown(b004) 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, 32770, 32771, READ ONLY dc04: ObjectSize UINT64 data type READ ONLY dc07: ObjectFileName STRING data type 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 dc09: DateModified STRING data type GET/SET dc88: Height UINT32 data type range: MIN 0, MAX 240, STEP 1 READ ONLY dc87: Width UINT32 data type range: MIN 0, MAX 320, STEP 1 READ ONLY dc8c: Genre STRING data type GET/SET dc89: Duration UINT32 data type range: MIN 0, MAX -2147483648, 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 dc99: OriginalReleaseDate STRING data type GET/SET de93: SampleRate UINT32 data type range: MIN 8000, MAX 96000, STEP 50 READ ONLY de94: NumberOfChannels UINT16 data type enumeration: 1, 2, GET/SET de9a: AudioBitRate UINT32 data type range: MIN 8000, MAX 1500000, STEP 1 READ ONLY de99: AudioWAVECodec UINT32 data type enumeration: 0, 85, 353, 384, 41222, 304, 1, READ ONLY de97: ScanDepth UINT16 data type enumeration: 1, READ ONLY de9b: VideoFourCCCodec UINT32 data type enumeration: 861293911, GET/SET de9c: VideoBitRate UINT32 data type range: MIN 384000, MAX 768000, STEP 1 READ ONLY de9d: FramesPerThousandSeconds UINT32 data type enumeration: 24000, 25000, 29970, GET/SET de9e: KeyFrameDistance UINT32 data type range: MIN 0, MAX 15000, STEP 1 GET/SET Storage Devices: StorageID: 0x000140ee StorageType: 0x0003 FilesystemType: 0x0002 AccessCapability: 0x0000 MaxCapacity: 16284636528 FreeSpaceInBytes: 16252835184 FreeSpaceInObjects: 4294967295 StorageDescription: Internal Memory VolumeIdentifier: VOL0_Sansa_View_Å_03534453443136478016ace445007c3f00000000 Special directories: Default music folder: 0x0000038f Default playlist folder: 0x00000391 Default picture folder: 0x00000390 Default video folder: 0x00000392 Default organizer folder: 0x00000000 Default zencast folder: 0x00000000 Default album folder: 0x00000000 Default text folder: 0x00000000 MTP-specific device properties: Friendly name: Sansa View Synchronization partner: Battery level 94 of 100 (94%) libmtp supported (playable) filetypes: Text file RIFF WAVE file ISO MPEG-1 Audio Layer 3 Audio Video Interleave Microsoft Advanced Systems Format JPEG file BMP bitmap file Microsoft Windows Media Audio Microsoft Windows Media Video MPEG-4 Part 14 Container Format (Audio+Video Empahsis) Audible.com Audio Codec Advanced Audio Coding (AAC)/MPEG-2 Part 7/MPEG-4 Part 3 Secure Time: <DRMCLOCK type="status"><VALUE>#20080210 09:56:25Z#</VALUE><FLAG>DRM_CLK_NEEDS_REFRESH</FLAG></DRMCLOCK> Device Certificate: <DEVCERT version="1.0"><CERTIFICATE type="DEVICE"><DATA><UNIQUEID private="1">U0RTA0c2MUTkrBaAP3wARQAAAAA=</UNIQUEID><PUBLICKEY private="1">edaeOzVxG/JIdnJvZdsoDUx+MVUsua2D9ju/Bi4+FLB0iN7OwgS+Ig==</PUBLICKEY><KEYDATA>FVUl73KsfFLQ7Db7wwE4jIWiFeo=</KEYDATA></DATA><MSDRM_SIGNATURE_VALUE>F/moY/dTqcO2XVU6FHym86khcTsMO40n2DWW1MFNEfUadnmS3hrIcw==</MSDRM_SIGNATURE_VALUE><SYMSIGNATURE>XeOjB8AJ0oa8KRlBEDKDcFtWMZw=</SYMSIGNATURE></CERTIFICATE><FALLBACK><SECURITYVERSION>2.4.108.239</SECURITYVERSION><CERTIFICATE private="1">edaeOzVxG/JIdnJvZdsoDUx+MVUsua2D9ju/Bi4+FLB0iN7OwgS+IgIEbO/eJnPjCYZbHVRFmPqA4MkbyD+dbXvQXvrO9nrerPVABwVapFabxgko</CERTIFICATE></FALLBACK><CERTIFICATE type="GROUP"><DATA><NAME>ARDIS</NAME> <MANUFACTURER>SanDisk Corporation</MANUFACTURER> <MAKE>Sansa</MAKE> <MODEL>View</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> <SECURITYLEVEL>2000</SECURITYLEVEL> <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>1</LICENSE_ACQ> <LICENSE_SYNC>1</LICENSE_SYNC> <ENCRYPTION>1</ENCRYPTION> <SYMMETRIC_OPT>1</SYMMETRIC_OPT> </FEATURES> <LIMITS> <MAXCHAINDEPTH>2</MAXCHAINDEPTH> <MAXLICENSESIZE>10240</MAXLICENSESIZE> <MAXHEADERSIZE>5120</MAXHEADERSIZE> </LIMITS><PUBLICKEY>vcQcwDe3KpgotXvfJiXmfGzz1kVu7nWS6Kq2fB1S852WTkwzvjgLVg==</PUBLICKEY></DATA><MSDRM_SIGNATURE_VALUE>9Va50evyhPmggceM5lUhZReFmCOXtt4zxWAwEbEL9AWPSk+YJVneeQ==</MSDRM_SIGNATURE_VALUE></CERTIFICATE><CERTIFICATE type="AUTHORIZATION"><DATA><SECURITYLEVEL>2000</SECURITYLEVEL><AUTH_ID>2131</AUTH_ID><PUBLICKEY>3JwjYFj2GuZrhCAshbYFNjgb9g2pl2j0nR8PR2rqyk4iIARZrN4GOQ==</PUBLICKEY></DATA><MSDRM_SIGNATURE_VALUE>0cVGnu9hX+UnKPMdJM7a826zujPW8a+FgRJ/jaLPwDI+7reLs8/TaA==</MSDRM_SIGNATURE_VALUE></CERTIFICATE><CERTIFICATE type="AUTHORIZATION_ROOT"><DATA><AUTH_ID>1</AUTH_ID><PUBLICKEY>a1t3hxrg!qbOgktnbYaEEi4teCse!gz6RvTPuC!zizKJlpU7xoduSw==</PUBLICKEY></DATA><MSDRM_SIGNATURE_VALUE>dTBxJVHefh/5NTk0veRFWUhHUmGonGPm4NiwqTiuRqKngtoABOG3iA==</MSDRM_SIGNATURE_VALUE></CERTIFICATE></DEVCERT> WMPInfo.xml Does not exist on this device PTP: Closing session OK. ----------------end-------------- |
From: Darren O. <do...@gm...> - 2008-02-11 20:06:29
|
This is exactly the same out put I have and I am requiring my setup to remain MTP, as I am using Amazon Unbox, etc. which are windows based. On Feb 11, 2008 1:03 PM, Sciamano <sci...@gm...> wrote: > If it helps, this is the mtp-detect output (once I launch it at the > right moment :-) > > -------------------begin----------------- > libmtp version: 0.2.5 > > Attempting to connect device(s) > PTP: Opening session > Detect: Successfully connected 1 devices > USB low-level info: > Using kernel interface "usbfs" > bcdUSB: 512 > bDeviceClass: 0 > bDeviceSubClass: 0 > bDeviceProtocol: 0 > idVendor: 0781 > idProduct: 74b0 > IN endpoint maxpacket: 512 bytes > OUT endpoint maxpacket: 512 bytes > Device flags: 0x00000043 > Microsoft device descriptor 0xee: > 0000: 1203 4d00 5300 4600 5400 3100 3000 3000 ..M.S.F.T.1.0.0. > 0010: fe00 4d54 5000 0000 0000 0000 0000 0000 ..MTP........... > 0020: 0000 0000 0000 0000 3600 6100 6300 6500 ........6.a.c.e. > 0030: 3400 3400 3500 3000 3000 3700 6300 3300 4.4.5.0.0.7.c.3. > 0040: 6600 3000 3000 3000 3000 3000 3000 3000 f.0.0.0.0.0.0.0. > 0050: 3000 0000 0000 0000 0000 0000 0000 0000 0............... > 0060: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0070: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0080: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0090: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 00a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 00b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 00c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 00d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 00e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 00f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0100: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0110: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0120: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0130: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0140: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0150: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0160: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0170: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0180: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0190: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 01a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 01b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 01c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 01d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 01e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 01f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0200: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0210: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0220: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0230: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0240: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0250: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0260: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0270: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0280: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0290: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 02a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 02b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 02c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 02d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 02e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 02f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0300: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0310: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0320: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0330: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0340: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0350: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0360: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0370: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0380: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0390: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 03a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 03b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 03c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 03d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 03e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 03f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 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 3600 6100 6300 6500 ........6.a.c.e. > 0030: 3400 3400 3500 3000 3000 3700 6300 3300 4.4.5.0.0.7.c.3. > 0040: 6600 3000 3000 3000 3000 3000 3000 3000 f.0.0.0.0.0.0.0. > 0050: 3000 0000 0000 0000 0000 0000 0000 0000 0............... > 0060: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0070: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0080: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0090: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 00a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 00b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 00c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 00d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 00e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 00f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0100: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0110: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0120: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0130: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0140: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0150: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0160: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0170: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0180: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0190: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 01a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 01b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 01c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 01d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 01e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 01f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0200: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0210: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0220: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0230: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0240: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0250: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0260: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0270: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0280: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0290: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 02a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 02b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 02c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 02d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 02e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 02f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0300: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0310: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0320: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0330: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0340: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0350: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0360: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0370: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0380: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 0390: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 03a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 03b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 03c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 03d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 03e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > 03f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ > Potential MTP Device with VendorID:0781 and ProductID:74b0 responded > to control message 2 with a response that was too short. Problems may > arrise but continuing > Device info: > Manufacturer: SanDisk > Model: Sansa View > Device version: 01.01.06A > Serial number: 03534453443136478016ace445007c3f00000000 > Vendor extension ID: 0x00000006 > Vendor extension description: microsoft.com: 1.0; > microsoft.com/WMPPD: 10.0; microsoft.com/WMDRMPD: 10.1; audible.com: > 1.0 > Detected object size: 64 bits > Supported operations: > 1014: Get device property description > 1015: Get device property value > 1016: Set device property value > 1017: Reset device property value > 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 > 101b: Get partial object > 100c: Send object info > 100d: Send object > 100b: Delete object > 1012: Set object protection > 100f: Format storage > 9801: Get object properties supported > 9802: Get object property description > 9803: Get object property value > 9804: Set object property value > 9805: Get object property list > 9806: Set object property list > 9810: Get object references > 9811: Set object references > 9201: Report Added/Deleted 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 > Events supported: > 0x4004 > 0x4005 > Device Properties Supported: > 0x5001: Battery Level > 0xd100: Unknown property > 0xd101: Secure Time > 0xd102: Device Certificate > 0xd401: Synchronization Partner > 0xd402: Friendly Device Name > Playable File (Object) Types and Object Properties Supported: > 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, > 32770, 32771, READ ONLY > dc04: ObjectSize UINT64 data type READ ONLY > dc07: ObjectFileName STRING data type 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 > dc09: DateModified STRING data type GET/SET > 3004: Text > 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, > 32770, 32771, READ ONLY > dc04: ObjectSize UINT64 data type READ ONLY > dc07: ObjectFileName STRING data type 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 > dc09: DateModified STRING data type GET/SET > 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, > 32770, 32771, READ ONLY > dc04: ObjectSize UINT64 data type READ ONLY > dc07: ObjectFileName STRING data type 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 > dc09: DateModified STRING data type GET/SET > 3008: MS Wave > 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, > 32770, 32771, READ ONLY > dc04: ObjectSize UINT64 data type READ ONLY > dc07: ObjectFileName STRING data type 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 > dc09: DateModified STRING data type GET/SET > dc46: Artist STRING data type GET/SET > dc8b: Track UINT16 data type ANY 16BIT VALUE form GET/SET > dc8c: Genre STRING data type GET/SET > dc9a: AlbumName STRING data type GET/SET > de93: SampleRate UINT32 data type range: MIN 8000, MAX 96000, > STEP 50 READ ONLY > de94: NumberOfChannels UINT16 data type enumeration: 1, 2, GET/SET > de9a: AudioBitRate UINT32 data type range: MIN 8000, MAX > 1500000, STEP 1 READ ONLY > de99: AudioWAVECodec UINT32 data type enumeration: 0, 85, 353, > 384, 41222, 304, 1, READ ONLY > de92: BitRateType UINT16 data type enumeration: 0, 1, 2, 3, GET/SET > dc9b: AlbumArtist STRING data type GET/SET > dc89: Duration UINT32 data type range: MIN 0, MAX -2147483648, > 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 > dc99: OriginalReleaseDate STRING data type 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, > 32770, 32771, READ ONLY > dc04: ObjectSize UINT64 data type READ ONLY > dc07: ObjectFileName STRING data type 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 > dc09: DateModified STRING data type GET/SET > dc46: Artist STRING data type GET/SET > dc8b: Track UINT16 data type ANY 16BIT VALUE form GET/SET > dc8c: Genre STRING data type GET/SET > dc9a: AlbumName STRING data type GET/SET > de93: SampleRate UINT32 data type range: MIN 8000, MAX 96000, > STEP 50 READ ONLY > de94: NumberOfChannels UINT16 data type enumeration: 1, 2, GET/SET > de9a: AudioBitRate UINT32 data type range: MIN 8000, MAX > 1500000, STEP 1 READ ONLY > de99: AudioWAVECodec UINT32 data type enumeration: 0, 85, 353, > 384, 41222, 304, 1, READ ONLY > de92: BitRateType UINT16 data type enumeration: 0, 1, 2, 3, GET/SET > dc9b: AlbumArtist STRING data type GET/SET > dc89: Duration UINT32 data type range: MIN 0, MAX -2147483648, > 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 > dc99: OriginalReleaseDate STRING data type GET/SET > 300a: MS AVI > 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, > 32770, 32771, READ ONLY > dc04: ObjectSize UINT64 data type READ ONLY > dc07: ObjectFileName STRING data type 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 > dc09: DateModified STRING data type GET/SET > dc88: Height UINT32 data type range: MIN 0, MAX 240, STEP 1 READ ONLY > dc87: Width UINT32 data type range: MIN 0, MAX 320, STEP 1 READ ONLY > dc8c: Genre STRING data type GET/SET > dc89: Duration UINT32 data type range: MIN 0, MAX -2147483648, > 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 > dc99: OriginalReleaseDate STRING data type GET/SET > de93: SampleRate UINT32 data type range: MIN 8000, MAX 96000, > STEP 50 READ ONLY > de94: NumberOfChannels UINT16 data type enumeration: 1, 2, GET/SET > de9a: AudioBitRate UINT32 data type range: MIN 8000, MAX > 1500000, STEP 1 READ ONLY > de99: AudioWAVECodec UINT32 data type enumeration: 0, 85, 353, > 384, 41222, 304, 1, READ ONLY > de97: ScanDepth UINT16 data type enumeration: 1, READ ONLY > de9b: VideoFourCCCodec UINT32 data type enumeration: 861293911, > GET/SET > de9c: VideoBitRate UINT32 data type range: MIN 384000, MAX > 768000, STEP 1 READ ONLY > de9d: FramesPerThousandSeconds UINT32 data type enumeration: > 24000, 25000, 29970, GET/SET > de9e: KeyFrameDistance UINT32 data type range: MIN 0, MAX 15000, > STEP 1 GET/SET > 300c: ASF > 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, > 32770, 32771, READ ONLY > dc04: ObjectSize UINT64 data type READ ONLY > dc07: ObjectFileName STRING data type 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 > dc09: DateModified STRING data type GET/SET > dc46: Artist STRING data type GET/SET > dc8b: Track UINT16 data type ANY 16BIT VALUE form GET/SET > dc8c: Genre STRING data type GET/SET > dc9a: AlbumName STRING data type GET/SET > de93: SampleRate UINT32 data type range: MIN 8000, MAX 96000, > STEP 50 READ ONLY > de94: NumberOfChannels UINT16 data type enumeration: 1, 2, GET/SET > de9a: AudioBitRate UINT32 data type range: MIN 8000, MAX > 1500000, STEP 1 READ ONLY > de99: AudioWAVECodec UINT32 data type enumeration: 0, 85, 353, > 384, 41222, 304, 1, READ ONLY > de92: BitRateType UINT16 data type enumeration: 0, 1, 2, 3, GET/SET > dc9b: AlbumArtist STRING data type GET/SET > dc89: Duration UINT32 data type range: MIN 0, MAX -2147483648, > 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 > dc99: OriginalReleaseDate STRING data type GET/SET > 3801: JPEG > 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, > 32770, 32771, READ ONLY > dc04: ObjectSize UINT64 data type READ ONLY > dc07: ObjectFileName STRING data type 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 > dc09: DateModified STRING data type GET/SET > dc99: OriginalReleaseDate STRING data type GET/SET > dc8a: Rating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET > dc88: Height UINT32 data type range: MIN 0, MAX 240, STEP 1 READ ONLY > dc87: Width UINT32 data type range: MIN 0, MAX 320, STEP 1 READ ONLY > 3804: BMP > 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, > 32770, 32771, READ ONLY > dc04: ObjectSize UINT64 data type READ ONLY > dc07: ObjectFileName STRING data type 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 > dc09: DateModified STRING data type GET/SET > dc99: OriginalReleaseDate STRING data type GET/SET > dc8a: Rating UINT16 data type range: MIN 0, MAX 100, STEP 1 GET/SET > dc88: Height UINT32 data type range: MIN 0, MAX 240, STEP 1 READ ONLY > dc87: Width UINT32 data type range: MIN 0, MAX 320, STEP 1 READ ONLY > 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, > 32770, 32771, READ ONLY > dc04: ObjectSize UINT64 data type READ ONLY > dc07: ObjectFileName STRING data type 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 > dc09: DateModified STRING data type GET/SET > 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, > 32770, 32771, READ ONLY > dc04: ObjectSize UINT64 data type READ ONLY > dc07: ObjectFileName STRING data type 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 > dc09: DateModified STRING data type GET/SET > dc9b: AlbumArtist STRING data type GET/SET > d901: BuyFlag UINT8 data type ANY 8BIT VALUE form GET/SET > dc81: RepresentativeSampleFormat UINT16 data type enumeration: > 14337, READ ONLY > dc86: RepresentativeSampleData array of UINT8 data type byte > array: GET/SET > dc83: RepresentativeSampleHeight UINT32 data type range: MIN 0, > MAX 320, STEP 1 READ ONLY > dc84: RepresentativeSampleWidth UINT32 data type range: MIN 0, > MAX 240, STEP 1 READ ONLY > dc82: RepresentativeSampleSize UINT32 data type range: MIN 0, > MAX 153600, STEP 10 READ ONLY > dc8c: Genre STRING data type GET/SET > 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, > 32770, 32771, READ ONLY > dc04: ObjectSize UINT64 data type READ ONLY > dc07: ObjectFileName STRING data type 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 > dc09: DateModified STRING data type GET/SET > dc46: Artist STRING data type GET/SET > dc8b: Track UINT16 data type ANY 16BIT VALUE form GET/SET > dc8c: Genre STRING data type GET/SET > dc9a: AlbumName STRING data type GET/SET > de93: SampleRate UINT32 data type range: MIN 8000, MAX 96000, > STEP 50 READ ONLY > de94: NumberOfChannels UINT16 data type enumeration: 1, 2, GET/SET > de9a: AudioBitRate UINT32 data type range: MIN 8000, MAX > 1500000, STEP 1 READ ONLY > de99: AudioWAVECodec UINT32 data type enumeration: 0, 85, 353, > 384, 41222, 304, 1, READ ONLY > de92: BitRateType UINT16 data type enumeration: 0, 1, 2, 3, GET/SET > dc9b: AlbumArtist STRING data type GET/SET > dc89: Duration UINT32 data type range: MIN 0, MAX -2147483648, > 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 > dc99: OriginalReleaseDate STRING data type GET/SET > dc42: SyncID STRING data type GET/SET > dc0d: Hidden UINT16 data type enumeration: 0, 1, GET/SET > b981: WMV > 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, > 32770, 32771, READ ONLY > dc04: ObjectSize UINT64 data type READ ONLY > dc07: ObjectFileName STRING data type 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 > dc09: DateModified STRING data type GET/SET > dc88: Height UINT32 data type range: MIN 0, MAX 240, STEP 1 READ ONLY > dc87: Width UINT32 data type range: MIN 0, MAX 320, STEP 1 READ ONLY > dc8c: Genre STRING data type GET/SET > dc89: Duration UINT32 data type range: MIN 0, MAX -2147483648, > 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 > dc99: OriginalReleaseDate STRING data type GET/SET > de93: SampleRate UINT32 data type range: MIN 8000, MAX 96000, > STEP 50 READ ONLY > de94: NumberOfChannels UINT16 data type enumeration: 1, 2, GET/SET > de9a: AudioBitRate UINT32 data type range: MIN 8000, MAX > 1500000, STEP 1 READ ONLY > de99: AudioWAVECodec UINT32 data type enumeration: 0, 85, 353, > 384, 41222, 304, 1, READ ONLY > de97: ScanDepth UINT16 data type enumeration: 1, READ ONLY > de9b: VideoFourCCCodec UINT32 data type enumeration: 861293911, > GET/SET > de9c: VideoBitRate UINT32 data type range: MIN 384000, MAX > 768000, STEP 1 READ ONLY > de9d: FramesPerThousandSeconds UINT32 data type enumeration: > 24000, 25000, 29970, GET/SET > de9e: KeyFrameDistance UINT32 data type range: MIN 0, MAX 15000, > STEP 1 GET/SET > b982: MP4 > 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, > 32770, 32771, READ ONLY > dc04: ObjectSize UINT64 data type READ ONLY > dc07: ObjectFileName STRING data type 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 > dc09: DateModified STRING data type GET/SET > dc88: Height UINT32 data type range: MIN 0, MAX 240, STEP 1 READ ONLY > dc87: Width UINT32 data type range: MIN 0, MAX 320, STEP 1 READ ONLY > dc8c: Genre STRING data type GET/SET > dc89: Duration UINT32 data type range: MIN 0, MAX -2147483648, > 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 > dc99: OriginalReleaseDate STRING data type GET/SET > de93: SampleRate UINT32 data type range: MIN 8000, MAX 96000, > STEP 50 READ ONLY > de94: NumberOfChannels UINT16 data type enumeration: 1, 2, GET/SET > de9a: AudioBitRate UINT32 data type range: MIN 8000, MAX > 1500000, STEP 1 READ ONLY > de99: AudioWAVECodec UINT32 data type enumeration: 0, 85, 353, > 384, 41222, 304, 1, READ ONLY > de97: ScanDepth UINT16 data type enumeration: 1, READ ONLY > de9b: VideoFourCCCodec UINT32 data type enumeration: 861293911, > GET/SET > de9c: VideoBitRate UINT32 data type range: MIN 384000, MAX > 768000, STEP 1 READ ONLY > de9d: FramesPerThousandSeconds UINT32 data type enumeration: > 24000, 25000, 29970, GET/SET > de9e: KeyFrameDistance UINT32 data type range: MIN 0, MAX 15000, > STEP 1 GET/SET > b006: Unknown(b006) > 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, > 32770, 32771, READ ONLY > dc04: ObjectSize UINT64 data type READ ONLY > dc07: ObjectFileName STRING data type 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 > dc09: DateModified STRING data type GET/SET > dc88: Height UINT32 data type range: MIN 0, MAX 240, STEP 1 READ ONLY > dc87: Width UINT32 data type range: MIN 0, MAX 320, STEP 1 READ ONLY > dc8c: Genre STRING data type GET/SET > dc89: Duration UINT32 data type range: MIN 0, MAX -2147483648, > 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 > dc99: OriginalReleaseDate STRING data type GET/SET > de93: SampleRate UINT32 data type range: MIN 8000, MAX 96000, > STEP 50 READ ONLY > de94: NumberOfChannels UINT16 data type enumeration: 1, 2, GET/SET > de9a: AudioBitRate UINT32 data type range: MIN 8000, MAX > 1500000, STEP 1 READ ONLY > de99: AudioWAVECodec UINT32 data type enumeration: 0, 85, 353, > 384, 41222, 304, 1, READ ONLY > de97: ScanDepth UINT16 data type enumeration: 1, READ ONLY > de9b: VideoFourCCCodec UINT32 data type enumeration: 861293911, > GET/SET > de9c: VideoBitRate UINT32 data type range: MIN 384000, MAX > 768000, STEP 1 READ ONLY > de9d: FramesPerThousandSeconds UINT32 data type enumeration: > 24000, 25000, 29970, GET/SET > de9e: KeyFrameDistance UINT32 data type range: MIN 0, MAX 15000, > STEP 1 GET/SET > b007: Unknown(b007) > 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, > 32770, 32771, READ ONLY > dc04: ObjectSize UINT64 data type READ ONLY > dc07: ObjectFileName STRING data type 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 > dc09: DateModified STRING data type GET/SET > dc88: Height UINT32 data type range: MIN 0, MAX 240, STEP 1 READ ONLY > dc87: Width UINT32 data type range: MIN 0, MAX 320, STEP 1 READ ONLY > dc8c: Genre STRING data type GET/SET > dc89: Duration UINT32 data type range: MIN 0, MAX -2147483648, > 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 > dc99: OriginalReleaseDate STRING data type GET/SET > de93: SampleRate UINT32 data type range: MIN 8000, MAX 96000, > STEP 50 READ ONLY > de94: NumberOfChannels UINT16 data type enumeration: 1, 2, GET/SET > de9a: AudioBitRate UINT32 data type range: MIN 8000, MAX > 1500000, STEP 1 READ ONLY > de99: AudioWAVECodec UINT32 data type enumeration: 0, 85, 353, > 384, 41222, 304, 1, READ ONLY > de97: ScanDepth UINT16 data type enumeration: 1, READ ONLY > de9b: VideoFourCCCodec UINT32 data type enumeration: 861293911, > GET/SET > de9c: VideoBitRate UINT32 data type range: MIN 384000, MAX > 768000, STEP 1 READ ONLY > de9d: FramesPerThousandSeconds UINT32 data type enumeration: > 24000, 25000, 29970, GET/SET > de9e: KeyFrameDistance UINT32 data type range: MIN 0, MAX 15000, > STEP 1 GET/SET > b904: Audible.com Codec > 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, > 32770, 32771, READ ONLY > dc04: ObjectSize UINT64 data type READ ONLY > dc07: ObjectFileName STRING data type 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 > dc09: DateModified STRING data type GET/SET > dc46: Artist STRING data type GET/SET > dc8b: Track UINT16 data type ANY 16BIT VALUE form GET/SET > dc8c: Genre STRING data type GET/SET > dc9a: AlbumName STRING data type GET/SET > de93: SampleRate UINT32 data type range: MIN 8000, MAX 96000, > STEP 50 READ ONLY > de94: NumberOfChannels UINT16 data type enumeration: 1, 2, GET/SET > de9a: AudioBitRate UINT32 data type range: MIN 8000, MAX > 1500000, STEP 1 READ ONLY > de99: AudioWAVECodec UINT32 data type enumeration: 0, 85, 353, > 384, 41222, 304, 1, READ ONLY > de92: BitRateType UINT16 data type enumeration: 0, 1, 2, 3, GET/SET > dc9b: AlbumArtist STRING data type GET/SET > dc89: Duration UINT32 data type range: MIN 0, MAX -2147483648, > 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 > dc99: OriginalReleaseDate STRING data type GET/SET > da00: unknown(da00) UINT32 data type enumeration: 0, 2, 3, 4, 6, > 7, 8, GET/SET > da01: unknown(da01) STRING data type GET/SET > da02: unknown(da02) UINT32 data type ANY 32BIT VALUE form GET/SET > da03: unknown(da03) UINT32 data type enumeration: 0, 1, GET/SET > b903: AAC > 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, > 32770, 32771, READ ONLY > dc04: ObjectSize UINT64 data type READ ONLY > dc07: ObjectFileName STRING data type 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 > dc09: DateModified STRING data type GET/SET > dc46: Artist STRING data type GET/SET > dc8b: Track UINT16 data type ANY 16BIT VALUE form GET/SET > dc8c: Genre STRING data type GET/SET > dc9a: AlbumName STRING data type GET/SET > de93: SampleRate UINT32 data type range: MIN 8000, MAX 96000, > STEP 50 READ ONLY > de94: NumberOfChannels UINT16 data type enumeration: 1, 2, GET/SET > de9a: AudioBitRate UINT32 data type range: MIN 8000, MAX > 1500000, STEP 1 READ ONLY > de99: AudioWAVECodec UINT32 data type enumeration: 0, 85, 353, > 384, 41222, 304, 1, READ ONLY > de92: BitRateType UINT16 data type enumeration: 0, 1, 2, 3, GET/SET > dc9b: AlbumArtist STRING data type GET/SET > dc89: Duration UINT32 data type range: MIN 0, MAX -2147483648, > 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 > dc99: OriginalReleaseDate STRING data type GET/SET > b004: Unknown(b004) > 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, > 32770, 32771, READ ONLY > dc04: ObjectSize UINT64 data type READ ONLY > dc07: ObjectFileName STRING data type 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 > dc09: DateModified STRING data type GET/SET > dc88: Height UINT32 data type range: MIN 0, MAX 240, STEP 1 READ ONLY > dc87: Width UINT32 data type range: MIN 0, MAX 320, STEP 1 READ ONLY > dc8c: Genre STRING data type GET/SET > dc89: Duration UINT32 data type range: MIN 0, MAX -2147483648, > 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 > dc99: OriginalReleaseDate STRING data type GET/SET > de93: SampleRate UINT32 data type range: MIN 8000, MAX 96000, > STEP 50 READ ONLY > de94: NumberOfChannels UINT16 data type enumeration: 1, 2, GET/SET > de9a: AudioBitRate UINT32 data type range: MIN 8000, MAX > 1500000, STEP 1 READ ONLY > de99: AudioWAVECodec UINT32 data type enumeration: 0, 85, 353, > 384, 41222, 304, 1, READ ONLY > de97: ScanDepth UINT16 data type enumeration: 1, READ ONLY > de9b: VideoFourCCCodec UINT32 data type enumeration: 861293911, > GET/SET > de9c: VideoBitRate UINT32 data type range: MIN 384000, MAX > 768000, STEP 1 READ ONLY > de9d: FramesPerThousandSeconds UINT32 data type enumeration: > 24000, 25000, 29970, GET/SET > de9e: KeyFrameDistance UINT32 data type range: MIN 0, MAX 15000, > STEP 1 GET/SET > Storage Devices: > StorageID: 0x000140ee > StorageType: 0x0003 > FilesystemType: 0x0002 > AccessCapability: 0x0000 > MaxCapacity: 16284636528 > FreeSpaceInBytes: 16252835184 > FreeSpaceInObjects: 4294967295 > StorageDescription: Internal Memory > VolumeIdentifier: > VOL0_Sansa_View_Å_03534453443136478016ace445007c3f00000000 > Special directories: > Default music folder: 0x0000038f > Default playlist folder: 0x00000391 > Default picture folder: 0x00000390 > Default video folder: 0x00000392 > Default organizer folder: 0x00000000 > Default zencast folder: 0x00000000 > Default album folder: 0x00000000 > Default text folder: 0x00000000 > MTP-specific device properties: > Friendly name: Sansa View > Synchronization partner: > Battery level 94 of 100 (94%) > libmtp supported (playable) filetypes: > Text file > RIFF WAVE file > ISO MPEG-1 Audio Layer 3 > Audio Video Interleave > Microsoft Advanced Systems Format > JPEG file > BMP bitmap file > Microsoft Windows Media Audio > Microsoft Windows Media Video > MPEG-4 Part 14 Container Format (Audio+Video Empahsis) > Audible.com Audio Codec > Advanced Audio Coding (AAC)/MPEG-2 Part 7/MPEG-4 Part 3 > > Secure Time: > <DRMCLOCK type="status"><VALUE>#20080210 > 09:56:25Z#</VALUE><FLAG>DRM_CLK_NEEDS_REFRESH</FLAG></DRMCLOCK> > > Device Certificate: > <DEVCERT version="1.0"><CERTIFICATE type="DEVICE"><DATA><UNIQUEID > private="1">U0RTA0c2MUTkrBaAP3wARQAAAAA=</UNIQUEID><PUBLICKEY > > private="1">edaeOzVxG/JIdnJvZdsoDUx+MVUsua2D9ju/Bi4+FLB0iN7OwgS+Ig==</PUBLICKEY><KEYDATA>FVUl73KsfFLQ7Db7wwE4jIWiFeo=</KEYDATA></DATA><MSDRM_SIGNATURE_VALUE>F/moY/dTqcO2XVU6FHym86khcTsMO40n2DWW1MFNEfUadnmS3hrIcw==</MSDRM_SIGNATURE_VALUE><SYMSIGNATURE>XeOjB8AJ0oa8KRlBEDKDcFtWMZw=</SYMSIGNATURE></CERTIFICATE><FALLBACK><SECURITYVERSION> > 2.4.108.239</SECURITYVERSION><CERTIFICATE > > private="1">edaeOzVxG/JIdnJvZdsoDUx+MVUsua2D9ju/Bi4+FLB0iN7OwgS+IgIEbO/eJnPjCYZbHVRFmPqA4MkbyD+dbXvQXvrO9nrerPVABwVapFabxgko</CERTIFICATE></FALLBACK><CERTIFICATE > type="GROUP"><DATA><NAME>ARDIS</NAME> > <MANUFACTURER>SanDisk Corporation</MANUFACTURER> > <MAKE>Sansa</MAKE> > <MODEL>View</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> > > <SECURITYLEVEL>2000</SECURITYLEVEL> > > <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>1</LICENSE_ACQ> > <LICENSE_SYNC>1</LICENSE_SYNC> > <ENCRYPTION>1</ENCRYPTION> > <SYMMETRIC_OPT>1</SYMMETRIC_OPT> > > > </FEATURES> > > <LIMITS> > <MAXCHAINDEPTH>2</MAXCHAINDEPTH> > <MAXLICENSESIZE>10240</MAXLICENSESIZE> > <MAXHEADERSIZE>5120</MAXHEADERSIZE> > > </LIMITS><PUBLICKEY>vcQcwDe3KpgotXvfJiXmfGzz1kVu7nWS6Kq2fB1S852WTkwzvjgLVg==</PUBLICKEY></DATA><MSDRM_SIGNATURE_VALUE>9Va50evyhPmggceM5lUhZReFmCOXtt4zxWAwEbEL9AWPSk+YJVneeQ==</MSDRM_SIGNATURE_VALUE></CERTIFICATE><CERTIFICATE > > type="AUTHORIZATION"><DATA><SECURITYLEVEL>2000</SECURITYLEVEL><AUTH_ID>2131</AUTH_ID><PUBLICKEY>3JwjYFj2GuZrhCAshbYFNjgb9g2pl2j0nR8PR2rqyk4iIARZrN4GOQ==</PUBLICKEY></DATA><MSDRM_SIGNATURE_VALUE>0cVGnu9hX+UnKPMdJM7a826zujPW8a+FgRJ/jaLPwDI+7reLs8/TaA==</MSDRM_SIGNATURE_VALUE></CERTIFICATE><CERTIFICATE > > type="AUTHORIZATION_ROOT"><DATA><AUTH_ID>1</AUTH_ID><PUBLICKEY>a1t3hxrg!qbOgktnbYaEEi4teCse!gz6RvTPuC!zizKJlpU7xoduSw==</PUBLICKEY></DATA><MSDRM_SIGNATURE_VALUE>dTBxJVHefh/5NTk0veRFWUhHUmGonGPm4NiwqTiuRqKngtoABOG3iA==</MSDRM_SIGNATURE_VALUE></CERTIFICATE></DEVCERT> > WMPInfo.xml Does not exist on this device > PTP: Closing session > OK. > ----------------end-------------- > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > Libmtp-discuss mailing list > Lib...@li... > https://lists.sourceforge.net/lists/listinfo/libmtp-discuss > -- If the Phone Doesn't Ring, It's Me - Jimmy Buffett _.. .' _ `\ / /e)-,\ / | ,_ | / '-(-.)/ , .'--. \ ` .'; / `\ | _.-' < /` | /_.-'_.-'`.\ .' ; /_ .-' ` .'`-'_ /_.'))) / -'_.'---;`'-))) (__.'/ /` .'` (_.'/ /` /` _|.' /` .-` __.'| .-'|| | \_`/ ` |
From: Linus W. <lin...@gm...> - 2008-02-11 20:27:35
|
2008/2/11, Sciamano <sci...@gm...>: > If it helps, this is the mtp-detect output (once I launch it at the > right moment :-) If you first run something like gnomad2 2.9.1, it'll hog the device immediately as you plug it in and you can quit using it by unplugging. Have you tried this? Rhythmbox does it similarly in CVS, also Amarok 2 I think. It's a plug/unplug paradigm like. This is (I think) the closest you can get to how Windows does things right now, and the way these devices are designed to work... The command-line tools cannot do this tho. Unless we modify them to idle waiting for hald and D-bus to notify us. Linus |
From: Linus W. <lin...@gm...> - 2008-02-11 20:28:42
|
2008/2/11, Darren Odden <do...@gm...>: > This is exactly the same out put I have and I am requiring my setup to > remain MTP, as I am using Amazon Unbox, etc. which are windows based. Is the serial number the same? ;-) More important: are you also experiencing the same problems when connecting? Linus |
From: Darren O. <do...@gm...> - 2008-02-11 20:34:44
|
I have the same issues connecting, Serial number is not the same. I get the same output, so, since I have issues in Ubuntu, I have been swapping my hard drives until, either I have time to fix it, or, it is fixed in the interim. I have tried a very few obvious things, but my main importance has been in using it so I have to (UGH) use windows. This and WoW are the only things I use my Windows Disk for... Been considering using a Windows VM to see if there might be something I could do to make use of this system without swapping drives. I really don't like windows and neither does my lappy. On Feb 11, 2008 1:28 PM, Linus Walleij <lin...@gm...> wrote: > 2008/2/11, Darren Odden <do...@gm...>: > > > This is exactly the same out put I have and I am requiring my setup to > > remain MTP, as I am using Amazon Unbox, etc. which are windows based. > > Is the serial number the same? ;-) > > More important: are you also experiencing the same problems when > connecting? > > Linus > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > Libmtp-discuss mailing list > Lib...@li... > https://lists.sourceforge.net/lists/listinfo/libmtp-discuss > -- If the Phone Doesn't Ring, It's Me - Jimmy Buffett _.. .' _ `\ / /e)-,\ / | ,_ | / '-(-.)/ , .'--. \ ` .'; / `\ | _.-' < /` | /_.-'_.-'`.\ .' ; /_ .-' ` .'`-'_ /_.'))) / -'_.'---;`'-))) (__.'/ /` .'` (_.'/ /` /` _|.' /` .-` __.'| .-'|| | \_`/ ` |
From: Sciamano <sci...@gm...> - 2008-02-11 21:06:32
|
2008/2/11, Linus Walleij <lin...@gm...>: > > If it helps, this is the mtp-detect output (once I launch it at the > > right moment :-) > > If you first run something like gnomad2 2.9.1, it'll hog the device > immediately as you plug it in and you can quit using it by unplugging. > Have you tried this? Not yet. Gonna try now. > Rhythmbox does it similarly in CVS, also Amarok 2 I think. > It's a plug/unplug paradigm like. I'm running Amarok 1.4.7 right now. > This is (I think) the closest you can get to how Windows does things > right now, and the way these devices are designed to work... > The command-line tools cannot do this tho. Unless we modify them > to idle waiting for hald and D-bus to notify us. My problem is that at the moment I can't use any MTP-compatible software without "hooking" the device with the mtp-detect-at-the-right-moment-trick first... Luca |
From: Linus W. <lin...@gm...> - 2008-02-11 21:09:11
|
2008/2/11, Sciamano <sci...@gm...>: > My problem is that at the moment I can't use any MTP-compatible > software without "hooking" the device with the > mtp-detect-at-the-right-moment-trick first... gnomad2 should be able to "hook" the device just like that, if you fire it up at the right time, or auto-"hook" using D-bus and HAL. Since gnomad2 will not close the session the device (hopefully) remains "hooked" until you're done transfering. This is what Windows MTP proxy does too, I think. Linus |
From: Sciamano <sci...@gm...> - 2008-02-11 21:13:58
|
2008/2/11, Linus Walleij <lin...@gm...>: > > My problem is that at the moment I can't use any MTP-compatible > > software without "hooking" the device with the > > mtp-detect-at-the-right-moment-trick first... > > gnomad2 should be able to "hook" the device just like that, > if you fire it up at the right time, or auto-"hook" using D-bus > and HAL. > > Since gnomad2 will not close the session the device > (hopefully) remains "hooked" until you're done transfering. > This is what Windows MTP proxy does too, I think. I'll try, although I'm not much into running GTK apps in KDE :-) Anyway, my intentions with the first post was to point out "this" connection problem, in case it was useful for improving libmtp. I don't really care much about having to use the mtp-detect trick to make Amarok or Qlix work, actually. And I guess it would be useful for other people who try to write MTP-compatible software for linux. Luca |
From: Linus W. <lin...@gm...> - 2008-02-11 21:56:35
|
2008/2/11, Sciamano <sci...@gm...>: > Anyway, my intentions with the first post was to point out "this" > connection problem, in case it was useful for improving libmtp. Yeah, well not perhaps libmtp as it is but maybe something generic can be done to ease the situation if it is as I suspect. The problem is we don't know for sure why the device behaves like this, I only have an educated guess. If I am right the MTP protocol itself is not the problem, the problem is how the devices are made. They are all built to be used by one GUI thing, the Windows Media Player. Anything that behaves differently will be untested. So to behave like the device want you to, you have to be a GUI sufficiently like WMP. And I think gnomad2, Amarok 2 (KDE4 choice!) and Rhythmbox (GNOME choice!) are getting close to that. The achieve it using HAL and D-Bus to "hook" the device the instant it appears. (It's too bad for those who like command-line utilities though, then again, not all devices have this problem.) The problem is that on Windows, there is a daemon that "hook" the device when you plug it in (or boot with it plugged) and keep it hooked until you plug it out or shut down the host. The device expects to be "hooked" and thus will revert to something like USB mass storage mode or plain reset unless it gets hooked quick enough. This problem is very common I think. Some devices do not even allow for closing the PTP/MTP session without causing USB errors, this is a protocol violation but the manufacturers doesn't seem to care. It has been suggested to create a generic daemon that "hook" devices when they are plugged-in, and maintain a session with them until they are unplugged. (This is what Windows does, I think). This can be written around libmtp if we make a few changes to it. It's a lot of work and require all software using libmtp (including any command-line utilities) to be modified to use that as session manager. And it is not likely to happen, IMHO. BTW: Richard, do you have anything for the Mac sortalike HAL+D-Bus that can notify XNJB when new devices are plugged in so you can hook them? Linus |
From: Richard L. <ri...@we...> - 2008-02-16 11:10:20
|
On 11 Feb 2008, at 21:56, Linus Walleij wrote: > BTW: Richard, do you have anything for the Mac sortalike > HAL+D-Bus that can notify XNJB when new devices are plugged > in so you can hook them? I'm sure there is, but I don't know anything about it. I should look into this... Richard. |
From: Sciamano <sci...@gm...> - 2008-02-11 22:27:18
|
2008/2/11, Linus Walleij <lin...@gm...>: > Yeah, well not perhaps libmtp as it is but maybe something generic > can be done to ease the situation if it is as I suspect. The problem > is we don't know for sure why the device behaves like this, I only have > an educated guess. I see. > If I am right the MTP protocol itself is not the problem, the problem > is how the devices are made. They are all built to be used by one > GUI thing, the Windows Media Player. Anything that behaves > differently will be untested. Well, that's not completely true, though. You can use MTP devices without opening the Windows Media Player at all. Just use explorer and copy-paste files and folders... > So to behave like the device want you to, you have to be a GUI > sufficiently like WMP. And I think gnomad2, Amarok 2 (KDE4 choice!) > and Rhythmbox (GNOME choice!) are getting close to that. > The achieve it using HAL and D-Bus to "hook" the device the > instant it appears. KDE4 is not stable enough for me, that's why I stick to KDE3 for the time being. That's why I don't have Amarok2 yet. > It has been suggested to create a generic daemon that "hook" > devices when they are plugged-in, and maintain a session with them > until they are unplugged. (This is what Windows does, I think). > This can be written around libmtp if we make a few changes to > it. It's a lot of work and require all software using libmtp (including > any command-line utilities) to be modified to use that as session > manager. And it is not likely to happen, IMHO. I understand. Still, I hope some kind of solution will be found, so that more and more devices can be used with no problems in Linux. Greetings Luca |
From: Darren O. <do...@gm...> - 2008-02-11 22:44:46
|
To his point, Windows itself is hooking the USB device and not the program. The MTP component is installed by Windows Media Player, but windows handles it. On Feb 11, 2008 3:27 PM, Sciamano <sci...@gm...> wrote: > 2008/2/11, Linus Walleij <lin...@gm...>: > > > Yeah, well not perhaps libmtp as it is but maybe something generic > > can be done to ease the situation if it is as I suspect. The problem > > is we don't know for sure why the device behaves like this, I only have > > an educated guess. > > I see. > > > If I am right the MTP protocol itself is not the problem, the problem > > is how the devices are made. They are all built to be used by one > > GUI thing, the Windows Media Player. Anything that behaves > > differently will be untested. > > Well, that's not completely true, though. You can use MTP devices > without opening the Windows Media Player at all. Just use explorer and > copy-paste files and folders... > > > So to behave like the device want you to, you have to be a GUI > > sufficiently like WMP. And I think gnomad2, Amarok 2 (KDE4 choice!) > > and Rhythmbox (GNOME choice!) are getting close to that. > > The achieve it using HAL and D-Bus to "hook" the device the > > instant it appears. > > KDE4 is not stable enough for me, that's why I stick to KDE3 for the time > being. > That's why I don't have Amarok2 yet. > > > It has been suggested to create a generic daemon that "hook" > > devices when they are plugged-in, and maintain a session with them > > until they are unplugged. (This is what Windows does, I think). > > This can be written around libmtp if we make a few changes to > > it. It's a lot of work and require all software using libmtp (including > > any command-line utilities) to be modified to use that as session > > manager. And it is not likely to happen, IMHO. > > I understand. Still, I hope some kind of solution will be found, so > that more and more devices can be used with no problems in Linux. > > Greetings > Luca > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > Libmtp-discuss mailing list > Lib...@li... > https://lists.sourceforge.net/lists/listinfo/libmtp-discuss > -- If the Phone Doesn't Ring, It's Me - Jimmy Buffett _.. .' _ `\ / /e)-,\ / | ,_ | / '-(-.)/ , .'--. \ ` .'; / `\ | _.-' < /` | /_.-'_.-'`.\ .' ; /_ .-' ` .'`-'_ /_.'))) / -'_.'---;`'-))) (__.'/ /` .'` (_.'/ /` /` _|.' /` .-` __.'| .-'|| | \_`/ ` |
From: Linus W. <lin...@gm...> - 2008-02-12 07:15:16
|
2008/2/11, Sciamano <sci...@gm...>: > You can use MTP devices > without opening the Windows Media Player at all. Just use explorer and > copy-paste files and folders... Yeah OK, there is a daemon that "hooks" the device. The explorer and WMP both alike use this daemon to talk to the device. You can also write custom programs to communicate using this daemon. Linus |
From: Sciamano <sci...@gm...> - 2008-02-12 07:34:25
|
2008/2/12, Linus Walleij <lin...@gm...>: > Yeah OK, there is a daemon that "hooks" the device. The explorer and > WMP both alike use this daemon to talk to the device. > > You can also write custom programs to communicate using this > daemon. And you're telling me that this can't be done in linux? Luca |
From: Gian P. M. <gmu...@gm...> - 2008-02-12 08:36:00
|
Not that this "can't" be done, rather that it "hasn't" been done... not incorporated into a full blown file system, at least. There's a userland file system that aimed at implementing this using libmtp, mtpfs, but the project has been stalled for some time now (last I checked, anyway) |
From: Sciamano <sci...@gm...> - 2008-02-12 10:46:38
|
2008/2/12, Gian Paolo Mureddu <gmu...@gm...>: > Not that this "can't" be done, rather that it "hasn't" been done... not > incorporated into a full blown file system, at least. There's a userland > file system that aimed at implementing this using libmtp, mtpfs, but the > project has been stalled for some time now (last I checked, anyway) Yes, I know. I've tried that too... but I have to use "mtp-detect" to make it work with mtpfs, too. :-) As I said, I'm not "pushing" this because I'm too lazy to send a command at the right moment, I just thought that discussing this issue might be useful for the advancement of MTP compatibility in linux. |
From: Linus W. <lin...@gm...> - 2008-02-12 11:31:00
|
2008/2/12, Sciamano <sci...@gm...>: > > Yeah OK, there is a daemon that "hooks" the device. The explorer and > > WMP both alike use this daemon to talk to the device. > > And you're telling me that this can't be done in linux? As I said it has been suggested. It's a lot of work, so unless someone steps up to write the code and make patches for all apps currently using libmtp it is not likely to happen. Besides, e.g. Amarok 2, gnomad2 2.9.1 and Rhythmbox does this already, i.e. "hooks" the device as soon as it is plugged in. Provided they are started before the device is plugged in. Linus |
From: Sciamano <sci...@iw...> - 2008-02-12 12:33:26
|
2008/2/12, Linus Walleij <lin...@gm...>: > > > Yeah OK, there is a daemon that "hooks" the device. The explorer and > > > WMP both alike use this daemon to talk to the device. > > > > And you're telling me that this can't be done in linux? > > As I said it has been suggested. It's a lot of work, so unless someone > steps up to write the code and make patches for all apps currently using > libmtp it is not likely to happen. Besides, e.g. Amarok 2, gnomad2 2.9.1 > and Rhythmbox does this already, i.e. "hooks" the device as soon as > it is plugged in. Provided they are started before the device is plugged > in. Got it. I wonder how Amarok2, Rhythmbox and Gnomad2 have solved this issue. Don't they depend on libmtp too? |
From: Ali S. <ca...@gm...> - 2008-02-12 13:11:50
|
Linus, Could you link me to a more precise definition of how this hooking works and what the exact problem it over comes? Thanks, Ali On Feb 12, 2008 6:30 AM, Linus Walleij <lin...@gm...> wrote: > 2008/2/12, Sciamano <sci...@gm...>: > > > > Yeah OK, there is a daemon that "hooks" the device. The explorer and > > > WMP both alike use this daemon to talk to the device. > > > > And you're telling me that this can't be done in linux? > > As I said it has been suggested. It's a lot of work, so unless someone > steps up to write the code and make patches for all apps currently using > libmtp it is not likely to happen. Besides, e.g. Amarok 2, gnomad2 2.9.1 > and Rhythmbox does this already, i.e. "hooks" the device as soon as > it is plugged in. Provided they are started before the device is plugged > in. > > Linus > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > Libmtp-discuss mailing list > Lib...@li... > https://lists.sourceforge.net/lists/listinfo/libmtp-discuss > |
From: Linus W. <lin...@gm...> - 2008-02-12 23:15:13
|
2008/2/12, Ali Shah <ca...@gm...>: > Could you link me to a more precise definition of how this hooking works and > what the exact problem it over comes? Unfortuinately not, since it is not documented. That's one of the things Microsoft have not defined, but that the devices expect anyways. Linus |
From: Linus W. <lin...@gm...> - 2008-02-12 23:30:00
|
2008/2/12, Sciamano <sci...@iw...>: > Got it. I wonder how Amarok2, Rhythmbox and Gnomad2 have solved this issue. > Don't they depend on libmtp too? Yeah, we put in other dependencies to auto-detect device plugin. Rhythmbox and Gnomad2 do something like this: We include D-Bus and HAL libraries, define some useful global variables: #include <dbus/dbus-glib.h> #include <dbus/dbus.h> #include <dbus/dbus-glib-lowlevel.h> #include <hal/libhal.h> DBusConnection *dbus_system_conn; DBusError dbus_error; LibHalContext *hal_context; char *global_udistr = NULL; In some main() function we connect to the D-Bus system bus, then we connect the HAL handlers (callbacks) to that system bus: // Connect to the SYSTEM bus to detect devices and stuff. dbus_error_init(&dbus_error); dbus_system_conn = dbus_bus_get(DBUS_BUS_SYSTEM, &dbus_error); if (dbus_system_conn == NULL) { g_printerr ("Failed to open connection to D-BUS SYSTEM bus\n"); } else { dbus_connection_setup_with_g_main(dbus_system_conn, NULL); // dbus_system_proxy = dbus_g_proxy_new_for_name (dbus_system_conn, // "org.freedesktop.Hal", // "/", // "org.freedesktop.Hal.Device"); // g_object_unref (dbus_system_proxy); hal_context = libhal_ctx_new (); if (hal_context == NULL) { g_print("Couldn't create HAL context!\n"); } else { //libhal_ctx_set_user_data (hal_context, (void *) NULL); libhal_ctx_set_dbus_connection (hal_context, dbus_system_conn); libhal_ctx_set_device_added (hal_context, hal_device_added); libhal_ctx_set_device_removed (hal_context, hal_device_removed); libhal_device_property_watch_all (hal_context, &dbus_error); if (!libhal_ctx_init (hal_context, &dbus_error)) { g_print("error: libhal_ctx_init: %s: %s\n", dbus_error.name, dbus_error.message); } } } dbus_error_free(&dbus_error); Then we have to have the functions that HAL shall call whenever a device is added/removed. In gnomad2 they look like this, and use the MTP libmtp.fdi HAL definitions to identify MTP devices. static void hal_device_added (LibHalContext *context, const char *udi) { int vendor_id; int product_id; char *protocol; vendor_id = libhal_device_get_property_int (context, udi, "usb.vendor_id", NULL); product_id = libhal_device_get_property_int (context, udi, "usb.product_id", NULL); protocol = libhal_device_get_property_string (context, udi, "portable_audio_player.type", NULL); if (protocol != NULL) { g_print("Detected connected device VID=0x%04x/PID=0x%04x, protocol: %s\n", vendor_id, product_id, protocol); g_print("UDI: %s\n", udi); if (!strcmp(protocol, "mtp")) { // LIBMTP_Get_First_Device(void) ETC. } } libhal_free_string(protocol); } static void hal_device_removed (LibHalContext *context, const char *udi) { int vendor_id; int product_id; vendor_id = libhal_device_get_property_int (context, udi, "usb.vendor_id", NULL); product_id = libhal_device_get_property_int (context, udi, "usb.product_id", NULL); if (global_udistr != NULL && !strcmp(udi, global_udistr)) { g_print("Device VID=0x%04x/PID=0x%04x detached.\n", vendor_id, product_id); g_print("UDI: %s\n", udi); // LIBMTP_Release_Device() ETC. free(global_udistr); global_udistr = NULL; } } The result is that libmtp is called to identify a device whenever a device listed in out HAL .fdi file is plugged in. Cute eh? This is all from glib C code, there are other (similar) constructs in other languages, not that I know how these work tho. Linus |
From: Sciamano <sci...@iw...> - 2008-02-12 23:40:33
|
2008/2/13, Linus Walleij <lin...@gm...>: > This is all from glib C code, there are other (similar) constructs > in other languages, not that I know how these work tho. Well, it's Chinese to me. But maybe it is useful to others! :-) Thanks for the explanation! Luca |