| OLD | NEW |
| (Empty) |
| 1 Index: src/libmtp.c | |
| 2 =================================================================== | |
| 3 --- src/libmtp.c (revision 148597) | |
| 4 +++ src/libmtp.c (working copy) | |
| 5 @@ -1144,6 +1144,9 @@ | |
| 6 int supported = 0; | |
| 7 uint16_t ptp_prop = map_libmtp_property_to_ptp_property(property); | |
| 8 | |
| 9 + if (!ptp_operation_issupported(device->params, PTP_OC_MTP_GetObjectPropsSuppo
rted)) | |
| 10 + return 0; | |
| 11 + | |
| 12 ret = ptp_mtp_getobjectpropssupported(device->params, map_libmtp_type_to_ptp_
type(filetype), &propcnt, &props); | |
| 13 if (ret != PTP_RC_OK) { | |
| 14 add_ptp_error_to_errorstack(device, ret, "LIBMTP_Is_Property_Supported(): c
ould not get properties supported."); | |
| 15 @@ -1974,40 +1977,42 @@ | |
| 16 } | |
| 17 | |
| 18 /* Determine if the object size supported is 32 or 64 bit wide */ | |
| 19 - for (i=0;i<current_params->deviceinfo.ImageFormats_len;i++) { | |
| 20 - PTPObjectPropDesc opd; | |
| 21 + if (ptp_operation_issupported(current_params,PTP_OC_MTP_GetObjectPropsSupport
ed)) { | |
| 22 + for (i=0;i<current_params->deviceinfo.ImageFormats_len;i++) { | |
| 23 + PTPObjectPropDesc opd; | |
| 24 | |
| 25 - if (ptp_mtp_getobjectpropdesc(current_params, | |
| 26 - PTP_OPC_ObjectSize, | |
| 27 - current_params->deviceinfo.ImageFormats[i], | |
| 28 - &opd) != PTP_RC_OK) { | |
| 29 - LIBMTP_ERROR("LIBMTP PANIC: " | |
| 30 - "could not inspect object property descriptions!\n"); | |
| 31 - } else { | |
| 32 - if (opd.DataType == PTP_DTC_UINT32) { | |
| 33 - if (bs == 0) { | |
| 34 - bs = 32; | |
| 35 - } else if (bs != 32) { | |
| 36 - LIBMTP_ERROR("LIBMTP PANIC: " | |
| 37 - "different objects support different object sizes!\n"); | |
| 38 - bs = 0; | |
| 39 - break; | |
| 40 - } | |
| 41 - } else if (opd.DataType == PTP_DTC_UINT64) { | |
| 42 - if (bs == 0) { | |
| 43 - bs = 64; | |
| 44 - } else if (bs != 64) { | |
| 45 - LIBMTP_ERROR("LIBMTP PANIC: " | |
| 46 - "different objects support different object sizes!\n"); | |
| 47 - bs = 0; | |
| 48 - break; | |
| 49 - } | |
| 50 + if (ptp_mtp_getobjectpropdesc(current_params, | |
| 51 + PTP_OPC_ObjectSize, | |
| 52 + current_params->deviceinfo.ImageFormats[i], | |
| 53 + &opd) != PTP_RC_OK) { | |
| 54 + LIBMTP_ERROR("LIBMTP PANIC: " | |
| 55 + "could not inspect object property descriptions!\n"); | |
| 56 } else { | |
| 57 - // Ignore if other size. | |
| 58 - LIBMTP_ERROR("LIBMTP PANIC: " | |
| 59 - "awkward object size data type: %04x\n", opd.DataType); | |
| 60 - bs = 0; | |
| 61 - break; | |
| 62 + if (opd.DataType == PTP_DTC_UINT32) { | |
| 63 + if (bs == 0) { | |
| 64 + bs = 32; | |
| 65 + } else if (bs != 32) { | |
| 66 + LIBMTP_ERROR("LIBMTP PANIC: " | |
| 67 + "different objects support different object sizes!\n")
; | |
| 68 + bs = 0; | |
| 69 + break; | |
| 70 + } | |
| 71 + } else if (opd.DataType == PTP_DTC_UINT64) { | |
| 72 + if (bs == 0) { | |
| 73 + bs = 64; | |
| 74 + } else if (bs != 64) { | |
| 75 + LIBMTP_ERROR("LIBMTP PANIC: " | |
| 76 + "different objects support different object sizes!\n")
; | |
| 77 + bs = 0; | |
| 78 + break; | |
| 79 + } | |
| 80 + } else { | |
| 81 + // Ignore if other size. | |
| 82 + LIBMTP_ERROR("LIBMTP PANIC: " | |
| 83 + "awkward object size data type: %04x\n", opd.DataType); | |
| 84 + bs = 0; | |
| 85 + break; | |
| 86 + } | |
| 87 } | |
| 88 } | |
| 89 } | |
| 90 @@ -4107,7 +4112,7 @@ | |
| 91 break; | |
| 92 } | |
| 93 } | |
| 94 - } else { | |
| 95 + } else if (ptp_operation_issupported(params,PTP_OC_MTP_GetObjectPropsSupporte
d)) { | |
| 96 uint16_t *props = NULL; | |
| 97 uint32_t propcnt = 0; | |
| 98 int ret; | |
| OLD | NEW |