summaryrefslogtreecommitdiff
path: root/camlibs/lumix/lumix.c
diff options
context:
space:
mode:
Diffstat (limited to 'camlibs/lumix/lumix.c')
-rw-r--r--camlibs/lumix/lumix.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/camlibs/lumix/lumix.c b/camlibs/lumix/lumix.c
index d465f333d..481e08c05 100644
--- a/camlibs/lumix/lumix.c
+++ b/camlibs/lumix/lumix.c
@@ -1869,6 +1869,8 @@ camera_init (Camera *camera, GPContext *context)
{
GPPortInfo info;
int ret;
+ int tries;
+ char *result;
camera->pl = calloc(sizeof(CameraPrivateLibrary),1);
@@ -1893,8 +1895,14 @@ camera_init (Camera *camera, GPContext *context)
}
gp_filesystem_set_funcs (camera->fs, &fsfuncs, camera);
- loadCmd(camera,"cam.cgi?mode=accctrl&type=req_acc&value=0&value2=libgphoto2/lumix");
- loadCmd(camera,"cam.cgi?mode=setsetting&type=device_name&value=libgphoto2/lumix");
+ tries = 3;
+ while (tries--) {
+ result = loadCmd(camera,"cam.cgi?mode=accctrl&type=req_acc&value=0&value2=libgphoto2/lumix");
+ if (strstr(result,"ok,")) {
+ loadCmd(camera,"cam.cgi?mode=setsetting&type=device_name&value=libgphoto2/lumix");
+ break;
+ }
+ }
if (switchToRecMode (camera) != NULL) {
int numpix;