int tiger_capture(CameraPrivateLibrary *dev, CameraFilePath *path) { int result=0,start_pics,num_pics,mem_total,mem_free; result=soundvision_send_command(SOUNDVISION_START_TRANSACTION,0,dev); if (result<0) goto tiger_capture_error; result=soundvision_get_revision(dev,NULL); if (result<0) goto tiger_capture_error; result=tiger_get_mem(dev,&start_pics,&mem_total,&mem_free); if (result<0) goto tiger_capture_error; result=soundvision_send_command(SOUNDVISION_SETPC2,0,dev); if (result<0) goto tiger_capture_error; result=soundvision_send_command(SOUNDVISION_TAKEPIC3,0,dev); if (result<0) goto tiger_capture_error; result=soundvision_send_command(SOUNDVISION_SETPC1,0,dev); if (result<0) goto tiger_capture_error; result=tiger_get_mem(dev,&num_pics,&mem_total,&mem_free); if (result<0) goto tiger_capture_error; while(num_pics==start_pics) { sleep(4); result=tiger_get_mem(dev,&num_pics,&mem_total,&mem_free); if (result<0) goto tiger_capture_error; } result=tiger_get_mem(dev,&num_pics,&mem_total,&mem_free); if (result<0) goto tiger_capture_error; return GP_OK; tiger_capture_error: GP_DEBUG("ERROR with tiger_capture"); return result; }
static int camera_summary(Camera *camera, CameraText *summary, GPContext *context) { char revision[9]; soundvision_reset(camera->pl,revision,NULL); if (camera->pl->device_type==SOUNDVISION_TIGERFASTFLICKS) { int mem_total,mem_free,num_pics, ret; ret = tiger_get_mem(camera->pl,&num_pics,&mem_total,&mem_free); if (ret < GP_OK) return ret; sprintf(summary->text, _("Firmware Revision: %8s\n" "Pictures: %i\n" "Memory Total: %ikB\n" "Memory Free: %ikB\n"), revision,num_pics,mem_total,mem_free); } else { sprintf(summary->text, _("Firmware Revision: %8s"), revision); } return GP_OK; }