Home | History | Annotate | Download | only in src

Lines Matching refs:dpd

857 ptp_unpack_DPD (PTPParams *params, unsigned char* data, PTPDevicePropDesc *dpd, unsigned int dpdlen)
861 memset (dpd, 0, sizeof(*dpd));
864 dpd->DevicePropertyCode=dtoh16a(&data[PTP_dpd_DevicePropertyCode]);
865 dpd->DataType=dtoh16a(&data[PTP_dpd_DataType]);
866 dpd->GetSet=dtoh8a(&data[PTP_dpd_GetSet]);
867 dpd->FormFlag=PTP_DPFF_None;
870 ret = ptp_unpack_DPV (params, data, &offset, dpdlen, &dpd->FactoryDefaultValue, dpd->DataType);
872 if ((dpd->DataType == PTP_DTC_STR) && (offset == dpdlen))
874 ret = ptp_unpack_DPV (params, data, &offset, dpdlen, &dpd->CurrentValue, dpd->DataType);
885 dpd->FormFlag=dtoh8a(&data[offset]);
888 switch (dpd->FormFlag) {
890 ret = ptp_unpack_DPV (params, data, &offset, dpdlen, &dpd->FORM.Range.MinimumValue, dpd->DataType);
892 ret = ptp_unpack_DPV (params, data, &offset, dpdlen, &dpd->FORM.Range.MaximumValue, dpd->DataType);
894 ret = ptp_unpack_DPV (params, data, &offset, dpdlen, &dpd->FORM.Range.StepSize, dpd->DataType);
899 #define N dpd->FORM.Enum.NumberOfValues
902 dpd->FORM.Enum.SupportedValue = malloc(N*sizeof(dpd->FORM.Enum.SupportedValue[0]));
903 if (!dpd->FORM.Enum.SupportedValue)
906 memset (dpd->FORM.Enum.SupportedValue,0 , N*sizeof(dpd->FORM.Enum.SupportedValue[0]));
908 ret = ptp_unpack_DPV (params, data, &offset, dpdlen, &dpd->FORM.Enum.SupportedValue[i], dpd->DataType);
918 dpd->FORM.Enum.NumberOfValues = i;
927 ptp_free_devicepropdesc(dpd);
939 ptp_unpack_Sony_DPD (PTPParams *params, unsigned char* data, PTPDevicePropDesc *dpd, unsigned int dpdlen, unsigned int *poffset)
946 memset (dpd, 0, sizeof(*dpd));
947 dpd->DevicePropertyCode=dtoh16a(&data[PTP_dpd_Sony_DevicePropertyCode]);
948 dpd->DataType=dtoh16a(&data[PTP_dpd_Sony_DataType]);
954 ptp_debug (params, "prop 0x%04x, datatype 0x%04x, unk1 %d unk2 %d", dpd->DevicePropertyCode, dpd->DataType, unk1, unk2);
956 dpd->GetSet=1;
958 dpd->FormFlag=PTP_DPFF_None;
961 ret = ptp_unpack_DPV (params, data, poffset, dpdlen, &dpd->FactoryDefaultValue, dpd->DataType);
963 if ((dpd->DataType == PTP_DTC_STR) && (*poffset == dpdlen))
965 ret = ptp_unpack_DPV (params, data, poffset, dpdlen, &dpd->CurrentValue, dpd->DataType);
976 dpd->FormFlag=dtoh8a(&data[*poffset]);
979 switch (dpd->FormFlag) {
981 ret = ptp_unpack_DPV (params, data, poffset, dpdlen, &dpd->FORM.Range.MinimumValue, dpd->DataType);
983 ret = ptp_unpack_DPV (params, data, poffset, dpdlen, &dpd->FORM.Range.MaximumValue, dpd->DataType);
985 ret = ptp_unpack_DPV (params, data, poffset, dpdlen, &dpd->FORM.Range.StepSize, dpd->DataType);
990 #define N dpd->FORM.Enum.NumberOfValues
993 dpd->FORM.Enum.SupportedValue = malloc(N*sizeof(dpd->FORM.Enum.SupportedValue[0]));
994 if (!dpd->FORM.Enum.SupportedValue)
997 memset (dpd->FORM.Enum.SupportedValue,0 , N*sizeof(dpd->FORM.Enum.SupportedValue[0]));
999 ret = ptp_unpack_DPV (params, data, poffset, dpdlen, &dpd->FORM.Enum.SupportedValue[i], dpd->DataType);
1009 dpd->FORM.Enum.NumberOfValues = i;
1018 ptp_free_devicepropdesc(dpd);
1832 return &params->canon_props[j].dpd;
1841 memset (&params->canon_props[j].dpd,0,sizeof(params->canon_props[j].dpd));
1842 params->canon_props[j].dpd.GetSet = 1;
1843 params->canon_props[j].dpd.FormFlag = PTP_DPFF_None;
1845 return &params->canon_props[j].dpd;
1967 PTPDevicePropDesc *dpd;
1982 dpd = &params->canon_props[j].dpd;
1999 i, propxtype, proptype, dpd->DataType, propxcnt);
2000 dpd->FormFlag = PTP_DPFF_Enumeration;
2001 dpd->FORM.Enum.NumberOfValues = propxcnt;
2002 free (dpd->FORM.Enum.SupportedValue);
2003 dpd->FORM.Enum.SupportedValue = malloc (sizeof (PTPPropertyValue)*propxcnt);
2012 dpd->FORM.Enum.SupportedValue[j].u16 =
2014 ptp_debug (params, "event %d: suppval[%d] of %x is 0x%x.", i, j, proptype, dpd->FORM.Enum.SupportedValue[j].u16);
2019 switch (dpd->DataType) {
2021 if (sizeof(dpd->FORM.Enum.SupportedValue[j].TYPE)*propxcnt + PTP_ece_Prop_Desc_Data > size) { \
2022 ptp_debug (params, "size %d does not match needed %d", sizeof(dpd->FORM.Enum.SupportedValue[j].TYPE)*propxcnt + PTP_ece_Prop_Desc_Data, size); \
2026 dpd->FORM.Enum.SupportedValue[j].TYPE = CONV(xdata); \
2038 free (dpd->FORM.Enum.SupportedValue);
2039 dpd->FORM.Enum.SupportedValue = NULL;
2040 dpd->FORM.Enum.NumberOfValues = 0;
2041 ptp_debug (params ,"event %d: data type 0x%04x of %x unhandled, size %d, raw values:", i, dpd->DataType, proptype, dtoh32a(xdata), size);
2054 PTPDevicePropDesc *dpd;
2080 memset (&params->canon_props[j].dpd,0,sizeof(params->canon_props[j].dpd));
2081 params->canon_props[j].dpd.GetSet = 1;
2082 params->canon_props[j].dpd.FormFlag = PTP_DPFF_None;
2085 dpd = &params->canon_props[j].dpd;
2122 dpd->GetSet = PTP_DPGS_Get;
2144 dpd->DataType = PTP_DTC_UINT32;
2148 dpd->DataType = PTP_DTC_UINT16;
2149 dpd->FormFlag = PTP_DPFF_Enumeration;
2150 dpd->FORM.Enum.NumberOfValues = 0;
2168 dpd->DataType = PTP_DTC_UINT16;
2174 dpd->DataType = PTP_DTC_UINT8;
2181 dpd->DataType = PTP_DTC_STR;
2185 dpd->DataType = PTP_DTC_INT16;
2189 dpd->DataType = PTP_DTC_UINT16;
2205 dpd->DataType = PTP_DTC_UINT8;
2231 dpd->DataType = PTP_DTC_UINT32;
2252 switch (dpd->DataType) {
2254 dpd->FactoryDefaultValue.u32 = dtoh32a(xdata);
2255 dpd->CurrentValue.u32 = dtoh32a(xdata);
2256 ptp_debug (params ,"event %d: currentvalue of %x is %x", i, proptype, dpd->CurrentValue.u32);
2259 dpd->FactoryDefaultValue.i16 = dtoh16a(xdata);
2260 dpd->CurrentValue.i16 = dtoh16a(xdata);
2261 ptp_debug (params,"event %d: currentvalue of %x is %d", i, proptype, dpd->CurrentValue.i16);
2264 dpd->FactoryDefaultValue.u16 = dtoh16a(xdata);
2265 dpd->CurrentValue.u16 = dtoh16a(xdata);
2266 ptp_debug (params,"event %d: currentvalue of %x is %x", i, proptype, dpd->CurrentValue.u16);
2269 dpd->FactoryDefaultValue.u8 = dtoh8a(xdata);
2270 dpd->CurrentValue.u8 = dtoh8a(xdata);
2271 ptp_debug (params,"event %d: currentvalue of %x is %x", i, proptype, dpd->CurrentValue.u8);
2274 dpd->FactoryDefaultValue.i8 = dtoh8a(xdata);
2275 dpd->CurrentValue.i8 = dtoh8a(xdata);
2276 ptp_debug (params,"event %d: currentvalue of %x is %x", i, proptype, dpd->CurrentValue.i8);
2281 dpd->FactoryDefaultValue.str = ptp_unpack_string(params, data, 0, &len);
2282 dpd->CurrentValue.str = ptp_unpack_string(params, data, 0, &len);
2284 free (dpd->FactoryDefaultValue.str);
2285 dpd->FactoryDefaultValue.str = strdup( (char*)xdata );
2287 free (dpd->CurrentValue.str);
2288 dpd->CurrentValue.str = strdup( (char*)xdata );
2290 ptp_debug (params,"event %d: currentvalue of %x is %s", i, proptype, dpd->CurrentValue.str);
2298 /* ImageFormat and customFuncEx special handling (WARNING: dont move this in front of the dpd->DataType switch!) */
2304 dpd->DataType = PTP_DTC_UINT16;
2305 dpd->FactoryDefaultValue.u16 = ptp_unpack_EOS_ImageFormat( params, &xdata );
2306 dpd->CurrentValue.u16 = dpd->FactoryDefaultValue.u16;
2307 ptp_debug (params,"event %d: decoded imageformat, currentvalue of %x is %x", i, proptype, dpd->CurrentValue.u16);
2310 dpd->DataType = PTP_DTC_STR;
2311 free (dpd->FactoryDefaultValue.str);
2312 free (dpd->CurrentValue.str);
2313 dpd->FactoryDefaultValue.str = ptp_unpack_EOS_CustomFuncEx( params, &xdata );
2314 dpd->CurrentValue.str = strdup( (char*)dpd->FactoryDefaultValue.str );
2315 ptp_debug (params,"event %d: decoded custom function, currentvalue of %x is %s", i, proptype, dpd->CurrentValue.str);
2318 dpd->DataType = PTP_DTC_STR;
2319 free (dpd->FactoryDefaultValue.str);
2320 free (dpd->CurrentValue.str);
2321 dpd->FactoryDefaultValue.str = ptp_unpack_EOS_FocusInfoEx( params, &xdata, size );
2322 dpd->CurrentValue.str = strdup( (char*)dpd->FactoryDefaultValue.str );
2323 ptp_debug (params,"event %d: decoded focus info, currentvalue of %x is %s", i, proptype, dpd->CurrentValue.str);
2333 PTPDevicePropDesc *dpd;
2369 dpd = _lookup_or_allocate_canon_prop(params, proptype);
2370 dpd->CurrentValue.u16 = curdata[curoff+5]; /* just use last byte */
2381 dpd = _lookup_or_allocate_canon_prop(params, proptype);
2382 dpd->CurrentValue.u16 = curdata[curoff+4]; /* just use last byte */
2393 dpd = _lookup_or_allocate_canon_prop(params, proptype);
2394 dpd->CurrentValue.u16 = curdata[curoff+3]; /* just use last byte */