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;
   
}
Example #2
0
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;
}