yaze
0.3.2
Link to the Past ROM Editor
Loading...
Searching...
No Matches
sdl3_input_backend.h
Go to the documentation of this file.
1
#ifndef YAZE_APP_EMU_INPUT_SDL3_INPUT_BACKEND_H_
2
#define YAZE_APP_EMU_INPUT_SDL3_INPUT_BACKEND_H_
3
4
#include "
app/emu/input/input_backend.h
"
5
#include "
app/platform/sdl_compat.h
"
6
7
namespace
yaze
{
8
namespace
emu {
9
namespace
input {
10
21
class
SDL3InputBackend
:
public
IInputBackend
{
22
public
:
23
SDL3InputBackend
();
24
~SDL3InputBackend
()
override
;
25
26
// IInputBackend interface
27
bool
Initialize
(
const
InputConfig
& config)
override
;
28
void
Shutdown
()
override
;
29
ControllerState
Poll
(
int
player = 1)
override
;
30
void
ProcessEvent
(
void
* event)
override
;
31
InputConfig
GetConfig
()
const override
;
32
void
SetConfig
(
const
InputConfig
& config)
override
;
33
std::string
GetBackendName
()
const override
;
34
bool
IsInitialized
()
const override
;
35
36
private
:
42
void
UpdateEventState
(
int
keycode,
bool
pressed);
43
49
void
PollGamepad
(
ControllerState
& state,
int
player);
50
55
void
HandleGamepadEvent
(
const
SDL_Event& event);
56
57
InputConfig
config_
;
58
bool
initialized_
=
false
;
59
ControllerState
event_state_
;
// Cached state for event-based mode
60
61
// Gamepad handles for up to 4 players
62
platform::GamepadHandle
gamepads_
[4] = {
nullptr
,
nullptr
,
nullptr
,
nullptr
};
63
64
// Axis deadzone for analog sticks
65
static
constexpr
int16_t
kAxisDeadzone
= 8000;
66
};
67
68
}
// namespace input
69
}
// namespace emu
70
}
// namespace yaze
71
72
#endif
// YAZE_APP_EMU_INPUT_SDL3_INPUT_BACKEND_H_
yaze::emu::input::IInputBackend
Abstract input backend interface.
Definition
input_backend.h:95
yaze::emu::input::SDL3InputBackend
SDL3 input backend implementation.
Definition
sdl3_input_backend.h:21
yaze::emu::input::SDL3InputBackend::ProcessEvent
void ProcessEvent(void *event) override
Process platform-specific events (optional)
Definition
sdl3_input_backend.cc:198
yaze::emu::input::SDL3InputBackend::SetConfig
void SetConfig(const InputConfig &config) override
Update configuration (hot-reload)
Definition
sdl3_input_backend.cc:301
yaze::emu::input::SDL3InputBackend::initialized_
bool initialized_
Definition
sdl3_input_backend.h:58
yaze::emu::input::SDL3InputBackend::event_state_
ControllerState event_state_
Definition
sdl3_input_backend.h:59
yaze::emu::input::SDL3InputBackend::kAxisDeadzone
static constexpr int16_t kAxisDeadzone
Definition
sdl3_input_backend.h:65
yaze::emu::input::SDL3InputBackend::gamepads_
platform::GamepadHandle gamepads_[4]
Definition
sdl3_input_backend.h:62
yaze::emu::input::SDL3InputBackend::PollGamepad
void PollGamepad(ControllerState &state, int player)
Poll gamepad state and update controller state.
Definition
sdl3_input_backend.cc:133
yaze::emu::input::SDL3InputBackend::SDL3InputBackend
SDL3InputBackend()
yaze::emu::input::SDL3InputBackend::config_
InputConfig config_
Definition
sdl3_input_backend.h:57
yaze::emu::input::SDL3InputBackend::GetConfig
InputConfig GetConfig() const override
Get current configuration.
Definition
sdl3_input_backend.cc:299
yaze::emu::input::SDL3InputBackend::GetBackendName
std::string GetBackendName() const override
Get backend name for debugging.
Definition
sdl3_input_backend.cc:316
yaze::emu::input::SDL3InputBackend::HandleGamepadEvent
void HandleGamepadEvent(const SDL_Event &event)
Handle gamepad connection/disconnection.
Definition
sdl3_input_backend.cc:216
yaze::emu::input::SDL3InputBackend::Shutdown
void Shutdown() override
Shutdown the input backend.
Definition
sdl3_input_backend.cc:37
yaze::emu::input::SDL3InputBackend::~SDL3InputBackend
~SDL3InputBackend() override
Definition
sdl3_input_backend.cc:12
yaze::emu::input::SDL3InputBackend::Initialize
bool Initialize(const InputConfig &config) override
Initialize the input backend.
Definition
sdl3_input_backend.cc:14
yaze::emu::input::SDL3InputBackend::Poll
ControllerState Poll(int player=1) override
Poll current input state (call every frame)
Definition
sdl3_input_backend.cc:51
yaze::emu::input::SDL3InputBackend::UpdateEventState
void UpdateEventState(int keycode, bool pressed)
Update event state from keyboard event.
Definition
sdl3_input_backend.cc:271
yaze::emu::input::SDL3InputBackend::IsInitialized
bool IsInitialized() const override
Check if backend is initialized.
Definition
sdl3_input_backend.cc:318
input_backend.h
yaze::platform::GamepadHandle
SDL_GameController * GamepadHandle
Definition
sdl_compat.h:193
yaze
Definition
application.cc:18
sdl_compat.h
SDL2/SDL3 compatibility layer.
yaze::emu::input::ControllerState
Controller state (16-bit SNES controller format)
Definition
input_backend.h:33
yaze::emu::input::InputConfig
Input configuration (platform-agnostic key codes)
Definition
input_backend.h:54
src
app
emu
input
sdl3_input_backend.h
Generated by
1.10.0