diff options
author | Marcus Meissner <marcus@jet.franken.de> | 2012-12-11 13:02:07 +0000 |
---|---|---|
committer | Marcus Meissner <marcus@jet.franken.de> | 2012-12-11 13:02:07 +0000 |
commit | 21a199cc5a52400a4d0d680e667f2c44bd5af9cd (patch) | |
tree | a8d50d1b6f9ee86ff71cb9eb27d278d4561c2cb7 /camlibs/canon | |
parent | 4f1038a971d38e616a652bc904c64e7d04a434df (diff) | |
download | libgphoto2-21a199cc5a52400a4d0d680e667f2c44bd5af9cd.tar.gz |
The canon_int_get_release_param method loads all release params,
so there is no need to call it once for each param being read.
Switch camera_get_config to only invoke it once at the start
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
git-svn-id: https://svn.code.sf.net/p/gphoto/code/trunk/libgphoto2@14154 67ed7778-7388-44ab-90cf-0a291f65f57c
Diffstat (limited to 'camlibs/canon')
-rw-r--r-- | camlibs/canon/library.c | 115 |
1 files changed, 39 insertions, 76 deletions
diff --git a/camlibs/canon/library.c b/camlibs/canon/library.c index f600adad8..a27ecbed0 100644 --- a/camlibs/canon/library.c +++ b/camlibs/canon/library.c @@ -1570,10 +1570,7 @@ camera_get_config (Camera *camera, CameraWidget **window, GPContext *context) CameraWidget *t, *section; char power_str[128], firm[64]; - int iso, shutter_speed, aperture, focus_mode, flash_mode, beep_mode, shooting_mode; - int res_byte1, res_byte2, res_byte3; int pwr_status, pwr_source, res, i, menuval; - unsigned int expbias; time_t camtime; char formatted_camera_time[30]; float zoom; @@ -1628,22 +1625,24 @@ camera_get_config (Camera *camera, CameraWidget **window, GPContext *context) return -1; } + res = canon_int_get_release_params(camera, context); + if (res != GP_OK) { + for (i = 0 ; i < RELEASE_PARAMS_LEN ; i++) + camera->pl->release_params[i] = -1; + } + + /* ISO speed */ gp_widget_new (GP_WIDGET_MENU, _("ISO Speed"), &t); gp_widget_set_name (t, "iso"); - /* Get the camera's current ISO Speed setting */ - iso = -1; - res = canon_int_get_release_params(camera, context); - if (res == GP_OK) - iso = camera->pl->release_params[ISO_INDEX]; - - /* Map it to the list of choices */ + /* Map ISO speed to the list of choices */ i = 0; menuval = -1; while (isoStateArray[i].label) { gp_widget_add_choice (t, isoStateArray[i].label); - if (iso == (int)isoStateArray[i].value) { + if (camera->pl->release_params[ISO_INDEX] == + (int)isoStateArray[i].value) { gp_widget_set_value (t, isoStateArray[i].label); menuval = i; } @@ -1664,18 +1663,13 @@ camera_get_config (Camera *camera, CameraWidget **window, GPContext *context) gp_widget_new (GP_WIDGET_MENU, _("Shooting mode"), &t); gp_widget_set_name (t, "shootingmode"); - /* Get the camera's current shooting mode setting */ - shooting_mode = -1; - res = canon_int_get_release_params(camera, context); - if (res == GP_OK) - shooting_mode = camera->pl->release_params[SHOOTING_MODE_INDEX]; - - /* Map it to the list of choices */ + /* Map shooting mode to the list of choices */ i = 0; menuval = -1; while (shootingModeStateArray[i].label) { gp_widget_add_choice (t, _(shootingModeStateArray[i].label)); - if (shooting_mode == (int)shootingModeStateArray[i].value) { + if (camera->pl->release_params[SHOOTING_MODE_INDEX] == + (int)shootingModeStateArray[i].value) { gp_widget_set_value (t, _(shootingModeStateArray[i].label)); menuval = i; } @@ -1696,18 +1690,13 @@ camera_get_config (Camera *camera, CameraWidget **window, GPContext *context) gp_widget_new (GP_WIDGET_MENU, _("Shutter Speed"), &t); gp_widget_set_name (t, "shutterspeed"); - /* Get the camera's current shutter speed setting */ - shutter_speed = -1; - res = canon_int_get_release_params(camera, context); - if (res == GP_OK) - shutter_speed = camera->pl->release_params[SHUTTERSPEED_INDEX]; - - /* Map it to the list of choices */ + /* Map shutter speed to the list of choices */ i = 0; menuval = -1; while (shutterSpeedStateArray[i].label) { gp_widget_add_choice (t, _(shutterSpeedStateArray[i].label)); - if (shutter_speed == (int)shutterSpeedStateArray[i].value) { + if (camera->pl->release_params[SHUTTERSPEED_INDEX] == + (int)shutterSpeedStateArray[i].value) { gp_widget_set_value (t, _(shutterSpeedStateArray[i].label)); menuval = i; } @@ -1740,18 +1729,13 @@ camera_get_config (Camera *camera, CameraWidget **window, GPContext *context) gp_widget_new (GP_WIDGET_MENU, _("Aperture"), &t); gp_widget_set_name (t, "aperture"); - /* Get the camera's current aperture setting */ - aperture = -1; - res = canon_int_get_release_params(camera, context); - if (res == GP_OK) - aperture = camera->pl->release_params[APERTURE_INDEX]; - - /* Map it to the list of choices */ + /* Map aperture to the list of choices */ i = 0; menuval = -1; while (apertureStateArray[i].label) { gp_widget_add_choice (t, _(apertureStateArray[i].label)); - if (aperture == (int)apertureStateArray[i].value) { + if (camera->pl->release_params[APERTURE_INDEX] == + (int)apertureStateArray[i].value) { gp_widget_set_value (t, _(apertureStateArray[i].label)); menuval = i; } @@ -1771,18 +1755,14 @@ camera_get_config (Camera *camera, CameraWidget **window, GPContext *context) gp_widget_new (GP_WIDGET_MENU, _("Exposure Compensation"), &t); gp_widget_set_name (t, "exposurecompensation"); - /* Get the camera's current exposure compensation setting */ - expbias = -1; - res = canon_int_get_release_params(camera, context); - if (res == GP_OK) - expbias = camera->pl->release_params[EXPOSUREBIAS_INDEX]; - /* Map it to the list of choices */ + /* Map exposure compensation to the list of choices */ i = 0; menuval = -1; while (exposureBiasStateArray[i].label) { gp_widget_add_choice (t, _(exposureBiasStateArray[i].label)); - if (expbias == exposureBiasStateArray[i].value) { + if (camera->pl->release_params[EXPOSUREBIAS_INDEX] == + exposureBiasStateArray[i].value) { gp_widget_set_value (t, _(exposureBiasStateArray[i].label)); menuval = i; } @@ -1802,23 +1782,18 @@ camera_get_config (Camera *camera, CameraWidget **window, GPContext *context) gp_widget_new (GP_WIDGET_MENU, _("Image Format"), &t); gp_widget_set_name (t, "imageformat"); - /* Get the camera's current image format setting */ - res_byte1 = res_byte2 = res_byte3 = -1; - res = canon_int_get_release_params (camera, context); - if (res == GP_OK) { - res_byte1 = camera->pl->release_params[IMAGE_FORMAT_1_INDEX]; - res_byte2 = camera->pl->release_params[IMAGE_FORMAT_2_INDEX]; - res_byte3 = camera->pl->release_params[IMAGE_FORMAT_3_INDEX]; - } - /* Map it to the list of choices */ + /* Map image format to the list of choices */ i = 0; menuval = -1; while (imageFormatStateArray[i].label) { gp_widget_add_choice (t, _(imageFormatStateArray[i].label)); - if (res_byte1 == imageFormatStateArray[i].res_byte1 && - res_byte2 == imageFormatStateArray[i].res_byte2 && - res_byte3 == imageFormatStateArray[i].res_byte3) { + if ((camera->pl->release_params[IMAGE_FORMAT_1_INDEX] == + imageFormatStateArray[i].res_byte1) && + (camera->pl->release_params[IMAGE_FORMAT_2_INDEX] == + imageFormatStateArray[i].res_byte2) && + (camera->pl->release_params[IMAGE_FORMAT_3_INDEX] == + imageFormatStateArray[i].res_byte3)) { gp_widget_set_value (t, _(imageFormatStateArray[i].label)); menuval = i; } @@ -1839,18 +1814,14 @@ camera_get_config (Camera *camera, CameraWidget **window, GPContext *context) gp_widget_new (GP_WIDGET_MENU, _("Focus Mode"), &t); gp_widget_set_name (t, "focusmode"); - /* Get the camera's current focus mode setting */ - focus_mode = -1; - res = canon_int_get_release_params(camera, context); - if (res == GP_OK) - focus_mode = camera->pl->release_params[FOCUS_MODE_INDEX]; - /* Map it to the list of choices */ + /* Map focus to the list of choices */ i = 0; menuval = -1; while (focusModeStateArray[i].label) { gp_widget_add_choice (t, _(focusModeStateArray[i].label)); - if (focus_mode == (int)focusModeStateArray[i].value) { + if (camera->pl->release_params[FOCUS_MODE_INDEX] == + (int)focusModeStateArray[i].value) { gp_widget_set_value (t, _(focusModeStateArray[i].label)); menuval = i; } @@ -1871,25 +1842,21 @@ camera_get_config (Camera *camera, CameraWidget **window, GPContext *context) gp_widget_new (GP_WIDGET_MENU, _("Flash Mode"), &t); gp_widget_set_name (t, "flashmode"); - /* Get the camera's current flash mode setting */ - flash_mode = -1; - res = canon_int_get_release_params(camera, context); - if (res == GP_OK) - flash_mode = camera->pl->release_params[FLASH_INDEX]; - /* Map it to the list of choices */ + /* Map flash mode to the list of choices */ i = 0; menuval = -1; while (flashModeStateArray[i].label) { gp_widget_add_choice (t, _(flashModeStateArray[i].label)); - if (flash_mode == (int)flashModeStateArray[i].value) { + if (camera->pl->release_params[FLASH_INDEX] == + (int)flashModeStateArray[i].value) { gp_widget_set_value (t, _(flashModeStateArray[i].label)); menuval = i; } i++; } - /* Set an unknown shutter value if the + /* Set an unknown flash value if the * camera is set to something weird */ if (menuval == -1) { gp_widget_add_choice (t, _("Unknown")); @@ -1903,18 +1870,14 @@ camera_get_config (Camera *camera, CameraWidget **window, GPContext *context) gp_widget_new (GP_WIDGET_MENU, _("Beep"), &t); gp_widget_set_name (t, "beep"); - /* Get the camera's current beep setting */ - beep_mode = -1; - res = canon_int_get_release_params(camera, context); - if (res == GP_OK) - beep_mode = camera->pl->release_params[BEEP_INDEX]; - /* Map it to the list of choices */ + /* Map beep mode to the list of choices */ i = 0; menuval = -1; while (beepModeStateArray[i].label) { gp_widget_add_choice (t, _(beepModeStateArray[i].label)); - if (beep_mode == (int)beepModeStateArray[i].value) { + if (camera->pl->release_params[BEEP_INDEX] == + (int)beepModeStateArray[i].value) { gp_widget_set_value (t, _(beepModeStateArray[i].label)); menuval = i; } |