155 lines
8.6 KiB
Diff
155 lines
8.6 KiB
Diff
diff -up libgphoto2-2.4.1/packaging/generic/print-camera-list.c.storage libgphoto2-2.4.1/packaging/generic/print-camera-list.c
|
|
--- libgphoto2-2.4.1/packaging/generic/print-camera-list.c.storage 2008-03-24 12:47:00.000000000 +0100
|
|
+++ libgphoto2-2.4.1/packaging/generic/print-camera-list.c 2008-06-02 10:44:29.000000000 +0200
|
|
@@ -793,6 +793,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;
|
|
}
|
|
|
|
@@ -832,52 +834,52 @@ 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->device_type & GP_DEVICE_AUDIO_PLAYER) {
|
|
- printf(" <merge key=\"info.category\" type=\"string\">portable_audio_player</merge>\n");
|
|
- printf(" <append key=\"info.capabilities\" type=\"strlist\">portable_audio_player</append>\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(" <append key=\"info.capabilities\" type=\"strlist\">portable_audio_player</append>\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(" <append key=\"info.capabilities\" type=\"strlist\">camera</append>\n");
|
|
+ printf(" <merge key=\"info.category\" type=\"string\">camera</merge>\n");
|
|
+ printf(" <append key=\"info.capabilities\" type=\"strlist\">camera</append>\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");
|
|
+ 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(" <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(" <merge key=\"info.category\" type=\"string\">camera</merge>\n");
|
|
+ printf(" <append key=\"info.capabilities\" type=\"strlist\">camera</append>\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;
|
|
@@ -886,6 +888,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");
|
|
@@ -912,6 +915,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;
|
|
}
|
|
|
|
@@ -955,28 +960,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
|
|
}
|
|
@@ -986,6 +991,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");
|