1#include <USBKit.h>
2
3
4#define MAX_BUFFER_SIZE 4096 //Size ot transfer buffer from camera
5
6/* IDs of cameras the driver (hopefully) supports. Some different
7 * cameras have the same USB ids, so we just keep one here.  */
8#define USB_FUJIFILM_VENDOR_ID  0x04cb
9
10#define USB_FINEPIX_4800_PID	0x0104
11#define USB_FINEPIX_F601_PID	0x0109
12#define USB_FINEPIX_S602_PID	0x010b
13#define USB_FINEPIX_F402_PID	0x010f
14#define USB_FINEPIX_M603_PID	0x0111
15#define USB_FINEPIX_A202_PID	0x0113
16#define USB_FINEPIX_F401_PID	0x0115
17#define USB_FINEPIX_A203_PID	0x0117
18#define USB_FINEPIX_A303_PID	0x0119
19#define USB_FINEPIX_S304_PID	0x011b
20#define USB_FINEPIX_A204_PID	0x011d
21#define USB_FINEPIX_F700_PID	0x0121
22#define USB_FINEPIX_F410_PID	0x0123
23#define USB_FINEPIX_A310_PID	0x0125
24#define USB_FINEPIX_A210_PID	0x0127
25#define USB_FINEPIX_A205_PID	0x0129
26#define USB_FINEPIX_X1_PID		0x012B
27#define USB_FINEPIX_S7000_PID	0x012d
28#define USB_FINEPIX_X2_PID		0x012F
29#define USB_FINEPIX_S5000_PID	0x0131
30#define USB_FINEPIX_X3_PID		0x013B
31#define USB_FINEPIX_S3000_PID	0x013d
32#define USB_FINEPIX_X4_PID		0x013f
33
34
35class FinePix : private BUSBRoster
36{
37public:
38	FinePix();
39	virtual ~FinePix();
40
41	status_t InitCheck();			// check if any error occurs
42	int SetupCam();					// ready camera for sending pictures
43	int GetPic(uint8 *frame, int &total_size);			// get pictures!
44
45	status_t DeviceAdded(BUSBDevice* dev);	//dev added
46	void DeviceRemoved(BUSBDevice* dev);		//dev  removed
47
48private:
49	BUSBDevice* camera;
50	const BUSBEndpoint* bulk_in;
51};
52