libultraship
Reimplementations of libultra (N64 SDK) functions for modern hardware
Loading...
Searching...
No Matches
Ship::ControllerDefaultMappings Class Reference

Holds the default input-to-button and input-to-axis mappings for a controller. More...

#include <ControllerDefaultMappings.h>

Inheritance diagram for Ship::ControllerDefaultMappings:
[legend]

Public Member Functions

 ControllerDefaultMappings (std::unordered_map< CONTROLLERBUTTONS_T, std::unordered_set< KbScancode > > defaultKeyboardKeyToButtonMappings, std::unordered_map< StickIndex, std::vector< std::pair< Direction, KbScancode > > > defaultKeyboardKeyToAxisDirectionMappings, std::unordered_map< CONTROLLERBUTTONS_T, std::unordered_set< SDL_GameControllerButton > > defaultSDLButtonToButtonMappings, std::unordered_map< StickIndex, std::vector< std::pair< Direction, SDL_GameControllerButton > > > defaultSDLButtonToAxisDirectionMappings, std::unordered_map< CONTROLLERBUTTONS_T, std::vector< std::pair< SDL_GameControllerAxis, int32_t > > > defaultSDLAxisDirectionToButtonMappings, std::unordered_map< StickIndex, std::vector< std::pair< Direction, std::pair< SDL_GameControllerAxis, int32_t > > > > defaultSDLAxisDirectionToAxisDirectionMappings)
 Constructs a ControllerDefaultMappings with fully specified default tables.
 
 ControllerDefaultMappings ()
 Constructs a ControllerDefaultMappings with empty default tables.
 
 ~ControllerDefaultMappings ()
 
std::unordered_map< CONTROLLERBUTTONS_T, std::unordered_set< KbScancode > > GetDefaultKeyboardKeyToButtonMappings ()
 Returns the default keyboard-key-to-button mappings.
 
std::unordered_map< StickIndex, std::vector< std::pair< Direction, KbScancode > > > GetDefaultKeyboardKeyToAxisDirectionMappings ()
 Returns the default keyboard-key-to-axis-direction mappings.
 
std::unordered_map< CONTROLLERBUTTONS_T, std::unordered_set< SDL_GameControllerButton > > GetDefaultSDLButtonToButtonMappings ()
 Returns the default SDL-button-to-button mappings.
 
std::unordered_map< StickIndex, std::vector< std::pair< Direction, SDL_GameControllerButton > > > GetDefaultSDLButtonToAxisDirectionMappings ()
 Returns the default SDL-button-to-axis-direction mappings.
 
std::unordered_map< CONTROLLERBUTTONS_T, std::vector< std::pair< SDL_GameControllerAxis, int32_t > > > GetDefaultSDLAxisDirectionToButtonMappings ()
 Returns the default SDL-axis-direction-to-button mappings.
 
std::unordered_map< StickIndex, std::vector< std::pair< Direction, std::pair< SDL_GameControllerAxis, int32_t > > > > GetDefaultSDLAxisDirectionToAxisDirectionMappings ()
 Returns the default SDL-axis-direction-to-axis-direction mappings.
 

Protected Member Functions

virtual void SetDefaultKeyboardKeyToButtonMappings (std::unordered_map< CONTROLLERBUTTONS_T, std::unordered_set< KbScancode > > defaultKeyboardKeyToButtonMappings)
 Replaces the default keyboard-key-to-button mappings.
 
virtual void SetDefaultKeyboardKeyToAxisDirectionMappings (std::unordered_map< StickIndex, std::vector< std::pair< Direction, KbScancode > > > defaultKeyboardKeyToAxisDirectionMappings)
 Replaces the default keyboard-key-to-axis-direction mappings.
 
virtual void SetDefaultSDLButtonToButtonMappings (std::unordered_map< CONTROLLERBUTTONS_T, std::unordered_set< SDL_GameControllerButton > > defaultSDLButtonToButtonMappings)
 Replaces the default SDL-button-to-button mappings.
 
virtual void SetDefaultSDLButtonToAxisDirectionMappings (std::unordered_map< StickIndex, std::vector< std::pair< Direction, SDL_GameControllerButton > > > defaultSDLButtonToAxisDirectionMappings)
 Replaces the default SDL-button-to-axis-direction mappings.
 
