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 |