You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
168 lines
9.3 KiB
168 lines
9.3 KiB
diff -up libgphoto2-2.4.7/packaging/generic/print-camera-list.c.storage libgphoto2-2.4.7/packaging/generic/print-camera-list.c |
|
--- libgphoto2-2.4.7/packaging/generic/print-camera-list.c.storage 2009-08-11 17:11:27.000000000 +0200 |
|
+++ libgphoto2-2.4.7/packaging/generic/print-camera-list.c 2009-08-19 15:44:41.000000000 +0200 |
|
@@ -819,6 +819,8 @@ fdi_begin_func (const func_params_t *par |
|
printf("<deviceinfo version=\"0.2\">\n"); |
|
printf(" <device>\n"); |
|
printf(" <match key=\"info.subsystem\" string=\"usb\">\n"); |
|
+ printf(" <!-- skip USB Mass Storage Devices -->\n"); |
|
+ printf(" <match key=\"usb.interface.class\" compare_ne=\"8\">\n"); |
|
return 0; |
|
} |
|
|
|
@@ -858,62 +860,62 @@ fdi_camera_func (const func_params_t *pa |
|
return 0; |
|
} |
|
if (a->usb_vendor) { /* usb product id might be 0! */ |
|
- printf(" <match key=\"usb.vendor_id\" int=\"%d\">\n", a->usb_vendor); |
|
- printf(" <match key=\"usb.product_id\" int=\"%d\">\n", a->usb_product); |
|
+ printf(" <match key=\"usb.vendor_id\" int=\"%d\">\n", a->usb_vendor); |
|
+ printf(" <match key=\"usb.product_id\" int=\"%d\">\n", a->usb_product); |
|
if (a->usb_vendor == 0x05ac) { /* Apple iPhone, PTP user. */ |
|
- printf(" <match key=\"usb.interface.class\" int=\"6\">\n"); |
|
- printf(" <match key=\"usb.interface.subclass\" int=\"1\">\n"); |
|
- printf(" <match key=\"usb.interface.protocol\" int=\"1\">\n"); |
|
+ printf(" <match key=\"usb.interface.class\" int=\"6\">\n"); |
|
+ printf(" <match key=\"usb.interface.subclass\" int=\"1\">\n"); |
|
+ printf(" <match key=\"usb.interface.protocol\" int=\"1\">\n"); |
|
} |
|
if (a->device_type & GP_DEVICE_AUDIO_PLAYER) { |
|
- printf(" <merge key=\"info.category\" type=\"string\">portable_audio_player</merge>\n"); |
|
- printf(" <addset key=\"info.capabilities\" type=\"strlist\">portable_audio_player</addset>\n"); |
|
- printf(" <merge key=\"portable_audio_player.access_method\" type=\"string\">user</merge>\n"); |
|
- printf(" <merge key=\"portable_audio_player.type\" type=\"string\">mtp</merge>\n"); |
|
+ printf(" <merge key=\"info.category\" type=\"string\">portable_audio_player</merge>\n"); |
|
+ printf(" <addset key=\"info.capabilities\" type=\"strlist\">portable_audio_player</addset>\n"); |
|
+ printf(" <merge key=\"portable_audio_player.access_method\" type=\"string\">user</merge>\n"); |
|
+ printf(" <merge key=\"portable_audio_player.type\" type=\"string\">mtp</merge>\n"); |
|
|
|
/* FIXME: needs true formats ... But all of them can do MP3 */ |
|
- printf(" <append key=\"portable_audio_player.output_formats\" type=\"strlist\">audio/mpeg</append>\n"); |
|
+ printf(" <append key=\"portable_audio_player.output_formats\" type=\"strlist\">audio/mpeg</append>\n"); |
|
} else { |
|
- printf(" <merge key=\"info.category\" type=\"string\">camera</merge>\n"); |
|
- printf(" <addset key=\"info.capabilities\" type=\"strlist\">camera</addset>\n"); |
|
+ printf(" <merge key=\"info.category\" type=\"string\">camera</merge>\n"); |
|
+ printf(" <addset key=\"info.capabilities\" type=\"strlist\">camera</addset>\n"); |
|
|
|
/* HACK alert ... but the HAL / gnome-volume-manager guys want that */ |
|
if (NULL!=strstr(a->library,"ptp")) |
|
- printf(" <merge key=\"camera.access_method\" type=\"string\">ptp</merge>\n"); |
|
+ printf(" <merge key=\"camera.access_method\" type=\"string\">ptp</merge>\n"); |
|
else |
|
- printf(" <merge key=\"camera.access_method\" type=\"string\">proprietary</merge>\n"); |
|
+ printf(" <merge key=\"camera.access_method\" type=\"string\">proprietary</merge>\n"); |
|
} |
|
/* leave them here even for audio players */ |
|
- printf(" <merge key=\"camera.libgphoto2.name\" type=\"string\">%s</merge>\n", model); |
|
- printf(" <merge key=\"camera.libgphoto2.support\" type=\"bool\">true</merge>\n"); |
|
+ printf(" <merge key=\"camera.libgphoto2.name\" type=\"string\">%s</merge>\n", model); |
|
+ printf(" <merge key=\"camera.libgphoto2.support\" type=\"bool\">true</merge>\n"); |
|
if (a->usb_vendor == 0x05ac) { /* Apple iPhone */ |
|
+ printf(" </match>\n"); |
|
printf(" </match>\n"); |
|
printf(" </match>\n"); |
|
- printf(" </match>\n"); |
|
} |
|
+ printf(" </match>\n"); |
|
printf(" </match>\n"); |
|
- printf(" </match>\n"); |
|
|
|
} else if ((a->usb_class) && (a->usb_class != 666)) { |
|
- printf(" <match key=\"usb.interface.class\" int=\"%d\">\n", a->usb_class); |
|
- printf(" <match key=\"usb.interface.subclass\" int=\"%d\">\n", a->usb_subclass); |
|
- printf(" <match key=\"usb.interface.protocol\" int=\"%d\">\n", a->usb_protocol); |
|
- printf(" <merge key=\"info.category\" type=\"string\">camera</merge>\n"); |
|
- printf(" <addset key=\"info.capabilities\" type=\"strlist\">camera</addset>\n"); |
|
+ printf(" <match key=\"usb.interface.class\" int=\"%d\">\n", a->usb_class); |
|
+ printf(" <match key=\"usb.interface.subclass\" int=\"%d\">\n", a->usb_subclass); |
|
+ printf(" <match key=\"usb.interface.protocol\" int=\"%d\">\n", a->usb_protocol); |
|
+ printf(" <merge key=\"info.category\" type=\"string\">camera</merge>\n"); |
|
+ printf(" <addset key=\"info.capabilities\" type=\"strlist\">camera</addset>\n"); |
|
if (a->usb_class == 6) { |
|
- printf(" <merge key=\"camera.access_method\" type=\"string\">ptp</merge>\n"); |
|
+ printf(" <merge key=\"camera.access_method\" type=\"string\">ptp</merge>\n"); |
|
} else { |
|
if (a->usb_class == 8) { |
|
- printf(" <merge key=\"camera.access_method\" type=\"string\">storage</merge>\n"); |
|
+ printf(" <merge key=\"camera.access_method\" type=\"string\">storage</merge>\n"); |
|
} else { |
|
- printf(" <merge key=\"camera.access_method\" type=\"string\">proprietary</merge>\n"); |
|
+ printf(" <merge key=\"camera.access_method\" type=\"string\">proprietary</merge>\n"); |
|
} |
|
} |
|
- printf(" <merge key=\"camera.libgphoto2.name\" type=\"string\">%s</merge>\n", model); |
|
- printf(" <merge key=\"camera.libgphoto2.support\" type=\"bool\">true</merge>\n"); |
|
+ printf(" <merge key=\"camera.libgphoto2.name\" type=\"string\">%s</merge>\n", model); |
|
+ printf(" <merge key=\"camera.libgphoto2.support\" type=\"bool\">true</merge>\n"); |
|
+ printf(" </match>\n"); |
|
printf(" </match>\n"); |
|
printf(" </match>\n"); |
|
- printf(" </match>\n"); |
|
} |
|
} /* camera has USB connection */ |
|
return 0; |
|
@@ -922,6 +924,7 @@ fdi_camera_func (const func_params_t *pa |
|
static int |
|
fdi_end_func (const func_params_t *params, void *data) |
|
{ |
|
+ printf(" </match>\n"); |
|
printf(" </match>\n"); |
|
printf(" </device>\n"); |
|
printf("</deviceinfo>\n"); |
|
@@ -948,6 +951,8 @@ fdi_device_begin_func (const func_params |
|
printf("<deviceinfo version=\"0.2\">\n"); |
|
printf(" <device>\n"); |
|
printf(" <match key=\"info.subsystem\" string=\"usb\">\n"); |
|
+ printf(" <!-- skip USB Mass Storage Devices -->\n"); |
|
+ printf(" <match key=\"usb.interface.class\" compare_ne=\"8\">\n"); |
|
return 0; |
|
} |
|
|
|
@@ -991,28 +996,28 @@ fdi_device_camera_func (const func_param |
|
/* do not set category. We don't really know what this device really is. |
|
* But we do now that is capable of being a camera, so add to capabilities |
|
*/ |
|
- printf(" <match key=\"usb_device.vendor_id\" int=\"%d\">\n", a->usb_vendor); |
|
- printf(" <match key=\"usb_device.product_id\" int=\"%d\">\n", a->usb_product); |
|
+ printf(" <match key=\"usb_device.vendor_id\" int=\"%d\">\n", a->usb_vendor); |
|
+ printf(" <match key=\"usb_device.product_id\" int=\"%d\">\n", a->usb_product); |
|
if (params->add_comments) { |
|
printf(" <!-- %s -->\n", a->model); |
|
} |
|
if (a->device_type & GP_DEVICE_AUDIO_PLAYER) |
|
- printf(" <append key=\"info.capabilities\" type=\"strlist\">portable_audio_player</append>\n"); |
|
+ printf(" <append key=\"info.capabilities\" type=\"strlist\">portable_audio_player</append>\n"); |
|
else |
|
- printf(" <append key=\"info.capabilities\" type=\"strlist\">camera</append>\n"); |
|
+ printf(" <append key=\"info.capabilities\" type=\"strlist\">camera</append>\n"); |
|
+ printf(" </match>\n"); |
|
printf(" </match>\n"); |
|
- printf(" </match>\n"); |
|
} |
|
#if 0 |
|
/* would need to be able to merge upwards ... but cannot currently */ |
|
else if ((a->usb_class) && (a->usb_class != 666)) { |
|
- printf(" <match key=\"usb.interface.class\" int=\"%d\">\n", a->usb_class); |
|
- printf(" <match key=\"usb.interface.subclass\" int=\"%d\">\n", a->usb_subclass); |
|
- printf(" <match key=\"usb.interface.protocol\" int=\"%d\">\n", a->usb_protocol); |
|
- printf(" <append key=\"info.capabilities\" type=\"strlist\">camera</append>\n"); |
|
+ printf(" <match key=\"usb.interface.class\" int=\"%d\">\n", a->usb_class); |
|
+ printf(" <match key=\"usb.interface.subclass\" int=\"%d\">\n", a->usb_subclass); |
|
+ printf(" <match key=\"usb.interface.protocol\" int=\"%d\">\n", a->usb_protocol); |
|
+ printf(" <append key=\"info.capabilities\" type=\"strlist\">camera</append>\n"); |
|
+ printf(" </match>\n"); |
|
printf(" </match>\n"); |
|
printf(" </match>\n"); |
|
- printf(" </match>\n"); |
|
} |
|
#endif |
|
} |
|
@@ -1022,6 +1027,7 @@ fdi_device_camera_func (const func_param |
|
static int |
|
fdi_device_end_func (const func_params_t *params, void *data) |
|
{ |
|
+ printf(" </match>\n"); |
|
printf(" </match>\n"); |
|
printf(" </device>\n"); |
|
printf("</deviceinfo>\n");
|
|
|