+fn get_action_mapping() -> HashMap<ActionControls, DeviceControls> {
+ hashmap!(
+ ActionControls::MovementX => DeviceControls::AxisLX,
+ ActionControls::MovementY => DeviceControls::AxisLY,
+ ActionControls::AimX => DeviceControls::AxisRX,
+ ActionControls::AimY => DeviceControls::AxisRY,
+ ActionControls::Jump => DeviceControls::ButtonA,
+ ActionControls::Shoot => DeviceControls::ButtonR1,
+ ActionControls::Start => DeviceControls::ButtonStart
+ )
+}
+
+fn get_device_mapping(device_name: &str) -> HashMap<DeviceControls, u8> {
+ match device_name {
+ "Sony PLAYSTATION(R)3 Controller" => hashmap!(
+ DeviceControls::AxisLX => 0,
+ DeviceControls::AxisLY => 1,
+ DeviceControls::AxisRX => 3,
+ DeviceControls::AxisRY => 4,
+ DeviceControls::AxisL2 => 2,
+ DeviceControls::AxisR2 => 5,
+ DeviceControls::ButtonA => 0,
+ DeviceControls::ButtonB => 1,
+ DeviceControls::ButtonY => 3,
+ DeviceControls::ButtonX => 2,
+ DeviceControls::ButtonSelect => 8,
+ DeviceControls::ButtonStart => 9,
+ DeviceControls::ButtonHome => 10,
+ DeviceControls::ButtonL3 => 11,
+ DeviceControls::ButtonR3 => 12,
+ DeviceControls::ButtonL1 => 4,
+ DeviceControls::ButtonR1 => 5,
+ DeviceControls::ButtonL2 => 6,
+ DeviceControls::ButtonR2 => 7,
+ DeviceControls::ButtonUp => 13,
+ DeviceControls::ButtonDown => 14,
+ DeviceControls::ButtonLeft => 15,
+ DeviceControls::ButtonRight => 16
+ ),
+ _ => panic!("No controller mapping for device '{}'", device_name)
+ }
+}
+