1 /*---------------------------------------------------------------------------* 2 Project: Horizon 3 File: hid_DeviceStatus.h 4 5 Copyright (C)2009 Nintendo Co., Ltd. All rights reserved. 6 7 These coded instructions, statements, and computer programs contain 8 proprietary information of Nintendo of America Inc. and/or Nintendo 9 Company Ltd., and are protected by Federal copyright law. They may 10 not be disclosed to third parties or copied or duplicated in any form, 11 in whole or in part, without the prior written consent of Nintendo. 12 13 $Rev: 36752 $ 14 *---------------------------------------------------------------------------*/ 15 16 /* Please see man pages for details 17 18 19 */ 20 21 #ifndef NN_HID_CTR_HID_DEVICESTATUS_H_ 22 #define NN_HID_CTR_HID_DEVICESTATUS_H_ 23 24 #include <nn/types.h> 25 #include <nn/math/math_Types.h> 26 #include <nn/config.h> 27 28 namespace nn { 29 namespace hid { 30 namespace CTR { 31 32 /* Please see man pages for details */ 33 const bit32 BUTTON_A = 0x00000001; 34 /* Please see man pages for details */ 35 const bit32 BUTTON_B = 0x00000002; 36 const bit32 PSEUDO_BUTTON_SELECT = 0x00000004; 37 /* Please see man pages for details 38 39 40 41 42 */ 43 const bit32 BUTTON_SELECT_FOR_DEBUGGING = 0x00000004; 44 /* Please see man pages for details */ 45 const bit32 BUTTON_START = 0x00000008; 46 /* Please see man pages for details */ 47 const bit32 BUTTON_RIGHT = 0x00000010; 48 /* Please see man pages for details */ 49 const bit32 BUTTON_LEFT = 0x00000020; 50 /* Please see man pages for details */ 51 const bit32 BUTTON_UP = 0x00000040; 52 /* Please see man pages for details */ 53 const bit32 BUTTON_DOWN = 0x00000080; 54 /* Please see man pages for details */ 55 const bit32 BUTTON_R = 0x00000100; 56 /* Please see man pages for details */ 57 const bit32 BUTTON_L = 0x00000200; 58 /* Please see man pages for details */ 59 const bit32 BUTTON_X = 0x00000400; 60 /* Please see man pages for details */ 61 const bit32 BUTTON_Y = 0x00000800; 62 /* Please see man pages for details 63 64 65 66 */ 67 const bit32 BUTTON_DEBUG = 0x00001000; 68 const bit32 BUTTON_RESERVED = 0x00002000; 69 /* Please see man pages for details */ 70 const bit32 BUTTON_EMULATION_RIGHT = 0x10000000; 71 /* Please see man pages for details */ 72 const bit32 BUTTON_EMULATION_LEFT = 0x20000000; 73 /* Please see man pages for details */ 74 const bit32 BUTTON_EMULATION_UP = 0x40000000; 75 /* Please see man pages for details */ 76 const bit32 BUTTON_EMULATION_DOWN = 0x80000000; 77 78 /* Please see man pages for details */ 79 const bit32 BUTTON_MASK = BUTTON_A | BUTTON_B | BUTTON_START | 80 BUTTON_R | BUTTON_L | BUTTON_X | BUTTON_Y | BUTTON_DEBUG; 81 /* Please see man pages for details */ 82 const bit32 PLUS_BUTTON_MASK = BUTTON_RIGHT | BUTTON_LEFT | BUTTON_UP | BUTTON_DOWN; 83 /* Please see man pages for details */ 84 const bit32 PLUS_BUTTON_EMULATION_MASK = BUTTON_EMULATION_RIGHT | BUTTON_EMULATION_LEFT | BUTTON_EMULATION_UP | BUTTON_EMULATION_DOWN; 85 /* Please see man pages for details */ 86 const bit32 ALL_MASK = BUTTON_MASK | PLUS_BUTTON_MASK | PLUS_BUTTON_EMULATION_MASK; 87 88 /* Please see man pages for details 89 90 */ 91 typedef struct 92 { 93 /* Please see man pages for details */ 94 s16 x; 95 /* Please see man pages for details */ 96 s16 y; 97 } AnalogStickStatus; 98 99 /* Please see man pages for details 100 101 */ 102 typedef struct 103 { 104 /* Please see man pages for details */ 105 bit32 hold; 106 /* Please see man pages for details */ 107 bit32 trigger; 108 /* Please see man pages for details */ 109 bit32 release; 110 /* Please see man pages for details */ 111 AnalogStickStatus stick; 112 } PadStatus; 113 114 /* Please see man pages for details 115 116 117 118 119 */ 120 typedef struct 121 { 122 /* Please see man pages for details */ 123 u16 x; 124 /* Please see man pages for details */ 125 u16 y; 126 /* Please see man pages for details */ 127 u8 touch; 128 NN_PADDING3; 129 } TouchPanelStatus; 130 131 /* Please see man pages for details 132 133 */ 134 typedef struct 135 { 136 /* Please see man pages for details */ 137 s16 x; 138 /* Please see man pages for details */ 139 s16 y; 140 /* Please see man pages for details */ 141 s16 z; 142 }AccelerometerStatus; 143 144 /* Please see man pages for details 145 146 */ 147 typedef struct 148 { 149 /* Please see man pages for details */ 150 f32 x; 151 /* Please see man pages for details */ 152 f32 y; 153 /* Please see man pages for details */ 154 f32 z; 155 }AccelerationFloat; 156 157 /* Please see man pages for details 158 159 */ 160 struct Direction{ 161 public : 162 /* Please see man pages for details */ 163 nn::math::VEC3 x;/**/ 164 165 /* Please see man pages for details */ 166 nn::math::VEC3 y; 167 168 /* Please see man pages for details */ 169 nn::math::VEC3 z; 170 171 public : 172 /* Please see man pages for details */ DirectionDirection173 Direction() 174 {}; 175 176 /* Please see man pages for details */ DirectionDirection177 explicit Direction(const nn::math::VEC3& vecx,const nn::math::VEC3& vecy,const nn::math::VEC3& vecz) 178 :x(vecx),y(vecy),z(vecz){} 179 180 /* Please see man pages for details */ DirectionDirection181 Direction(const nn::math::MTX33 &mtx33) 182 :x(mtx33.v[0]),y(mtx33.v[1]),z(mtx33.v[2]){} 183 184 /* Please see man pages for details */ ToMTX33Direction185 nn::math::MTX33 ToMTX33() 186 { 187 return nn::math::MTX33( 188 x.x,x.y,x.z, 189 y.x,y.y,y.z, 190 z.x,z.y,z.z); 191 } 192 }; 193 194 /* Please see man pages for details 195 196 197 198 199 200 201 202 */ 203 typedef struct { 204 /* Please see man pages for details */ 205 nn::math::VEC3 speed; 206 /* Please see man pages for details */ 207 nn::math::VEC3 angle; 208 /* Please see man pages for details */ 209 Direction direction; 210 } GyroscopeStatus; 211 212 /* Please see man pages for details */ 213 const bit16 DEBUG_PAD_BUTTON_UP = 0x00000001; 214 /* Please see man pages for details */ 215 const bit16 DEBUG_PAD_BUTTON_LEFT = 0x00000002; 216 /* Please see man pages for details */ 217 const bit16 DEBUG_PAD_TRIGGER_ZR = 0x00000004; 218 /* Please see man pages for details */ 219 const bit16 DEBUG_PAD_BUTTON_X = 0x00000008; 220 /* Please see man pages for details */ 221 const bit16 DEBUG_PAD_BUTTON_A = 0x00000010; 222 /* Please see man pages for details */ 223 const bit16 DEBUG_PAD_BUTTON_Y = 0x00000020; 224 /* Please see man pages for details */ 225 const bit16 DEBUG_PAD_BUTTON_B = 0x00000040; 226 /* Please see man pages for details */ 227 const bit16 DEBUG_PAD_TRIGGER_ZL = 0x00000080; 228 const bit16 DEBUG_PAD_RESERVED = 0x00000100; 229 /* Please see man pages for details */ 230 const bit16 DEBUG_PAD_TRIGGER_R = 0x00000200; 231 /* Please see man pages for details */ 232 const bit16 DEBUG_PAD_BUTTON_PLUS = 0x00000400; 233 /* Please see man pages for details */ 234 const bit16 DEBUG_PAD_BUTTON_HOME = 0x00000800; 235 /* Please see man pages for details */ 236 const bit16 DEBUG_PAD_BUTTON_MINUS = 0x00001000; 237 /* Please see man pages for details */ 238 const bit16 DEBUG_PAD_TRIGGER_L = 0x00002000; 239 /* Please see man pages for details */ 240 const bit16 DEBUG_PAD_BUTTON_DOWN = 0x00004000; 241 /* Please see man pages for details */ 242 const bit16 DEBUG_PAD_BUTTON_RIGHT = 0x00008000; 243 244 245 /* Please see man pages for details 246 247 */ 248 typedef struct 249 { 250 /* Please see man pages for details */ 251 bit16 hold; 252 /* Please see man pages for details */ 253 bit16 trigger; 254 /* Please see man pages for details */ 255 bit16 release; 256 NN_PADDING2; 257 /* Please see man pages for details */ 258 f32 leftStickX; 259 /* Please see man pages for details */ 260 f32 leftStickY; 261 /* Please see man pages for details */ 262 f32 rightStickX; 263 /* Please see man pages for details */ 264 f32 rightStickY; 265 } DebugPadStatus; 266 267 268 269 } // namespace CTR 270 } // namespace hid 271 } // namespace nn 272 273 #endif // NN_HID_CTR_HID_DEVICESTATUS_H_ 274