1 /* This file is part of Clementine. 2 Copyright 2010, David Sansome <me@davidsansome.com> 3 4 Clementine is free software: you can redistribute it and/or modify 5 it under the terms of the GNU General Public License as published by 6 the Free Software Foundation, either version 3 of the License, or 7 (at your option) any later version. 8 9 Clementine is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 GNU General Public License for more details. 13 14 You should have received a copy of the GNU General Public License 15 along with Clementine. If not, see <http://www.gnu.org/licenses/>. 16 */ 17 18 #ifndef WIIMOTEDEV_CONSTS_H 19 #define WIIMOTEDEV_CONSTS_H 20 21 #define WIIMOTEDEV_CONFIG_FILE "/etc/wiimotedev/wiimotedev.conf" 22 #define WIIMOTEDEV_TCP_PORT 50091 23 24 #define WIIMOTEDEV_DBUS_SERVICE_NAME "org.wiimotedev.daemon" 25 26 #define WIIMOTEDEV_DBUS_IFACE_EVENTS "org.wiimotedev.deviceEvents" 27 #define WIIMOTEDEV_DBUS_IFACE_SERVICE "org.wiimotedev.service" 28 #define WIIMOTEDEV_DBUS_OBJECT_EVENTS "/deviceEvents" 29 #define WIIMOTEDEV_DBUS_OBJECT_SERVICE "/service" 30 31 /* Compatibility ------------------------------------------------- */ 32 33 #define WIIMOTEDEV_DBUS_SERVICE_IFACE "org.wiimotedev.service" 34 #define WIIMOTEDEV_DBUS_EVENTS_IFACE "org.wiimotedev.deviceEvents" 35 #define WIIMOTEDEV_DBUS_SERVICE_OBJECT "/service" 36 #define WIIMOTEDEV_DBUS_EVENTS_OBJECT "/deviceEvents" 37 38 /* Typedefs ------------------------------------------------------ */ 39 40 typedef unsigned long long uint64; 41 typedef unsigned int uint32; 42 typedef unsigned short uint16; 43 typedef unsigned char uint8; 44 45 typedef signed long long int64; 46 typedef signed int int32; 47 typedef signed short int16; 48 typedef signed char int8; 49 50 /* Wiiremote status --------------------------------------------- */ 51 52 const uint8 STATUS_WIIMOTE_DISCONNECTED = 0x00; 53 const uint8 STATUS_WIIMOTE_CONNECTED = 0x01; 54 const uint8 STATUS_WIIMOTE_NUNCHUK_CONNECTED = 0x02; 55 const uint8 STATUS_WIIMOTE_CLASSIC_CONNECTED = 0x04; 56 57 #define STATUS_NUNCHUK_CONNECTED STATUS_WIIMOTE_NUNCHUK_CONNECTED 58 #define STATUS_CLASSIC_CONNECTED STATUS_WIIMOTE_CLASSIC_CONNECTED 59 60 /* Structs --------------------------------------------- */ 61 62 struct irpoint { 63 int16 size; 64 uint16 x; 65 uint16 y; 66 }; 67 68 struct accdata { 69 uint8 x; 70 uint8 y; 71 uint8 z; 72 double pitch; 73 double roll; 74 }; 75 76 struct stickdata { 77 uint8 x; 78 uint8 y; 79 }; 80 81 enum GENERAL_BUTTONS { 82 // 1.0 API 83 GENERAL_WIIMOTE_BTN_1 = 0, 84 GENERAL_WIIMOTE_BTN_2, 85 GENERAL_WIIMOTE_BTN_A, 86 GENERAL_WIIMOTE_BTN_B, 87 GENERAL_WIIMOTE_BTN_MINUS, 88 GENERAL_WIIMOTE_BTN_PLUS, 89 GENERAL_WIIMOTE_BTN_HOME, 90 GENERAL_WIIMOTE_BTN_RIGHT, 91 GENERAL_WIIMOTE_BTN_LEFT, 92 GENERAL_WIIMOTE_BTN_DOWN, 93 GENERAL_WIIMOTE_BTN_UP, 94 GENERAL_WIIMOTE_BTN_SHIFT_BACKWARD, 95 GENERAL_WIIMOTE_BTN_SHIFT_FORWARD, 96 GENERAL_WIIMOTE_BTN_SHIFT_RIGHT, 97 GENERAL_WIIMOTE_BTN_SHIFT_LEFT, 98 GENERAL_WIIMOTE_BTN_SHIFT_DOWN, 99 GENERAL_WIIMOTE_BTN_SHIFT_UP, 100 GENERAL_WIIMOTE_BTN_TILT_FRONT, 101 GENERAL_WIIMOTE_BTN_TILT_BACK, 102 GENERAL_WIIMOTE_BTN_TILT_RIGHT, 103 GENERAL_WIIMOTE_BTN_TILT_LEFT, 104 GENERAL_NUNCHUK_BTN_C, 105 GENERAL_NUNCHUK_BTN_Z, 106 GENERAL_NUNCHUK_BTN_STICK_RIGHT, 107 GENERAL_NUNCHUK_BTN_STICK_LEFT, 108 GENERAL_NUNCHUK_BTN_STICK_DOWN, 109 GENERAL_NUNCHUK_BTN_STICK_UP, 110 GENERAL_NUNCHUK_BTN_SHIFT_BACKWARD, 111 GENERAL_NUNCHUK_BTN_SHIFT_FORWARD, 112 GENERAL_NUNCHUK_BTN_SHIFT_RIGHT, 113 GENERAL_NUNCHUK_BTN_SHIFT_LEFT, 114 GENERAL_NUNCHUK_BTN_SHIFT_DOWN, 115 GENERAL_NUNCHUK_BTN_SHIFT_UP, 116 GENERAL_NUNCHUK_BTN_TILT_FRONT, 117 GENERAL_NUNCHUK_BTN_TILT_BACK, 118 GENERAL_NUNCHUK_BTN_TILT_RIGHT, 119 GENERAL_NUNCHUK_BTN_TILT_LEFT, 120 GENERAL_CLASSIC_BTN_X, 121 GENERAL_CLASSIC_BTN_Y, 122 GENERAL_CLASSIC_BTN_A, 123 GENERAL_CLASSIC_BTN_B, 124 GENERAL_CLASSIC_BTN_L, 125 GENERAL_CLASSIC_BTN_R, 126 GENERAL_CLASSIC_BTN_ZL, 127 GENERAL_CLASSIC_BTN_ZR, 128 GENERAL_CLASSIC_BTN_MINUS, 129 GENERAL_CLASSIC_BTN_PLUS, 130 GENERAL_CLASSIC_BTN_HOME, 131 GENERAL_CLASSIC_BTN_RIGHT, 132 GENERAL_CLASSIC_BTN_LEFT, 133 GENERAL_CLASSIC_BTN_DOWN, 134 GENERAL_CLASSIC_BTN_UP, 135 GENERAL_CLASSIC_BTN_LSTICK_RIGHT, 136 GENERAL_CLASSIC_BTN_LSTICK_LEFT, 137 GENERAL_CLASSIC_BTN_LSTICK_DOWN, 138 GENERAL_CLASSIC_BTN_LSTICK_UP, 139 GENERAL_CLASSIC_BTN_RSTICK_RIGHT, 140 GENERAL_CLASSIC_BTN_RSTICK_LEFT, 141 GENERAL_CLASSIC_BTN_RSTICK_DOWN, 142 GENERAL_CLASSIC_BTN_RSTICK_UP, 143 // 1.2 API 144 GENERAL_WIIMOTE_BTN_SHIFT_SHAKE, 145 GENERAL_NUNCHUK_BTN_SHIFT_SHAKE 146 }; 147 148 #define calcbit(x) (static_cast<uint64>(true) << x) 149 150 const uint64 WIIMOTE_BTN_1 = calcbit(GENERAL_WIIMOTE_BTN_1); 151 const uint64 WIIMOTE_BTN_2 = calcbit(GENERAL_WIIMOTE_BTN_2); 152 const uint64 WIIMOTE_BTN_A = calcbit(GENERAL_WIIMOTE_BTN_A); 153 const uint64 WIIMOTE_BTN_B = calcbit(GENERAL_WIIMOTE_BTN_B); 154 155 const uint64 WIIMOTE_BTN_MINUS = calcbit(GENERAL_WIIMOTE_BTN_MINUS); 156 const uint64 WIIMOTE_BTN_PLUS = calcbit(GENERAL_WIIMOTE_BTN_PLUS); 157 const uint64 WIIMOTE_BTN_HOME = calcbit(GENERAL_WIIMOTE_BTN_HOME); 158 159 const uint64 WIIMOTE_BTN_RIGHT = calcbit(GENERAL_WIIMOTE_BTN_RIGHT); 160 const uint64 WIIMOTE_BTN_LEFT = calcbit(GENERAL_WIIMOTE_BTN_LEFT); 161 const uint64 WIIMOTE_BTN_DOWN = calcbit(GENERAL_WIIMOTE_BTN_DOWN); 162 const uint64 WIIMOTE_BTN_UP = calcbit(GENERAL_WIIMOTE_BTN_UP); 163 164 const uint64 WIIMOTE_BTN_SHIFT_BACKWARD = 165 calcbit(GENERAL_WIIMOTE_BTN_SHIFT_BACKWARD); 166 const uint64 WIIMOTE_BTN_SHIFT_FORWARD = 167 calcbit(GENERAL_WIIMOTE_BTN_SHIFT_FORWARD); 168 const uint64 WIIMOTE_BTN_SHIFT_RIGHT = calcbit(GENERAL_WIIMOTE_BTN_SHIFT_RIGHT); 169 const uint64 WIIMOTE_BTN_SHIFT_LEFT = calcbit(GENERAL_WIIMOTE_BTN_SHIFT_LEFT); 170 const uint64 WIIMOTE_BTN_SHIFT_DOWN = calcbit(GENERAL_WIIMOTE_BTN_SHIFT_DOWN); 171 const uint64 WIIMOTE_BTN_SHIFT_UP = calcbit(GENERAL_WIIMOTE_BTN_SHIFT_UP); 172 173 const uint64 WIIMOTE_BTN_TILT_FRONT = calcbit(GENERAL_WIIMOTE_BTN_TILT_FRONT); 174 const uint64 WIIMOTE_BTN_TILT_BACK = calcbit(GENERAL_WIIMOTE_BTN_TILT_BACK); 175 const uint64 WIIMOTE_BTN_TILT_RIGHT = calcbit(GENERAL_WIIMOTE_BTN_TILT_RIGHT); 176 const uint64 WIIMOTE_BTN_TILT_LEFT = calcbit(GENERAL_WIIMOTE_BTN_TILT_LEFT); 177 178 const uint64 NUNCHUK_BTN_C = calcbit(GENERAL_NUNCHUK_BTN_C); 179 const uint64 NUNCHUK_BTN_Z = calcbit(GENERAL_NUNCHUK_BTN_Z); 180 181 const uint64 NUNCHUK_BTN_STICK_RIGHT = calcbit(GENERAL_NUNCHUK_BTN_STICK_RIGHT); 182 const uint64 NUNCHUK_BTN_STICK_LEFT = calcbit(GENERAL_NUNCHUK_BTN_STICK_LEFT); 183 const uint64 NUNCHUK_BTN_STICK_DOWN = calcbit(GENERAL_NUNCHUK_BTN_STICK_DOWN); 184 const uint64 NUNCHUK_BTN_STICK_UP = calcbit(GENERAL_NUNCHUK_BTN_STICK_UP); 185 186 const uint64 NUNCHUK_BTN_SHIFT_BACKWARD = 187 calcbit(GENERAL_NUNCHUK_BTN_SHIFT_BACKWARD); 188 const uint64 NUNCHUK_BTN_SHIFT_FORWARD = 189 calcbit(GENERAL_NUNCHUK_BTN_SHIFT_FORWARD); 190 const uint64 NUNCHUK_BTN_SHIFT_RIGHT = calcbit(GENERAL_NUNCHUK_BTN_SHIFT_RIGHT); 191 const uint64 NUNCHUK_BTN_SHIFT_LEFT = calcbit(GENERAL_NUNCHUK_BTN_SHIFT_LEFT); 192 const uint64 NUNCHUK_BTN_SHIFT_DOWN = calcbit(GENERAL_NUNCHUK_BTN_SHIFT_DOWN); 193 const uint64 NUNCHUK_BTN_SHIFT_UP = calcbit(GENERAL_NUNCHUK_BTN_SHIFT_UP); 194 195 const uint64 NUNCHUK_BTN_TILT_FRONT = calcbit(GENERAL_NUNCHUK_BTN_TILT_FRONT); 196 const uint64 NUNCHUK_BTN_TILT_BACK = calcbit(GENERAL_NUNCHUK_BTN_TILT_BACK); 197 const uint64 NUNCHUK_BTN_TILT_RIGHT = calcbit(GENERAL_NUNCHUK_BTN_TILT_RIGHT); 198 const uint64 NUNCHUK_BTN_TILT_LEFT = calcbit(GENERAL_NUNCHUK_BTN_TILT_LEFT); 199 200 const uint64 CLASSIC_BTN_X = calcbit(GENERAL_CLASSIC_BTN_X); 201 const uint64 CLASSIC_BTN_Y = calcbit(GENERAL_CLASSIC_BTN_Y); 202 const uint64 CLASSIC_BTN_A = calcbit(GENERAL_CLASSIC_BTN_A); 203 const uint64 CLASSIC_BTN_B = calcbit(GENERAL_CLASSIC_BTN_B); 204 const uint64 CLASSIC_BTN_L = calcbit(GENERAL_CLASSIC_BTN_L); 205 const uint64 CLASSIC_BTN_R = calcbit(GENERAL_CLASSIC_BTN_R); 206 const uint64 CLASSIC_BTN_ZL = calcbit(GENERAL_CLASSIC_BTN_ZL); 207 const uint64 CLASSIC_BTN_ZR = calcbit(GENERAL_CLASSIC_BTN_ZR); 208 const uint64 CLASSIC_BTN_MINUS = calcbit(GENERAL_CLASSIC_BTN_MINUS); 209 const uint64 CLASSIC_BTN_PLUS = calcbit(GENERAL_CLASSIC_BTN_PLUS); 210 const uint64 CLASSIC_BTN_HOME = calcbit(GENERAL_CLASSIC_BTN_HOME); 211 const uint64 CLASSIC_BTN_RIGHT = calcbit(GENERAL_CLASSIC_BTN_RIGHT); 212 const uint64 CLASSIC_BTN_LEFT = calcbit(GENERAL_CLASSIC_BTN_LEFT); 213 const uint64 CLASSIC_BTN_DOWN = calcbit(GENERAL_CLASSIC_BTN_DOWN); 214 const uint64 CLASSIC_BTN_UP = calcbit(GENERAL_CLASSIC_BTN_UP); 215 216 const uint64 CLASSIC_BTN_LSTICK_RIGHT = 217 calcbit(GENERAL_CLASSIC_BTN_LSTICK_RIGHT); 218 const uint64 CLASSIC_BTN_LSTICK_LEFT = calcbit(GENERAL_CLASSIC_BTN_LSTICK_LEFT); 219 const uint64 CLASSIC_BTN_LSTICK_DOWN = calcbit(GENERAL_CLASSIC_BTN_LSTICK_DOWN); 220 const uint64 CLASSIC_BTN_LSTICK_UP = calcbit(GENERAL_CLASSIC_BTN_LSTICK_UP); 221 222 const uint64 CLASSIC_BTN_RSTICK_RIGHT = 223 calcbit(GENERAL_CLASSIC_BTN_RSTICK_RIGHT); 224 const uint64 CLASSIC_BTN_RSTICK_LEFT = calcbit(GENERAL_CLASSIC_BTN_RSTICK_LEFT); 225 226 const uint64 CLASSIC_BTN_RSTICK_DOWN = calcbit(GENERAL_CLASSIC_BTN_RSTICK_DOWN); 227 const uint64 CLASSIC_BTN_RSTICK_UP = calcbit(GENERAL_CLASSIC_BTN_RSTICK_UP); 228 229 const uint64 WIIMOTE_BTN_SHIFT_SHAKE = calcbit(GENERAL_WIIMOTE_BTN_SHIFT_SHAKE); 230 const uint64 NUNCHUK_BTN_SHIFT_SHAKE = calcbit(GENERAL_NUNCHUK_BTN_SHIFT_SHAKE); 231 232 const uint64 WIIMOTE_BUTTON_MASK = 233 WIIMOTE_BTN_1 | WIIMOTE_BTN_2 | WIIMOTE_BTN_A | WIIMOTE_BTN_B | 234 WIIMOTE_BTN_MINUS | WIIMOTE_BTN_PLUS | WIIMOTE_BTN_HOME | 235 WIIMOTE_BTN_RIGHT | WIIMOTE_BTN_LEFT | WIIMOTE_BTN_DOWN | WIIMOTE_BTN_UP; 236 237 const uint64 WIIMOTE_SHIFT_MASK = 238 WIIMOTE_BTN_SHIFT_BACKWARD | WIIMOTE_BTN_SHIFT_FORWARD | 239 WIIMOTE_BTN_SHIFT_RIGHT | WIIMOTE_BTN_SHIFT_LEFT | WIIMOTE_BTN_SHIFT_DOWN | 240 WIIMOTE_BTN_SHIFT_UP | WIIMOTE_BTN_SHIFT_SHAKE; 241 242 const uint64 WIIMOTE_TILT_MASK = WIIMOTE_BTN_TILT_FRONT | 243 WIIMOTE_BTN_TILT_BACK | 244 WIIMOTE_BTN_TILT_RIGHT | WIIMOTE_BTN_TILT_LEFT; 245 246 const uint64 NUNCHUK_BUTTON_MASK = NUNCHUK_BTN_C | NUNCHUK_BTN_Z; 247 248 const uint64 NUNCHUK_STICK_MASK = NUNCHUK_BTN_STICK_RIGHT | 249 NUNCHUK_BTN_STICK_LEFT | 250 NUNCHUK_BTN_STICK_DOWN | NUNCHUK_BTN_STICK_UP; 251 252 const uint64 NUNCHUK_SHIFT_MASK = 253 NUNCHUK_BTN_SHIFT_BACKWARD | NUNCHUK_BTN_SHIFT_FORWARD | 254 NUNCHUK_BTN_SHIFT_RIGHT | NUNCHUK_BTN_SHIFT_LEFT | NUNCHUK_BTN_SHIFT_DOWN | 255 NUNCHUK_BTN_SHIFT_UP | NUNCHUK_BTN_SHIFT_SHAKE; 256 257 const uint64 NUNCHUK_TILT_MASK = NUNCHUK_BTN_TILT_FRONT | 258 NUNCHUK_BTN_TILT_BACK | 259 NUNCHUK_BTN_TILT_RIGHT | NUNCHUK_BTN_TILT_LEFT; 260 261 const uint64 CLASSIC_BUTTON_MASK = 262 CLASSIC_BTN_X | CLASSIC_BTN_Y | CLASSIC_BTN_A | CLASSIC_BTN_B | 263 CLASSIC_BTN_L | CLASSIC_BTN_R | CLASSIC_BTN_ZL | CLASSIC_BTN_ZR | 264 CLASSIC_BTN_MINUS | CLASSIC_BTN_PLUS | CLASSIC_BTN_HOME | 265 CLASSIC_BTN_RIGHT | CLASSIC_BTN_LEFT | CLASSIC_BTN_DOWN | CLASSIC_BTN_UP; 266 267 const uint64 CLASSIC_LSTICK_MASK = 268 CLASSIC_BTN_LSTICK_RIGHT | CLASSIC_BTN_LSTICK_LEFT | 269 CLASSIC_BTN_LSTICK_DOWN | CLASSIC_BTN_LSTICK_UP; 270 271 const uint64 CLASSIC_RSTICK_MASK = 272 CLASSIC_BTN_RSTICK_RIGHT | CLASSIC_BTN_RSTICK_LEFT | 273 CLASSIC_BTN_RSTICK_DOWN | CLASSIC_BTN_RSTICK_UP; 274 275 const uint64 WIIMOTE_BUTTON_NOTMASK = ~WIIMOTE_BUTTON_MASK; 276 const uint64 WIIMOTE_SHIFT_NOTMASK = ~WIIMOTE_SHIFT_MASK; 277 const uint64 WIIMOTE_TILT_NOTMASK = ~WIIMOTE_TILT_MASK; 278 const uint64 NUNCHUK_BUTTON_NOTMASK = ~NUNCHUK_BUTTON_MASK; 279 const uint64 NUNCHUK_STICK_NOTMASK = ~NUNCHUK_STICK_MASK; 280 const uint64 NUNCHUK_SHIFT_NOTMASK = ~NUNCHUK_SHIFT_MASK; 281 const uint64 NUNCHUK_TILT_NOTMASK = ~NUNCHUK_TILT_MASK; 282 const uint64 CLASSIC_BUTTON_NOTMASK = ~CLASSIC_BUTTON_MASK; 283 const uint64 CLASSIC_LSTICK_NOTMASK = ~CLASSIC_LSTICK_MASK; 284 const uint64 CLASSIC_RSTICK_NOTMASK = ~CLASSIC_RSTICK_MASK; 285 286 #endif // WIIMOTEDEV_CONSTS_H 287