AR Design
UBC EML collab with UBC SALA - visualizing IoT data in AR
XboxControllerMapping.cs
Go to the documentation of this file.
1 // Copyright (c) Microsoft Corporation. All rights reserved.
2 // Licensed under the MIT License. See LICENSE in the project root for license information.
3 
4 using System;
5 
6 namespace HoloToolkit.Unity.InputModule
7 {
11  public static class XboxControllerMapping
12  {
13  public static string XboxLeftStickHorizontal { get; private set; }
14  public static string XboxLeftStickVertical { get; private set; }
15  public static string XboxRightStickHorizontal { get; private set; }
16  public static string XboxRightStickVertical { get; private set; }
17  public static string XboxDpadHorizontal { get; private set; }
18  public static string XboxDpadVertical { get; private set; }
19  public static string XboxLeftTrigger { get; private set; }
20  public static string XboxRightTrigger { get; private set; }
21  public static string XboxSharedTrigger { get; private set; }
22  public static string XboxA { get; private set; }
23  public static string XboxB { get; private set; }
24  public static string XboxX { get; private set; }
25  public static string XboxY { get; private set; }
26  public static string XboxLeftBumper { get; private set; }
27  public static string XboxRightBumper { get; private set; }
28  public static string XboxLeftStickClick { get; private set; }
29  public static string XboxRightStickClick { get; private set; }
30  public static string XboxView { get; private set; }
31  public static string XboxMenu { get; private set; }
32 
33  public static string GetMapping(XboxControllerMappingTypes type)
34  {
35  switch (type)
36  {
38  return string.Empty;
39  case XboxControllerMappingTypes.XboxLeftStickHorizontal:
41  case XboxControllerMappingTypes.XboxLeftStickVertical:
42  return XboxLeftStickVertical;
43  case XboxControllerMappingTypes.XboxRightStickHorizontal:
45  case XboxControllerMappingTypes.XboxRightStickVertical:
47  case XboxControllerMappingTypes.XboxDpadHorizontal:
48  return XboxDpadHorizontal;
49  case XboxControllerMappingTypes.XboxDpadVertical:
50  return XboxDpadVertical;
51  case XboxControllerMappingTypes.XboxLeftTrigger:
52  return XboxLeftTrigger;
53  case XboxControllerMappingTypes.XboxRightTrigger:
54  return XboxRightTrigger;
55  case XboxControllerMappingTypes.XboxSharedTrigger:
56  return XboxSharedTrigger;
57  case XboxControllerMappingTypes.XboxA:
58  return XboxA;
59  case XboxControllerMappingTypes.XboxB:
60  return XboxB;
61  case XboxControllerMappingTypes.XboxX:
62  return XboxX;
63  case XboxControllerMappingTypes.XboxY:
64  return XboxY;
65  case XboxControllerMappingTypes.XboxView:
66  return XboxView;
67  case XboxControllerMappingTypes.XboxMenu:
68  return XboxMenu;
69  case XboxControllerMappingTypes.XboxLeftBumper:
70  return XboxLeftBumper;
71  case XboxControllerMappingTypes.XboxRightBumper:
72  return XboxRightBumper;
73  case XboxControllerMappingTypes.XboxLeftStickClick:
74  return XboxLeftStickClick;
75  case XboxControllerMappingTypes.XboxRightStickClick:
76  return XboxRightStickClick;
77  default:
78  throw new ArgumentOutOfRangeException("type", type, null);
79  }
80  }
81 
82  public static void SetMapping(XboxControllerMappingTypes type, string value)
83  {
84  switch (type)
85  {
87  break;
88  case XboxControllerMappingTypes.XboxLeftStickHorizontal:
90  break;
91  case XboxControllerMappingTypes.XboxLeftStickVertical:
93  break;
94  case XboxControllerMappingTypes.XboxRightStickHorizontal:
96  break;
97  case XboxControllerMappingTypes.XboxRightStickVertical:
99  break;
100  case XboxControllerMappingTypes.XboxDpadHorizontal:
101  XboxDpadHorizontal = string.IsNullOrEmpty(value) ? InputMappingAxisUtility.XBOX_DPAD_HORIZONTAL : value;
102  break;
103  case XboxControllerMappingTypes.XboxDpadVertical:
104  XboxDpadVertical = string.IsNullOrEmpty(value) ? InputMappingAxisUtility.XBOX_DPAD_VERTICAL : value;
105  break;
106  case XboxControllerMappingTypes.XboxLeftTrigger:
107  XboxLeftTrigger = string.IsNullOrEmpty(value) ? InputMappingAxisUtility.CONTROLLER_LEFT_TRIGGER : value;
108  break;
109  case XboxControllerMappingTypes.XboxRightTrigger:
110  XboxRightTrigger = string.IsNullOrEmpty(value) ? InputMappingAxisUtility.CONTROLLER_RIGHT_TRIGGER : value;
111  break;
112  case XboxControllerMappingTypes.XboxSharedTrigger:
113  XboxSharedTrigger = string.IsNullOrEmpty(value) ? InputMappingAxisUtility.XBOX_SHARED_TRIGGER : value;
114  break;
115  case XboxControllerMappingTypes.XboxA:
116  XboxA = string.IsNullOrEmpty(value) ? InputMappingAxisUtility.XBOX_A : value;
117  break;
118  case XboxControllerMappingTypes.XboxB:
119  XboxB = string.IsNullOrEmpty(value) ? InputMappingAxisUtility.XBOX_B : value;
120  break;
121  case XboxControllerMappingTypes.XboxX:
122  XboxX = string.IsNullOrEmpty(value) ? InputMappingAxisUtility.XBOX_X : value;
123  break;
124  case XboxControllerMappingTypes.XboxY:
125  XboxY = string.IsNullOrEmpty(value) ? InputMappingAxisUtility.XBOX_Y : value;
126  break;
127  case XboxControllerMappingTypes.XboxView:
128  XboxView = string.IsNullOrEmpty(value) ? InputMappingAxisUtility.CONTROLLER_LEFT_MENU : value;
129  break;
130  case XboxControllerMappingTypes.XboxMenu:
131  XboxMenu = string.IsNullOrEmpty(value) ? InputMappingAxisUtility.CONTROLLER_RIGHT_MENU : value;
132  break;
133  case XboxControllerMappingTypes.XboxLeftBumper:
134  XboxLeftBumper = string.IsNullOrEmpty(value) ? InputMappingAxisUtility.CONTROLLER_LEFT_BUMPER_OR_GRIP : value;
135  break;
136  case XboxControllerMappingTypes.XboxRightBumper:
137  XboxRightBumper = string.IsNullOrEmpty(value) ? InputMappingAxisUtility.CONTROLLER_RIGHT_BUMPER_OR_GRIP : value;
138  break;
139  case XboxControllerMappingTypes.XboxLeftStickClick:
140  XboxLeftStickClick = string.IsNullOrEmpty(value) ? InputMappingAxisUtility.CONTROLLER_LEFT_STICK_CLICK : value;
141  break;
142  case XboxControllerMappingTypes.XboxRightStickClick:
143  XboxRightStickClick = string.IsNullOrEmpty(value) ? InputMappingAxisUtility.CONTROLLER_RIGHT_STICK_CLICK : value;
144  break;
145  default:
146  throw new ArgumentOutOfRangeException("type", type, null);
147  }
148  }
149 
150  public static float GetAxis(XboxControllerMappingTypes axisType, XboxControllerEventData eventData)
151  {
152  switch (axisType)
153  {
154  case XboxControllerMappingTypes.XboxLeftStickHorizontal:
155  return eventData.XboxLeftStickHorizontalAxis;
156  case XboxControllerMappingTypes.XboxLeftStickVertical:
157  return eventData.XboxLeftStickVerticalAxis;
158  case XboxControllerMappingTypes.XboxRightStickHorizontal:
159  return eventData.XboxRightStickHorizontalAxis;
160  case XboxControllerMappingTypes.XboxRightStickVertical:
161  return eventData.XboxRightStickVerticalAxis;
162  case XboxControllerMappingTypes.XboxDpadHorizontal:
163  return eventData.XboxDpadHorizontalAxis;
164  case XboxControllerMappingTypes.XboxDpadVertical:
165  return eventData.XboxDpadVerticalAxis;
166  case XboxControllerMappingTypes.XboxLeftTrigger:
167  return eventData.XboxLeftTriggerAxis;
168  case XboxControllerMappingTypes.XboxRightTrigger:
169  return eventData.XboxRightTriggerAxis;
170  case XboxControllerMappingTypes.XboxSharedTrigger:
171  return eventData.XboxSharedTriggerAxis;
172  default:
173  throw new ArgumentOutOfRangeException("axisType", axisType, null);
174  }
175  }
176 
177  public static bool GetButton_Down(XboxControllerMappingTypes buttonType, XboxControllerEventData eventData)
178  {
179  switch (buttonType)
180  {
181  case XboxControllerMappingTypes.None:
182  return false;
183  case XboxControllerMappingTypes.XboxA:
184  return eventData.XboxA_Down;
185  case XboxControllerMappingTypes.XboxB:
186  return eventData.XboxB_Down;
187  case XboxControllerMappingTypes.XboxX:
188  return eventData.XboxX_Down;
189  case XboxControllerMappingTypes.XboxY:
190  return eventData.XboxY_Down;
191  case XboxControllerMappingTypes.XboxView:
192  return eventData.XboxView_Down;
193  case XboxControllerMappingTypes.XboxMenu:
194  return eventData.XboxMenu_Down;
195  case XboxControllerMappingTypes.XboxLeftBumper:
196  return eventData.XboxLeftBumper_Down;
197  case XboxControllerMappingTypes.XboxRightBumper:
198  return eventData.XboxRightBumper_Down;
199  case XboxControllerMappingTypes.XboxLeftStickClick:
200  return eventData.XboxLeftStick_Down;
201  case XboxControllerMappingTypes.XboxRightStickClick:
202  return eventData.XboxRightStick_Down;
203  default:
204  throw new ArgumentOutOfRangeException("buttonType", buttonType, null);
205  }
206  }
207 
208  public static bool GetButton_Pressed(XboxControllerMappingTypes buttonType, XboxControllerEventData eventData)
209  {
210  switch (buttonType)
211  {
212  case XboxControllerMappingTypes.None:
213  return false;
214  case XboxControllerMappingTypes.XboxA:
215  return eventData.XboxA_Pressed;
216  case XboxControllerMappingTypes.XboxB:
217  return eventData.XboxB_Pressed;
218  case XboxControllerMappingTypes.XboxX:
219  return eventData.XboxX_Pressed;
220  case XboxControllerMappingTypes.XboxY:
221  return eventData.XboxY_Pressed;
222  case XboxControllerMappingTypes.XboxView:
223  return eventData.XboxView_Pressed;
224  case XboxControllerMappingTypes.XboxMenu:
225  return eventData.XboxMenu_Pressed;
226  case XboxControllerMappingTypes.XboxLeftBumper:
227  return eventData.XboxLeftBumper_Pressed;
228  case XboxControllerMappingTypes.XboxRightBumper:
229  return eventData.XboxRightBumper_Pressed;
230  case XboxControllerMappingTypes.XboxLeftStickClick:
231  return eventData.XboxLeftStick_Pressed;
232  case XboxControllerMappingTypes.XboxRightStickClick:
233  return eventData.XboxRightStick_Pressed;
234  default:
235  throw new ArgumentOutOfRangeException("buttonType", buttonType, null);
236  }
237  }
238 
239  public static bool GetButton_Up(XboxControllerMappingTypes buttonType, XboxControllerEventData eventData)
240  {
241  switch (buttonType)
242  {
243  case XboxControllerMappingTypes.None:
244  return false;
245  case XboxControllerMappingTypes.XboxA:
246  return eventData.XboxA_Up;
247  case XboxControllerMappingTypes.XboxB:
248  return eventData.XboxB_Up;
249  case XboxControllerMappingTypes.XboxX:
250  return eventData.XboxX_Up;
251  case XboxControllerMappingTypes.XboxY:
252  return eventData.XboxY_Up;
253  case XboxControllerMappingTypes.XboxView:
254  return eventData.XboxView_Up;
255  case XboxControllerMappingTypes.XboxMenu:
256  return eventData.XboxMenu_Up;
257  case XboxControllerMappingTypes.XboxLeftBumper:
258  return eventData.XboxLeftBumper_Up;
259  case XboxControllerMappingTypes.XboxRightBumper:
260  return eventData.XboxRightBumper_Up;
261  case XboxControllerMappingTypes.XboxLeftStickClick:
262  return eventData.XboxLeftStick_Up;
263  case XboxControllerMappingTypes.XboxRightStickClick:
264  return eventData.XboxRightStick_Up;
265  default:
266  throw new ArgumentOutOfRangeException("buttonType", buttonType, null);
267  }
268  }
269  }
270 }
Defines the controller mapping for the input source.
static float GetAxis(XboxControllerMappingTypes axisType, XboxControllerEventData eventData)
static bool GetButton_Pressed(XboxControllerMappingTypes buttonType, XboxControllerEventData eventData)
static bool GetButton_Down(XboxControllerMappingTypes buttonType, XboxControllerEventData eventData)
static string GetMapping(XboxControllerMappingTypes type)
Utility class for Unity's Input Manager Mappings. Input from all types should be defined here for use...
XboxControllerMappingTypes
Xbox Controller axis and button types.
static void SetMapping(XboxControllerMappingTypes type, string value)
static bool GetButton_Up(XboxControllerMappingTypes buttonType, XboxControllerEventData eventData)