Пример #1
0
/*
 * 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];
	
}
Пример #2
0
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;
}
Пример #3
0
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;
}
Пример #4
0
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];
}