diff --git a/camlibs/canon/canon.c b/camlibs/canon/canon.c index 3827c21a0..0373b8b15 100644 --- a/camlibs/canon/canon.c +++ b/camlibs/canon/canon.c @@ -3597,6 +3597,22 @@ canon_int_put_file (Camera *camera, CameraFile *file, const char *filename, return GP_ERROR; } +int +canon_int_wait_for_event (Camera *camera, int timeout, + CameraEventType *eventtype, void **eventdata, + GPContext *context) +{ + switch (camera->port->type) { + case GP_PORT_USB: + return canon_usb_wait_for_event (camera, timeout, eventtype, eventdata, context); + break; + GP_PORT_DEFAULT + } + /* Never reached */ + return GP_ERROR; +} + + /** * canon_int_extract_jpeg_thumb: * @data: raw JFIF from which to extract thumbnail diff --git a/camlibs/canon/canon.h b/camlibs/canon/canon.h index 07acb476c..442f30c77 100644 --- a/camlibs/canon/canon.h +++ b/camlibs/canon/canon.h @@ -326,6 +326,7 @@ struct canonShutterSpeedStateStruct { typedef enum { IMAGE_FORMAT_RAW = 0, + IMAGE_FORMAT_RAW_2, IMAGE_FORMAT_RAW_AND_LARGE_FINE_JPEG, IMAGE_FORMAT_RAW_AND_LARGE_NORMAL_JPEG, IMAGE_FORMAT_RAW_AND_MEDIUM_FINE_JPEG, @@ -688,6 +689,7 @@ int canon_int_list_directory (Camera *camera, const char *folder, CameraList *li int canon_int_get_file(Camera *camera, const char *name, unsigned char **data, unsigned int *length, GPContext *context); int canon_int_get_thumbnail(Camera *camera, const char *name, unsigned char **retdata, unsigned int *length, GPContext *context); int canon_int_put_file(Camera *camera, CameraFile *file, const char *filename, const char *destname, const char *destpath, GPContext *context); +int canon_int_wait_for_event (Camera *camera, int timeout, CameraEventType *eventtype, void **eventdata, GPContext *context); int canon_int_set_file_attributes(Camera *camera, const char *file, const char *dir, canonDirentAttributeBits attrs, GPContext *context); int canon_int_delete_file(Camera *camera, const char *name, const char *dir, GPContext *context); int canon_int_set_shutter_speed(Camera *camera, canonShutterSpeedState shutter_speed, GPContext *context); diff --git a/camlibs/canon/library.c b/camlibs/canon/library.c index bc0c4351e..9afa811cb 100644 --- a/camlibs/canon/library.c +++ b/camlibs/canon/library.c @@ -298,6 +298,8 @@ static const struct canonShootingModeStateStruct shootingModeStateArray[] = { static const struct canonImageFormatStateStruct imageFormatStateArray[] = { {IMAGE_FORMAT_RAW, N_("RAW"), 0x04, 0x02, 0x00}, + {IMAGE_FORMAT_RAW_2, N_("RAW 2"), + 0x03, 0x02, 0x00}, {IMAGE_FORMAT_SMALL_NORMAL_JPEG, N_("Small Normal JPEG"), 0x02, 0x01, 0x02}, {IMAGE_FORMAT_SMALL_FINE_JPEG, N_("Small Fine JPEG"), @@ -1552,6 +1554,14 @@ put_file_func (CameraFilesystem __unused__ *fs, const char __unused__ *folder, c /****************************************************************************/ +/* Wait for an event */ +static int +camera_wait_for_event (Camera *camera, int timeout, CameraEventType *eventtype, void **eventdata, GPContext *context) +{ + return canon_int_wait_for_event (camera, timeout, eventtype, eventdata, context); +} + + /* Get configuration into screen widgets for display. */ static int @@ -2582,6 +2592,7 @@ camera_init (Camera *camera, GPContext *context) camera->functions->summary = camera_summary; camera->functions->manual = camera_manual; camera->functions->about = camera_about; + camera->functions->wait_for_event = camera_wait_for_event; /* Set up the CameraFilesystem */ gp_filesystem_set_funcs (camera->fs, &fsfuncs, camera); diff --git a/camlibs/canon/usb.h b/camlibs/canon/usb.h index 5f2d7424c..68626f886 100644 --- a/camlibs/canon/usb.h +++ b/camlibs/canon/usb.h @@ -279,6 +279,9 @@ int canon_usb_set_file_attributes (Camera *camera, GPContext *context); int canon_usb_ready (Camera *camera, GPContext *context); +int canon_usb_wait_for_event (Camera *camera, int timeout, + CameraEventType *eventtype, void **eventdata, + GPContext *context); #endif /* _CANON_USB_H */ /****************************************************************************