X-Git-Url: http://git.maemo.org/git/?p=mardrone;a=blobdiff_plain;f=mardrone%2FARDrone_SDK_Version_1_8_20110726%2FExamples%2FLinux%2FNavigation%2FSources%2FUI%2Fgamepad.h;fp=mardrone%2FARDrone_SDK_Version_1_8_20110726%2FExamples%2FLinux%2FNavigation%2FSources%2FUI%2Fgamepad.h;h=9ac7befb8a738dec3943f0d3666e86fc446c6292;hp=0000000000000000000000000000000000000000;hb=9ec9bc13b75d30bc45535c54a652934debfcea92;hpb=ae0a3c2dc0898400aca0dd6b439c5db8044db7b2 diff --git a/mardrone/ARDrone_SDK_Version_1_8_20110726/Examples/Linux/Navigation/Sources/UI/gamepad.h b/mardrone/ARDrone_SDK_Version_1_8_20110726/Examples/Linux/Navigation/Sources/UI/gamepad.h new file mode 100644 index 0000000..9ac7bef --- /dev/null +++ b/mardrone/ARDrone_SDK_Version_1_8_20110726/Examples/Linux/Navigation/Sources/UI/gamepad.h @@ -0,0 +1,179 @@ +#ifndef _GAMEPAD_H_ +#define _GAMEPAD_H_ + +#include "UI/ui.h" + +#define GAMEPAD_LOGICTECH_ID 0x046dc21a + +typedef enum { + PAD_X, + PAD_Y +} PAD_AXIS; + +typedef enum { + PAD_AG = 0, + PAD_AB, + PAD_AD, + PAD_AH, + PAD_L1, + PAD_R1, + PAD_L2, + PAD_R2, + PAD_SELECT, + PAD_START, + PAD_NUM_BUTTONS +} PAD_BUTTONS; + +extern input_device_t gamepad; + +C_RESULT open_gamepad(void); +C_RESULT update_gamepad(void); +C_RESULT close_gamepad(void); + +/////////////////////////////////////////////////// +typedef enum JOYTICK_DEVICES +{ + JOYSTICK_DEVICE_SIDEWINDER, + JOYSTICK_DEVICE_CYBORG, + JOYSTICK_DEVICE_MAX, +} JOYSTICK_DEVICES; + +typedef enum +{ + JOYBTN_SELECT=0, + JOYBTN_START, + JOYBTN_FIRE, + JOYBTN_NUM, +} JOYSTICK_BUTTONS; + +/* On Joystick Side winder, buttons can return analogic values (though non-precise) */ +typedef enum +{ + JOYAXIS_ROLL, + JOYAXIS_PITCH, + JOYAXIS_YAW, + JOYAXIS_GAZ, + JOYAXIS_NUM, +} JOYSTICK_AXIS; + +extern input_device_t joystick; + +C_RESULT open_joystick(void); +C_RESULT update_joystick(void); +C_RESULT close_joystick(void); +C_RESULT (*button_callback)(JOYSTICK_BUTTONS button); +C_RESULT (*axis_callback)(JOYSTICK_AXIS axis); + +/////////////////////////////////////////////////////////////// +#define GAMEPAD_PLAYSTATION3_ID 0x054C0268 + +typedef enum +{ + PS3BTN_SELECT=0, + PS3BTN_L3, + PS3BTN_R3, + PS3BTN_START, + PS3BTN_UPARROW, + PS3BTN_RIGHTARROW, + PS3BTN_DOWNARROW, + PS3BTN_LEFTARROW, + PS3BTN_L2, + PS3BTN_R2, + PS3BTN_L1, + PS3BTN_R1, + PS3BTN_TRIANGLE, + PS3BTN_CIRCLE, + PS3BTN_CROSS, + PS3BTN_SQUARE, + PS3BTN_PS3 +}PS3PAD_BUTTONS; + +/* On Playstation3 Gamepad, buttons can return analogic values (though non-precise) */ +typedef enum +{ + PS3AXIS_STICK1_LR=0, + PS3AXIS_STICK1_UD, + PS3AXIS_STICK2_LR, + PS3AXIS_STICK2_UD, + PS3AXIS_UPARROW=8, + PS3AXIS_RIGHTARROW, + PS3AXIS_DOWNARROW, + PS3AXIS_LEFTARROW, + PS3AXIS_L2, + PS3AXIS_R2, + PS3AXIS_L1, + PS3AXIS_R1, + PS3AXIS_TRIANGLE, + PS3AXIS_CIRCLE, + PS3AXIS_CROSS, + PS3AXIS_SQUARE +}PS3PAD_AXIS; + + +extern input_device_t ps3pad; + + +C_RESULT open_ps3pad(void); +C_RESULT update_ps3pad(void); +C_RESULT close_ps3pad(void); + + +////////////////////////////////////////////////// +#define RADIO_GP_ID 0x061c0010 + +typedef enum _TYPE +{ + TYPE_MIN = 0, + TYPE_BUTTON = 1, + TYPE_ANALOGIC = 2, + TYPE_MAX = 3 +} TYPE; + +typedef enum _ANALOGIC_RADIO_COMMAND_GP +{ + GP_ROLL = 0, + GP_GAZ = 1, + GP_PITCH = 2, + GP_PID = 3, + GP_YAW = 4, + GP_ANALOG_MAX = 5, +} ANALOGIC_RADIO_COMMAND_GP; + +#define NUM_A_GP_MIN GP_ROLL +#define NUM_A_GP_MAX GP_MAX + +#define OFFSET_PITCH_GP 127 +#define OFFSET_ROLL_GP 127 +#define OFFSET_YAW_GP 127 +#define OFFSET_GAZ_GP 198 + +#define NUM_PITCH_GP -3 +#define NUM_ROLL_GP 3 +#define NUM_YAW_GP 3 +#define NUM_GAZ_GP -7 + +#define DEC_PITCH_GP 1 +#define DEC_ROLL_GP 1 +#define DEC_YAW_GP 1 +#define DEC_GAZ_GP 2 + + +typedef enum _BUTTON_RADIO_COMMAND_GP +{ + GP_BOARD_LEFT = 0, // switch above left joystick + GP_SIDE_RIGHT = 1, // right corner switch + GP_IMPULSE = 2, // Red button + GP_SIDE_LEFT_DOWN = 3, // left corner switch, down position + GP_SIDE_LEFT_UP = 4, // left corner switch, up position + GP_BUTTON_MAX = 5 +} BUTTON_RADIO_COMMAND_GP; + +#define NUM_B_GP_MIN GP_BOARD_LEFT +#define NUM_B_GP_MAX GP_MAX +extern input_device_t radioGP; + +C_RESULT open_radioGP(void); +C_RESULT update_radioGP(void); +C_RESULT close_radioGP(void); + +#endif // _GAMEPAD_H_