205 lines
4.9 KiB
C
205 lines
4.9 KiB
C
/* Copyright (C) 2013 Kristian Lauszus, TKJ Electronics. All rights reserved.
|
|
|
|
This software may be distributed and modified under the terms of the GNU
|
|
General Public License version 2 (GPL2) as published by the Free Software
|
|
Foundation and appearing in the file GPL2.TXT included in the packaging of
|
|
this file. Please note that GPL2 Section 2[b] requires that all works based
|
|
on this software must also be made publicly available under the terms of
|
|
the GPL2 ("Copyleft").
|
|
|
|
Contact information
|
|
-------------------
|
|
|
|
Kristian Lauszus, TKJ Electronics
|
|
Web : http://www.tkjelectronics.com
|
|
e-mail : kristianl@tkjelectronics.com
|
|
*/
|
|
|
|
#ifndef _controllerenums_h
|
|
#define _controllerenums_h
|
|
|
|
/**
|
|
* This header file is used to store different enums for the controllers,
|
|
* This is necessary so all the different libraries can be used at once.
|
|
*/
|
|
|
|
/** Enum used to turn on the LEDs on the different controllers. */
|
|
enum LEDEnum {
|
|
OFF = 0,
|
|
LED1 = 1,
|
|
LED2 = 2,
|
|
LED3 = 3,
|
|
LED4 = 4,
|
|
|
|
LED5 = 5,
|
|
LED6 = 6,
|
|
LED7 = 7,
|
|
LED8 = 8,
|
|
LED9 = 9,
|
|
LED10 = 10,
|
|
/** Used to blink all LEDs on the Xbox controller */
|
|
ALL = 5,
|
|
};
|
|
|
|
/** Used to set the colors of the Move and PS4 controller. */
|
|
enum ColorsEnum {
|
|
/** r = 255, g = 0, b = 0 */
|
|
Red = 0xFF0000,
|
|
/** r = 0, g = 255, b = 0 */
|
|
Green = 0xFF00,
|
|
/** r = 0, g = 0, b = 255 */
|
|
Blue = 0xFF,
|
|
|
|
/** r = 255, g = 235, b = 4 */
|
|
Yellow = 0xFFEB04,
|
|
/** r = 0, g = 255, b = 255 */
|
|
Lightblue = 0xFFFF,
|
|
/** r = 255, g = 0, b = 255 */
|
|
Purble = 0xFF00FF,
|
|
|
|
/** r = 255, g = 255, b = 255 */
|
|
White = 0xFFFFFF,
|
|
/** r = 0, g = 0, b = 0 */
|
|
Off = 0x00,
|
|
};
|
|
|
|
enum RumbleEnum {
|
|
RumbleHigh = 0x10,
|
|
RumbleLow = 0x20,
|
|
};
|
|
|
|
/** This enum is used to read all the different buttons on the different controllers */
|
|
enum ButtonEnum {
|
|
/**@{*/
|
|
/** These buttons are available on all the the controllers */
|
|
UP = 0,
|
|
RIGHT = 1,
|
|
DOWN = 2,
|
|
LEFT = 3,
|
|
/**@}*/
|
|
|
|
/**@{*/
|
|
/** Wii buttons */
|
|
PLUS = 5,
|
|
TWO = 6,
|
|
ONE = 7,
|
|
MINUS = 8,
|
|
HOME = 9,
|
|
Z = 10,
|
|
C = 11,
|
|
B = 12,
|
|
A = 13,
|
|
/**@}*/
|
|
|
|
/**@{*/
|
|
/** These are only available on the Wii U Pro Controller */
|
|
L = 16,
|
|
R = 17,
|
|
ZL = 18,
|
|
ZR = 19,
|
|
/**@}*/
|
|
|
|
/**@{*/
|
|
/** PS3 controllers buttons */
|
|
SELECT = 4,
|
|
START = 5,
|
|
L3 = 6,
|
|
R3 = 7,
|
|
|
|
L2 = 8,
|
|
R2 = 9,
|
|
L1 = 10,
|
|
R1 = 11,
|
|
TRIANGLE = 12,
|
|
CIRCLE = 13,
|
|
CROSS = 14,
|
|
SQUARE = 15,
|
|
|
|
PS = 16,
|
|
|
|
MOVE = 17, // Covers 12 bits - we only need to read the top 8
|
|
T = 18, // Covers 12 bits - we only need to read the top 8
|
|
/**@}*/
|
|
|
|
/** PS4 controllers buttons - SHARE and OPTIONS are present instead of SELECT and START */
|
|
SHARE = 4,
|
|
OPTIONS = 5,
|
|
TOUCHPAD = 17,
|
|
/**@}*/
|
|
|
|
/**@{*/
|
|
/** Xbox buttons */
|
|
BACK = 4,
|
|
X = 14,
|
|
Y = 15,
|
|
XBOX = 16,
|
|
SYNC = 17,
|
|
BLACK = 8, // Available on the original Xbox controller
|
|
WHITE = 9, // Available on the original Xbox controller
|
|
/**@}*/
|
|
|
|
/** PS Buzz controllers */
|
|
RED = 0,
|
|
YELLOW = 1,
|
|
GREEN = 2,
|
|
ORANGE = 3,
|
|
BLUE = 4,
|
|
/**@}*/
|
|
};
|
|
|
|
/** Joysticks on the PS3 and Xbox controllers. */
|
|
enum AnalogHatEnum {
|
|
/** Left joystick x-axis */
|
|
LeftHatX = 0,
|
|
/** Left joystick y-axis */
|
|
LeftHatY = 1,
|
|
/** Right joystick x-axis */
|
|
RightHatX = 2,
|
|
/** Right joystick y-axis */
|
|
RightHatY = 3,
|
|
};
|
|
|
|
/**
|
|
* Sensors inside the Sixaxis Dualshock 3, Move controller and PS4 controller.
|
|
* <B>Note:</B> that the location is shifted 9 when it's connected via USB on the PS3 controller.
|
|
*/
|
|
enum SensorEnum {
|
|
/** Accelerometer values */
|
|
aX = 50, aY = 52, aZ = 54,
|
|
/** Gyro z-axis */
|
|
gZ = 56,
|
|
gX, gY, // These are not available on the PS3 controller
|
|
|
|
/** Accelerometer x-axis */
|
|
aXmove = 28,
|
|
/** Accelerometer z-axis */
|
|
aZmove = 30,
|
|
/** Accelerometer y-axis */
|
|
aYmove = 32,
|
|
|
|
/** Gyro x-axis */
|
|
gXmove = 40,
|
|
/** Gyro z-axis */
|
|
gZmove = 42,
|
|
/** Gyro y-axis */
|
|
gYmove = 44,
|
|
|
|
/** Temperature sensor */
|
|
tempMove = 46,
|
|
|
|
/** Magnetometer x-axis */
|
|
mXmove = 47,
|
|
/** Magnetometer z-axis */
|
|
mZmove = 49,
|
|
/** Magnetometer y-axis */
|
|
mYmove = 50,
|
|
};
|
|
|
|
/** Used to get the angle calculated using the PS3 controller and PS4 controller. */
|
|
enum AngleEnum {
|
|
Pitch = 0x01,
|
|
Roll = 0x02,
|
|
};
|
|
|
|
#endif
|