#ifndef _C_P5WRAPPER_H_
#define _C_P5WRAPPER_H_

typedef struct c_p5
{
	float x ,y, z;				// x,y,z position data
	float yaw, pitch, roll;		// other orientation data
	unsigned char bend[5];	    // All the bend sensor data
	unsigned char buttons[4];			    // P5 Button data

}p5Datatype;

extern p5Datatype p5Data;

#ifdef __cplusplus

#define P5BOOL	unsigned int

extern "C" P5BOOL  C_P5_Init();
extern "C" P5BOOL  C_P5_GetMouseState(int P5Id);
extern "C" void    C_P5_SetMouseState(int P5Id, P5BOOL state);
extern "C" void    C_P5_GetClickSensitivity(int P5Id, int  *leftclick, int *rightclick, int *middleclick);
extern "C" void    C_P5_SaveBendSensors(int P5Id);
extern "C" void    C_P5_CalibrateBendSensors(int P5Id);
extern "C" void    C_P5_CalibratePositionData(int P5Id);
extern "C" void    C_P5_SetClickSensitivity(int P5Id, unsigned char value);
extern "C" P5BOOL  C_P5_GetLastError(int P5Id, int *ErrorCode);
extern "C" void    C_P5_Close();
extern "C" void    C_GetData();

#else

BOOL C_P5_Init();
BOOL C_P5_GetMouseState(int P5Id);
void C_P5_SetMouseState(int P5Id, P5BOOL state);
void C_P5_GetClickSensitivity(int P5Id, int *leftclick, int *rightclick, int *middleclick);
void C_P5_SaveBendSensors(int P5Id);
void C_P5_CalibrateBendSensors(int P5Id);
void C_P5_CalibratePositionData(int P5Id);
void C_P5_SetClickSensitivity(int P5Id, unsigned char value);
BOOL  C_P5_GetLastError(int P5Id, int *ErrorCode);
void C_P5_Close();
void C_GetData();

#endif

#endif
