summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Meissner <marcus@jet.franken.de>2012-12-11 12:11:51 +0000
committerMarcus Meissner <marcus@jet.franken.de>2012-12-11 12:11:51 +0000
commit29eff91b9a9609003b5f7f63bf9d73ec72d37754 (patch)
treeb9629747af997ee9fe07d68b57d2a052b1e0784e
parent1b1eec78accf0d3ba2d183f5d6583eec6f74e210 (diff)
downloadlibgphoto2-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.c7
-rw-r--r--camlibs/canon/canon.h2
-rw-r--r--camlibs/canon/library.c6
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);