ArDrone SDK 1.8 added
[mardrone] / mardrone / ARDrone_SDK_Version_1_8_20110726 / Examples / Win32 / sdk_demo / Sources / UI / gamepad.h
diff --git a/mardrone/ARDrone_SDK_Version_1_8_20110726/Examples/Win32/sdk_demo/Sources/UI/gamepad.h b/mardrone/ARDrone_SDK_Version_1_8_20110726/Examples/Win32/sdk_demo/Sources/UI/gamepad.h
new file mode 100644 (file)
index 0000000..3d20f7a
--- /dev/null
@@ -0,0 +1,121 @@
+/********************************************************************
+ *
+ *  Parts of the DirectX code are from a tutorial by Microsoft
+ *     which can be found in the Microsoft DirectX SDK June 2010.
+ *  Copyright (c) Microsoft Corporation. All rights reserved.
+ *
+ *  
+ *  The rest of the code is COPYRIGHT PARROT 2010
+ *
+ ********************************************************************
+ *       PARROT - A.R.Drone SDK Windows Client Example
+ *-----------------------------------------------------------------*/
+/**
+ * @file gamepad.h 
+ * @brief Header file for the DirectInput gamepad management system.
+ *
+ * @author Stephane Piskorski <stephane.piskorski.ext@parrot.fr>
+ * @date   Sept, 8. 2010
+ *
+ *******************************************************************/
+
+
+
+#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 dx_gamepad;
+extern input_device_t dx_keyboard;
+
+/*
+C_RESULT open_gamepad(void);
+C_RESULT update_gamepad(void);
+C_RESULT close_gamepad(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_dx_gamepad(void);
+C_RESULT update_dx_gamepad(void);
+C_RESULT close_dx_gamepad(void);
+
+C_RESULT open_dx_keyboard(void);
+C_RESULT update_dx_keyboard(void);
+C_RESULT close_dx_keyboard(void);
+
+
+#endif // _GAMEPAD_H_