virtual void SetDefaultSDLAxisDirectionToButtonMappings (std::unordered_map< CONTROLLERBUTTONS_T, std::vector< std::pair< SDL_GameControllerAxis, int32_t > > > defaultSDLAxisDirectionToButtonMappings)
 Replaces the default SDL-axis-direction-to-button mappings.
 
virtual void SetDefaultSDLAxisDirectionToAxisDirectionMappings (std::unordered_map< StickIndex, std::vector< std::pair< Direction, std::pair< SDL_GameControllerAxis, int32_t > > > > defaultSDLAxisDirectionToAxisDirectionMappings)
 Replaces the default SDL-axis-direction-to-axis-direction mappings.
 

Detailed Description

Holds the default input-to-button and input-to-axis mappings for a controller.

Provides separate mapping tables for keyboard-key, SDL-gamepad-button, and SDL-gamepad-axis input sources. Subclasses may override the protected setters to customise the defaults for a specific game or controller layout.

Constructor & Destructor Documentation

◆ ControllerDefaultMappings() [1/2]

Ship::ControllerDefaultMappings::ControllerDefaultMappings ( std::unordered_map< CONTROLLERBUTTONS_T, std::unordered_set< KbScancode > >  defaultKeyboardKeyToButtonMappings,
std::unordered_map< StickIndex, std::vector< std::pair< Direction, KbScancode > > >  defaultKeyboardKeyToAxisDirectionMappings,
std::unordered_map< CONTROLLERBUTTONS_T, std::unordered_set< SDL_GameControllerButton > >  defaultSDLButtonToButtonMappings,
std::unordered_map< StickIndex, std::vector< std::pair< Direction, SDL_GameControllerButton > > >  defaultSDLButtonToAxisDirectionMappings,
std::unordered_map< CONTROLLERBUTTONS_T, std::vector< std::pair< SDL_GameControllerAxis, int32_t > > >  defaultSDLAxisDirectionToButtonMappings,
std::unordered_map< StickIndex, std::vector< std::pair< Direction, std::pair< SDL_GameControllerAxis, int32_t > > > >  defaultSDLAxisDirectionToAxisDirectionMappings 
)

Constructs a ControllerDefaultMappings with fully specified default tables.

Parameters
defaultKeyboardKeyToButtonMappingsKeyboard key to button bitmask mappings.
defaultKeyboardKeyToAxisDirectionMappingsKeyboard key to axis direction mappings.
defaultSDLButtonToButtonMappingsSDL gamepad button to button bitmask mappings.
defaultSDLButtonToAxisDirectionMappingsSDL gamepad button to axis direction mappings.
defaultSDLAxisDirectionToButtonMappingsSDL gamepad axis direction to button bitmask mappings.
defaultSDLAxisDirectionToAxisDirectionMappingsSDL gamepad axis direction to axis direction mappings.

◆ ControllerDefaultMappings() [2/2]

Ship::ControllerDefaultMappings::ControllerDefaultMappings ( )

Constructs a ControllerDefaultMappings with empty default tables.

◆ ~ControllerDefaultMappings()

Ship::ControllerDefaultMappings::~ControllerDefaultMappings ( )

Member Function Documentation

◆ GetDefaultKeyboardKeyToAxisDirectionMappings()

std::unordered_map< StickIndex, std::vector< std::pair< Direction, KbScancode > > > Ship::ControllerDefaultMappings::GetDefaultKeyboardKeyToAxisDirectionMappings ( )

Returns the default keyboard-key-to-axis-direction mappings.

Returns
Map of stick index to direction/scancode pairs.

◆ GetDefaultKeyboardKeyToButtonMappings()

std::unordered_map< CONTROLLERBUTTONS_T, std::unordered_set< KbScancode > > Ship::ControllerDefaultMappings::GetDefaultKeyboardKeyToButtonMappings ( )

Returns the default keyboard-key-to-button mappings.

Returns
Map of button bitmask to set of keyboard scancodes.

◆ GetDefaultSDLAxisDirectionToAxisDirectionMappings()

std::unordered_map< StickIndex, std::vector< std::pair< Direction, std::pair< SDL_GameControllerAxis, int32_t > > > > Ship::ControllerDefaultMappings::GetDefaultSDLAxisDirectionToAxisDirectionMappings ( )

Returns the default SDL-axis-direction-to-axis-direction mappings.

Returns
Map of stick index to direction/(axis, threshold) pairs.

