/* * Force camera to make a picture in the current quality */ int mdc800_take_picture () { unsigned char answer [2]; printFnkCall ("(mdc800_take_picture) called.\n"); if (!mdc800_initialize ()) { return 0; } if (!mdc800_setMode (0)) // Camera Mode { printAPIError ("(mdc800_take_picture) can't set Camera Mode!\n"); mdc800_close (); return 0; } if (!mdc800_setTarget (1)) // Image { printAPIError ("(mdc800_take_pictures) can't set Target\n"); mdc800_close (); return 0; } if (!mdc800_io_sendCommand (COMMAND_TAKE_PICTURE,0,0,0,0,0)) { printAPIError ("(mdc800_take_picture) take picture fails.\n"); mdc800_close (); return 0; } if (!mdc800_setTarget (1)) // Image { printAPIError ("(mdc800_take_pictures) can't set Target\n"); mdc800_close (); return 0; } // Assume taken picture is the last one ! if (!mdc800_io_sendCommand (COMMAND_GET_NUM_IMAGES,0,0,0,(char*)answer,2)) { printAPIError ("(mdc800_take_picture) request Number of taken Pictures fails.\n"); mdc800_close (); return 0; } return (int)answer[0]*256+answer [1]; }
static int delete_file_func (CameraFilesystem *fs, const char *folder, const char *filename, void *data, GPContext *context) { Camera *camera = data; int ret,nr ; nr = gp_filesystem_number(fs, folder, filename, context); if (nr < 0) return nr; ret = mdc800_setTarget (camera,1); if (ret!=GP_OK) { printAPIError ("(mdc800_delete_image) can't set Target\n"); return ret; } ret = mdc800_io_sendCommand(camera->port, COMMAND_DELETE_IMAGE,nr/100,(nr%100)/10,nr%10,0,0); if (ret != GP_OK) { printAPIError ("(mdc800_delete_image ) deleting Image %i fails !.\n",nr); return ret; } return GP_OK; }
int mdc800_delete_image (int pn) { printFnkCall ("(mdc800_delete_image) called for Image %i.\n",pn); if (!mdc800_initialize ()) { return 0; } printAPINote ("Delete Image %i \n", pn); if (!mdc800_setTarget (1)) // Image { printAPIError ("(mdc800_delete_image) can't set Target\n"); mdc800_close (); return 0; } if (!mdc800_io_sendCommand (COMMAND_DELETE_IMAGE,pn/100,(pn%100)/10,pn%10,0,0)) { printAPIError ("(mdc800_delete_image ) deleting Image %i fails !.\n",pn); mdc800_close (); return 0; } return 1; }
int mdc800_number_of_pictures () { unsigned char answer [2]; printFnkCall ("(mdc800_number_of_pictures) called.\n"); if (!mdc800_initialize ()) { return 0; } if (!mdc800_setTarget (1)) // Image { printAPIError ("(mdc800_number_of_pictures) can't set Target\n"); mdc800_close (); return 0; } /* if (!mdc800_setMode (1)) { printError ("(mdc800_number_of_pictures) can't set Mode\n"); mdc800_close (); return 0; } */ if (!mdc800_io_sendCommand (COMMAND_GET_NUM_IMAGES,0,0,0,(char*)answer,2)) { printAPIError ("(mdc800_getNumberOfImages) request Number of Pictures fails.\n"); mdc800_close (); return 0; } return (int)answer[0]*256+answer [1]; }