diff options
author | Marcus Meissner <marcus@jet.franken.de> | 2012-12-11 12:11:51 +0000 |
---|---|---|
committer | Marcus Meissner <marcus@jet.franken.de> | 2012-12-11 12:11:51 +0000 |
commit | 29eff91b9a9609003b5f7f63bf9d73ec72d37754 (patch) | |
tree | b9629747af997ee9fe07d68b57d2a052b1e0784e | |
parent | 1b1eec78accf0d3ba2d183f5d6583eec6f74e210 (diff) | |
download | libgphoto2-29eff91b9a9609003b5f7f63bf9d73ec72d37754.tar.gz |
added zoom level parsing from "Daniel P. Berrange" <dan@berrange.com>
git-svn-id: https://svn.code.sf.net/p/gphoto/code/branches/libgphoto2-2_4/libgphoto2@14152 67ed7778-7388-44ab-90cf-0a291f65f57c
-rw-r--r-- | camlibs/canon/canon.c | 7 | ||||
-rw-r--r-- | camlibs/canon/canon.h | 2 | ||||
-rw-r--r-- | camlibs/canon/library.c | 6 |
3 files changed, 10 insertions, 5 deletions
diff --git a/camlibs/canon/canon.c b/camlibs/canon/canon.c index 8ac9c1c51..5f395a0de 100644 --- a/camlibs/canon/canon.c +++ b/camlibs/canon/canon.c @@ -2029,6 +2029,7 @@ canon_int_set_zoom (Camera *camera, unsigned char zoom_level, * canon_int_get_zoom * @camera: camera to work with * @zoom_level: pointer to hold returned zoom level - A40: 1..10; G1: 0..40 (pMaxOpticalZoomPos*4) + * @zoom_max: pointer to hold zoom upper bound * @context: context for error reporting * * Gets the camera's zoom. Only tested for G1 via USB. @@ -2037,7 +2038,9 @@ canon_int_set_zoom (Camera *camera, unsigned char zoom_level, * */ int -canon_int_get_zoom (Camera *camera, unsigned char *zoom_level, +canon_int_get_zoom (Camera *camera, + unsigned char *zoom_level, + unsigned char *zoom_max, GPContext *context) { unsigned char *msg = NULL; @@ -2047,6 +2050,7 @@ canon_int_get_zoom (Camera *camera, unsigned char *zoom_level, char desc[128]; *zoom_level = 0; + *zoom_max = 0; GP_DEBUG ("canon_int_get_zoom() called"); payloadlen = canon_int_pack_control_subcmd( payload, @@ -2074,6 +2078,7 @@ canon_int_get_zoom (Camera *camera, unsigned char *zoom_level, } *zoom_level = msg[12]; + *zoom_max = msg[14]; msg = NULL; datalen = 0; diff --git a/camlibs/canon/canon.h b/camlibs/canon/canon.h index cf2189cca..11c7d664c 100644 --- a/camlibs/canon/canon.h +++ b/camlibs/canon/canon.h @@ -713,7 +713,7 @@ int canon_int_end_remote_control(Camera *camera, GPContext *context); int canon_int_set_beep(Camera *camera, canonBeepMode beep_mode, GPContext *context); int canon_int_set_flash(Camera *camera, canonFlashMode flash_mode, GPContext *context); int canon_int_set_zoom(Camera *camera, unsigned char zoom_level, GPContext *context); -int canon_int_get_zoom(Camera *camera, unsigned char *zoom_level, GPContext *context); +int canon_int_get_zoom(Camera *camera, unsigned char *zoom_level, unsigned char *zoom_max, GPContext *context); /* * introduced for capturing diff --git a/camlibs/canon/library.c b/camlibs/canon/library.c index bf240b337..0fa9fc732 100644 --- a/camlibs/canon/library.c +++ b/camlibs/canon/library.c @@ -1582,7 +1582,7 @@ camera_get_config (Camera *camera, CameraWidget **window, GPContext *context) time_t camtime; char formatted_camera_time[30]; float zoom; - unsigned char zoomVal; + unsigned char zoomVal, zoomMax; GP_DEBUG ("camera_get_config()"); @@ -1739,8 +1739,8 @@ camera_get_config (Camera *camera, CameraWidget **window, GPContext *context) /* Zoom level */ gp_widget_new (GP_WIDGET_RANGE, _("Zoom"), &t); gp_widget_set_name (t, "zoom"); - gp_widget_set_range (t, 0, 255, 1); - canon_int_get_zoom(camera, &zoomVal, context); + canon_int_get_zoom(camera, &zoomVal, &zoomMax, context); + gp_widget_set_range (t, 0, zoomMax, 1); zoom = zoomVal; gp_widget_set_value (t, &zoom); gp_widget_append (section, t); |