◆ GetDefaultSDLAxisDirectionToButtonMappings()

std::unordered_map< CONTROLLERBUTTONS_T, std::vector< std::pair< SDL_GameControllerAxis, int32_t > > > Ship::ControllerDefaultMappings::GetDefaultSDLAxisDirectionToButtonMappings ( )

Returns the default SDL-axis-direction-to-button mappings.

Returns
Map of button bitmask to axis/threshold pairs.

◆ GetDefaultSDLButtonToAxisDirectionMappings()

std::unordered_map< StickIndex, std::vector< std::pair< Direction, SDL_GameControllerButton > > > Ship::ControllerDefaultMappings::GetDefaultSDLButtonToAxisDirectionMappings ( )

Returns the default SDL-button-to-axis-direction mappings.

Returns
Map of stick index to direction/SDL-button pairs.

◆ GetDefaultSDLButtonToButtonMappings()

std::unordered_map< CONTROLLERBUTTONS_T, std::unordered_set< SDL_GameControllerButton > > Ship::ControllerDefaultMappings::GetDefaultSDLButtonToButtonMappings ( )

Returns the default SDL-button-to-button mappings.

Returns
Map of button bitmask to set of SDL gamepad buttons.

◆ SetDefaultKeyboardKeyToAxisDirectionMappings()

virtual void Ship::ControllerDefaultMappings::SetDefaultKeyboardKeyToAxisDirectionMappings ( std::unordered_map< StickIndex, std::vector< std::pair< Direction, KbScancode > > >  defaultKeyboardKeyToAxisDirectionMappings)
protectedvirtual

Replaces the default keyboard-key-to-axis-direction mappings.

Parameters
defaultKeyboardKeyToAxisDirectionMappingsThe new mappings.

◆ SetDefaultKeyboardKeyToButtonMappings()

virtual void Ship::ControllerDefaultMappings::SetDefaultKeyboardKeyToButtonMappings ( std::unordered_map< CONTROLLERBUTTONS_T, std::unordered_set< KbScancode > >  defaultKeyboardKeyToButtonMappings)
protectedvirtual

Replaces the default keyboard-key-to-button mappings.

Parameters
defaultKeyboardKeyToButtonMappingsThe new mappings.

◆ SetDefaultSDLAxisDirectionToAxisDirectionMappings()

virtual void Ship::ControllerDefaultMappings::SetDefaultSDLAxisDirectionToAxisDirectionMappings ( std::unordered_map< StickIndex, std::vector< std::pair< Direction, std::pair< SDL_GameControllerAxis, int32_t > > > >  defaultSDLAxisDirectionToAxisDirectionMappings)
protectedvirtual

Replaces the default SDL-axis-direction-to-axis-direction mappings.

Parameters
defaultSDLAxisDirectionToAxisDirectionMappingsThe new mappings.

◆ SetDefaultSDLAxisDirectionToButtonMappings()

virtual void Ship::ControllerDefaultMappings::SetDefaultSDLAxisDirectionToButtonMappings ( std::unordered_map< CONTROLLERBUTTONS_T, std::vector< std::pair< SDL_GameControllerAxis, int32_t > > >  defaultSDLAxisDirectionToButtonMappings)
protectedvirtual

Replaces the default SDL-axis-direction-to-button mappings.

Parameters
defaultSDLAxisDirectionToButtonMappingsThe new mappings.

◆ SetDefaultSDLButtonToAxisDirectionMappings()

virtual void Ship::ControllerDefaultMappings::SetDefaultSDLButtonToAxisDirectionMappings ( std::unordered_map< StickIndex, std::vector< std::pair< Direction, SDL_GameControllerButton > > >  defaultSDLButtonToAxisDirectionMappings)
protectedvirtual

Replaces the default SDL-button-to-axis-direction mappings.

Parameters
defaultSDLButtonToAxisDirectionMappingsThe new mappings.

◆ SetDefaultSDLButtonToButtonMappings()

virtual void Ship::ControllerDefaultMappings::SetDefaultSDLButtonToButtonMappings ( std::unordered_map< CONTROLLERBUTTONS_T, std::unordered_set< SDL_GameControllerButton > >  defaultSDLButtonToButtonMappings)
protectedvirtual

Replaces the default SDL-button-to-button mappings.

Parameters
defaultSDLButtonToButtonMappingsThe new mappings.

The documentation for this class was generated from the following file: