Skip to content

Commit c072c24

Browse files
committed
messy place
1 parent 9a974e0 commit c072c24

20 files changed

+58
-1293
lines changed

src/controller/controldevice/controller/ControllerButton.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ bool ControllerButton::ProcessMouseButtonEvent(bool isPressed, MouseBtn button)
265265
}
266266

267267
void ControllerButton::AddDefaultMappings(ShipDeviceIndex shipDeviceIndex) {
268-
for (auto mapping : ButtonMappingFactory::CreateDefaultSDLButtonMappings(shipDeviceIndex, mPortIndex, mBitmask)) {
268+
for (auto mapping : ButtonMappingFactory::CreateDefaultSDLButtonMappings(mPortIndex, mBitmask)) {
269269
AddButtonMapping(mapping);
270270
}
271271

src/controller/controldevice/controller/mapping/factories/ButtonMappingFactory.cpp

+16-42
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,10 @@
88
#include "controller/controldevice/controller/mapping/mouse/MouseWheelToButtonMapping.h"
99
#include "controller/controldevice/controller/mapping/sdl/SDLButtonToButtonMapping.h"
1010
#include "controller/controldevice/controller/mapping/sdl/SDLAxisDirectionToButtonMapping.h"
11-
#include "controller/deviceindex/ShipDeviceIndexToSDLDeviceIndexMapping.h"
1211
#include "controller/controldevice/controller/mapping/keyboard/KeyboardScancodes.h"
1312
#include "controller/controldevice/controller/mapping/mouse/WheelHandler.h"
13+
#include <cstdint>
14+
#include <memory>
1415

1516
namespace Ship {
1617
std::shared_ptr<ControllerButtonMapping> ButtonMappingFactory::CreateButtonMappingFromConfig(uint8_t portIndex,
@@ -154,90 +155,63 @@ ButtonMappingFactory::CreateDefaultKeyboardButtonMappings(uint8_t portIndex, CON
154155
}
155156

156157
std::vector<std::shared_ptr<ControllerButtonMapping>>
157-
ButtonMappingFactory::CreateDefaultSDLButtonMappings(ShipDeviceIndex shipDeviceIndex, uint8_t portIndex,
158+
ButtonMappingFactory::CreateDefaultSDLButtonMappings(uint8_t portIndex,
158159
CONTROLLERBUTTONS_T bitmask) {
159160
std::vector<std::shared_ptr<ControllerButtonMapping>> mappings;
160161

161-
auto sdlIndexMapping = std::dynamic_pointer_cast<ShipDeviceIndexToSDLDeviceIndexMapping>(
162-
Context::GetInstance()
163-
->GetControlDeck()
164-
->GetDeviceIndexMappingManager()
165-
->GetDeviceIndexMappingFromShipDeviceIndex(shipDeviceIndex));
166-
if (sdlIndexMapping == nullptr) {
167-
return std::vector<std::shared_ptr<ControllerButtonMapping>>();
168-
}
169-
170-
bool isGameCube = sdlIndexMapping->GetSDLControllerName() == "Nintendo GameCube Controller";
171-
172162
switch (bitmask) {
173163
case BTN_A:
174164
mappings.push_back(
175-
std::make_shared<SDLButtonToButtonMapping>(shipDeviceIndex, portIndex, BTN_A, SDL_CONTROLLER_BUTTON_A));
165+
std::make_shared<SDLButtonToButtonMapping>(portIndex, BTN_A, SDL_CONTROLLER_BUTTON_A));
176166
break;
177167
case BTN_B:
178168
mappings.push_back(
179-
std::make_shared<SDLButtonToButtonMapping>(shipDeviceIndex, portIndex, BTN_B, SDL_CONTROLLER_BUTTON_B));
169+
std::make_shared<SDLButtonToButtonMapping>(portIndex, BTN_B, SDL_CONTROLLER_BUTTON_B));
180170
break;
181171
case BTN_L:
182-
if (!isGameCube) {
183-
mappings.push_back(std::make_shared<SDLButtonToButtonMapping>(shipDeviceIndex, portIndex, BTN_L,
184-
SDL_CONTROLLER_BUTTON_LEFTSHOULDER));
185-
}
186172
break;
187173
case BTN_R:
188-
mappings.push_back(std::make_shared<SDLAxisDirectionToButtonMapping>(shipDeviceIndex, portIndex, BTN_R,
174+
mappings.push_back(std::make_shared<SDLAxisDirectionToButtonMapping>(portIndex, BTN_R,
189175
SDL_CONTROLLER_AXIS_TRIGGERRIGHT, 1));
190176
break;
191177
case BTN_Z:
192-
mappings.push_back(std::make_shared<SDLAxisDirectionToButtonMapping>(shipDeviceIndex, portIndex, BTN_Z,
178+
mappings.push_back(std::make_shared<SDLAxisDirectionToButtonMapping>(portIndex, BTN_Z,
193179
SDL_CONTROLLER_AXIS_TRIGGERLEFT, 1));
194180
break;
195181
case BTN_START:
196-
mappings.push_back(std::make_shared<SDLButtonToButtonMapping>(shipDeviceIndex, portIndex, BTN_START,
182+
mappings.push_back(std::make_shared<SDLButtonToButtonMapping>(portIndex, BTN_START,
197183
SDL_CONTROLLER_BUTTON_START));
198184
break;
199185
case BTN_CUP:
200-
mappings.push_back(std::make_shared<SDLAxisDirectionToButtonMapping>(shipDeviceIndex, portIndex, BTN_CUP,
186+
mappings.push_back(std::make_shared<SDLAxisDirectionToButtonMapping>(portIndex, BTN_CUP,
201187
SDL_CONTROLLER_AXIS_RIGHTY, -1));
202188
break;
203189
case BTN_CDOWN:
204-
mappings.push_back(std::make_shared<SDLAxisDirectionToButtonMapping>(shipDeviceIndex, portIndex, BTN_CDOWN,
190+
mappings.push_back(std::make_shared<SDLAxisDirectionToButtonMapping>(portIndex, BTN_CDOWN,
205191
SDL_CONTROLLER_AXIS_RIGHTY, 1));
206-
if (isGameCube) {
207-
mappings.push_back(std::make_shared<SDLButtonToButtonMapping>(shipDeviceIndex, portIndex, BTN_CDOWN,
208-
SDL_CONTROLLER_BUTTON_RIGHTSHOULDER));
209-
}
210192
break;
211193
case BTN_CLEFT:
212-
mappings.push_back(std::make_shared<SDLAxisDirectionToButtonMapping>(shipDeviceIndex, portIndex, BTN_CLEFT,
194+
mappings.push_back(std::make_shared<SDLAxisDirectionToButtonMapping>(portIndex, BTN_CLEFT,
213195
SDL_CONTROLLER_AXIS_RIGHTX, -1));
214-
if (isGameCube) {
215-
mappings.push_back(std::make_shared<SDLButtonToButtonMapping>(shipDeviceIndex, portIndex, BTN_CLEFT,
216-
SDL_CONTROLLER_BUTTON_Y));
217-
}
218196
break;
219197
case BTN_CRIGHT:
220-
mappings.push_back(std::make_shared<SDLAxisDirectionToButtonMapping>(shipDeviceIndex, portIndex, BTN_CRIGHT,
198+
mappings.push_back(std::make_shared<SDLAxisDirectionToButtonMapping>(portIndex, BTN_CRIGHT,
221199
SDL_CONTROLLER_AXIS_RIGHTX, 1));
222-
if (isGameCube) {
223-
mappings.push_back(std::make_shared<SDLButtonToButtonMapping>(shipDeviceIndex, portIndex, BTN_CRIGHT,
224-
SDL_CONTROLLER_BUTTON_X));
225-
}
226200
break;
227201
case BTN_DUP:
228-
mappings.push_back(std::make_shared<SDLButtonToButtonMapping>(shipDeviceIndex, portIndex, BTN_DUP,
202+
mappings.push_back(std::make_shared<SDLButtonToButtonMapping>(portIndex, BTN_DUP,
229203
SDL_CONTROLLER_BUTTON_DPAD_UP));
230204
break;
231205
case BTN_DDOWN:
232-
mappings.push_back(std::make_shared<SDLButtonToButtonMapping>(shipDeviceIndex, portIndex, BTN_DDOWN,
206+
mappings.push_back(std::make_shared<SDLButtonToButtonMapping>(portIndex, BTN_DDOWN,
233207
SDL_CONTROLLER_BUTTON_DPAD_DOWN));
234208
break;
235209
case BTN_DLEFT:
236-
mappings.push_back(std::make_shared<SDLButtonToButtonMapping>(shipDeviceIndex, portIndex, BTN_DLEFT,
210+
mappings.push_back(std::make_shared<SDLButtonToButtonMapping>(portIndex, BTN_DLEFT,
237211
SDL_CONTROLLER_BUTTON_DPAD_LEFT));
238212
break;
239213
case BTN_DRIGHT:
240-
mappings.push_back(std::make_shared<SDLButtonToButtonMapping>(shipDeviceIndex, portIndex, BTN_DRIGHT,
214+
mappings.push_back(std::make_shared<SDLButtonToButtonMapping>(portIndex, BTN_DRIGHT,
241215
SDL_CONTROLLER_BUTTON_DPAD_RIGHT));
242216
break;
243217
}

src/controller/controldevice/controller/mapping/factories/ButtonMappingFactory.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class ButtonMappingFactory {
1414
CreateDefaultKeyboardButtonMappings(uint8_t portIndex, CONTROLLERBUTTONS_T bitmask);
1515

1616
static std::vector<std::shared_ptr<ControllerButtonMapping>>
17-
CreateDefaultSDLButtonMappings(ShipDeviceIndex shipDeviceIndex, uint8_t portIndex, CONTROLLERBUTTONS_T bitmask);
17+
CreateDefaultSDLButtonMappings(uint8_t portIndex, CONTROLLERBUTTONS_T bitmask);
1818

1919
static std::shared_ptr<ControllerButtonMapping> CreateButtonMappingFromSDLInput(uint8_t portIndex,
2020
CONTROLLERBUTTONS_T bitmask);

src/controller/controldevice/controller/mapping/sdl/SDLAxisDirectionToAnyMapping.h

+6-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
#pragma once
22

3-
#include "SDLMapping.h"
43
#include "controller/controldevice/controller/mapping/ControllerInputMapping.h"
54

65
namespace Ship {
7-
class SDLAxisDirectionToAnyMapping : virtual public ControllerInputMapping, public SDLMapping {
6+
7+
enum Axis { X = 0, Y = 1 };
8+
enum AxisDirection { NEGATIVE = -1, POSITIVE = 1 };
9+
10+
class SDLAxisDirectionToAnyMapping : virtual public ControllerInputMapping {
811
public:
9-
SDLAxisDirectionToAnyMapping(ShipDeviceIndex shipDeviceIndex, int32_t sdlControllerAxis, int32_t axisDirection);
12+
SDLAxisDirectionToAnyMapping(int32_t sdlControllerAxis, int32_t axisDirection);
1013
~SDLAxisDirectionToAnyMapping();
1114
std::string GetPhysicalInputName() override;
1215
std::string GetPhysicalDeviceName() override;

src/controller/controldevice/controller/mapping/sdl/SDLButtonToAnyMapping.h

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
#pragma once
22

3-
#include "SDLMapping.h"
43
#include "controller/controldevice/controller/mapping/ControllerInputMapping.h"
54

65
namespace Ship {
7-
class SDLButtonToAnyMapping : virtual public ControllerInputMapping, public SDLMapping {
6+
class SDLButtonToAnyMapping : virtual public ControllerInputMapping {
87
public:
9-
SDLButtonToAnyMapping(ShipDeviceIndex shipDeviceIndex, int32_t sdlControllerButton);
8+
SDLButtonToAnyMapping(int32_t sdlControllerButton);
109
~SDLButtonToAnyMapping();
1110
std::string GetPhysicalInputName() override;
1211
std::string GetPhysicalDeviceName() override;

src/controller/controldevice/controller/mapping/sdl/SDLGyroMapping.h

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
#include "controller/controldevice/controller/mapping/ControllerGyroMapping.h"
2-
#include "SDLMapping.h"
32

43
namespace Ship {
5-
class SDLGyroMapping final : public ControllerGyroMapping, public SDLMapping {
4+
class SDLGyroMapping final : public ControllerGyroMapping {
65
public:
7-
SDLGyroMapping(ShipDeviceIndex shipDeviceIndex, uint8_t portIndex, float sensitivity, float neutralPitch,
6+
SDLGyroMapping(uint8_t portIndex, float sensitivity, float neutralPitch,
87
float neutralYaw, float neutralRoll);
98
void UpdatePad(float& x, float& y) override;
109
void SaveToConfig() override;

src/controller/controldevice/controller/mapping/sdl/SDLLEDMapping.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44
#include "utils/StringHelper.h"
55

66
namespace Ship {
7-
SDLLEDMapping::SDLLEDMapping(ShipDeviceIndex shipDeviceIndex, uint8_t portIndex, uint8_t colorSource,
7+
SDLLEDMapping::SDLLEDMapping(uint8_t portIndex, uint8_t colorSource,
88
Color_RGB8 savedColor)
9-
: ControllerLEDMapping(shipDeviceIndex, portIndex, colorSource, savedColor), SDLMapping(shipDeviceIndex) {
9+
: ControllerLEDMapping(portIndex, colorSource, savedColor) {
1010
}
1111

12-
void SDLLEDMapping::SetLEDColor(Color_RGB8 color) {
12+
void SDLLEDMapping::SetLEDColor(SDL_Joystick* gamepad, Color_RGB8 color) {
1313
if (!ControllerLoaded()) {
1414
return;
1515
}
@@ -26,7 +26,7 @@ void SDLLEDMapping::SetLEDColor(Color_RGB8 color) {
2626
color = mSavedColor;
2727
}
2828

29-
SDL_JoystickSetLED(SDL_GameControllerGetJoystick(mController), color.r, color.g, color.b);
29+
SDL_JoystickSetLED(gamepad, color.r, color.g, color.b);
3030
}
3131

3232
std::string SDLLEDMapping::GetLEDMappingId() {

src/controller/controldevice/controller/mapping/sdl/SDLLEDMapping.h

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
#include "controller/controldevice/controller/mapping/ControllerLEDMapping.h"
2-
#include "SDLMapping.h"
32

43
namespace Ship {
5-
class SDLLEDMapping final : public ControllerLEDMapping, public SDLMapping {
4+
class SDLLEDMapping final : public ControllerLEDMapping {
65
public:
7-
SDLLEDMapping(ShipDeviceIndex shipDeviceIndex, uint8_t portIndex, uint8_t colorSource, Color_RGB8 savedColor);
6+
SDLLEDMapping(uint8_t portIndex, uint8_t colorSource, Color_RGB8 savedColor);
87

98
void SetLEDColor(Color_RGB8 color) override;
109

src/controller/controldevice/controller/mapping/sdl/SDLMapping.cpp

-170
This file was deleted.

0 commit comments

Comments
 (0)