MCPcopy Create free account
hub / github.com/cathery/sys-con / FillAbstractedState

Method FillAbstractedState

source/ControllerSwitch/SwitchAbstractedPadHandler.cpp:97–149  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

95}
96
97void SwitchAbstractedPadHandler::FillAbstractedState(const NormalizedButtonData& data)
98{
99 m_state.state.buttons = 0;
100 m_state.state.buttons |= (data.buttons[0] ? HidNpadButton_X : 0);
101 m_state.state.buttons |= (data.buttons[1] ? HidNpadButton_A : 0);
102 m_state.state.buttons |= (data.buttons[2] ? HidNpadButton_B : 0);
103 m_state.state.buttons |= (data.buttons[3] ? HidNpadButton_Y : 0);
104
105 m_state.state.buttons |= (data.buttons[4] ? HidNpadButton_StickL : 0);
106 m_state.state.buttons |= (data.buttons[5] ? HidNpadButton_StickR : 0);
107
108 m_state.state.buttons |= (data.buttons[6] ? HidNpadButton_L : 0);
109 m_state.state.buttons |= (data.buttons[7] ? HidNpadButton_R : 0);
110
111 m_state.state.buttons |= (data.buttons[8] ? HidNpadButton_ZL : 0);
112 m_state.state.buttons |= (data.buttons[9] ? HidNpadButton_ZR : 0);
113
114 m_state.state.buttons |= (data.buttons[10] ? HidNpadButton_Minus : 0);
115 m_state.state.buttons |= (data.buttons[11] ? HidNpadButton_Plus : 0);
116
117 ControllerConfig* config = GetController()->GetConfig();
118
119 if (config && config->swapDPADandLSTICK)
120 {
121 m_state.state.buttons |= ((data.sticks[0].axis_y > 0.5f) ? HidNpadButton_Up : 0);
122 m_state.state.buttons |= ((data.sticks[0].axis_x > 0.5f) ? HidNpadButton_Right : 0);
123 m_state.state.buttons |= ((data.sticks[0].axis_y < -0.5f) ? HidNpadButton_Down : 0);
124 m_state.state.buttons |= ((data.sticks[0].axis_x < -0.5f) ? HidNpadButton_Left : 0);
125
126 float daxis_x{}, daxis_y{};
127
128 daxis_y += data.buttons[12] ? 1.0f : 0.0f; // DUP
129 daxis_x += data.buttons[13] ? 1.0f : 0.0f; // DRIGHT
130 daxis_y += data.buttons[14] ? -1.0f : 0.0f; // DDOWN
131 daxis_x += data.buttons[15] ? -1.0f : 0.0f; // DLEFT
132
133 ConvertAxisToSwitchAxis(daxis_x, daxis_y, 0, &m_state.state.analog_stick_l.x, &m_state.state.analog_stick_l.y);
134 }
135 else
136 {
137 m_state.state.buttons |= (data.buttons[12] ? HidNpadButton_Up : 0);
138 m_state.state.buttons |= (data.buttons[13] ? HidNpadButton_Right : 0);
139 m_state.state.buttons |= (data.buttons[14] ? HidNpadButton_Down : 0);
140 m_state.state.buttons |= (data.buttons[15] ? HidNpadButton_Left : 0);
141
142 ConvertAxisToSwitchAxis(data.sticks[0].axis_x, data.sticks[0].axis_y, 0, &m_state.state.analog_stick_l.x, &m_state.state.analog_stick_l.y);
143 }
144
145 ConvertAxisToSwitchAxis(data.sticks[1].axis_x, data.sticks[1].axis_y, 0, &m_state.state.analog_stick_r.x, &m_state.state.analog_stick_r.y);
146
147 m_state.state.buttons |= (data.buttons[16] ? HiddbgNpadButton_Capture : 0);
148 m_state.state.buttons |= (data.buttons[17] ? HiddbgNpadButton_Home : 0);
149}
150
151Result SwitchAbstractedPadHandler::UpdateAbstractedState()
152{

Callers

nothing calls this directly

Calls 1

GetConfigMethod · 0.45

Tested by

no test coverage detected