Split SI into it's own SDK library

This commit is contained in:
Phillip Stephens 2025-04-14 19:03:47 -07:00
parent 7f3953d3d8
commit fee77b3d25
5 changed files with 28 additions and 17 deletions

View File

@ -8,6 +8,7 @@ add_subdirectory(extern)
include(cmake/aurora_core.cmake)
include(cmake/aurora_gx.cmake)
include(cmake/aurora_pad.cmake)
include(cmake/aurora_si.cmake)
include(cmake/aurora_main.cmake)
include(cmake/aurora_mtx.cmake)
include(cmake/aurora_vi.cmake)

View File

@ -3,5 +3,5 @@ add_library(aurora_pad STATIC lib/dolphin/pad/pad.cpp)
add_library(aurora::pad ALIAS aurora_pad)
target_include_directories(aurora_pad PUBLIC include)
target_link_libraries(aurora_pad PUBLIC aurora::core)
target_link_libraries(aurora_pad PUBLIC aurora::core aurora::si)
target_link_libraries(aurora_pad PRIVATE absl::flat_hash_map)

6
cmake/aurora_si.cmake Normal file
View File

@ -0,0 +1,6 @@
add_library(aurora_si STATIC lib/dolphin/si/si.cpp)
add_library(aurora::si ALIAS aurora_si)
target_include_directories(aurora_si PUBLIC include)
target_link_libraries(aurora_si PUBLIC aurora::core)

View File

@ -264,22 +264,6 @@ void PADControlAllMotors(const uint32_t* commands) {
}
}
uint32_t SIProbe(int32_t chan) {
auto* const controller = aurora::input::get_controller_for_player(chan);
if (controller == nullptr) {
return SI_ERROR_NO_RESPONSE;
}
if (controller->m_isGameCube) {
auto level = SDL_GetJoystickPowerInfo(SDL_GetGamepadJoystick(controller->m_controller), nullptr);
if (level == SDL_POWERSTATE_UNKNOWN) {
return SI_GC_WAVEBIRD;
}
}
return SI_GC_CONTROLLER;
}
struct PADCLampRegion {
uint8_t minTrigger;
uint8_t maxTrigger;

20
lib/dolphin/si/si.cpp Normal file
View File

@ -0,0 +1,20 @@
#include <dolphin/si.h>
#include "../../input.hpp"
#include <SDL3/SDL_power.h>
uint32_t SIProbe(int32_t chan) {
auto* const controller = aurora::input::get_controller_for_player(chan);
if (controller == nullptr) {
return SI_ERROR_NO_RESPONSE;
}
if (controller->m_isGameCube) {
auto level = SDL_GetJoystickPowerInfo(SDL_GetGamepadJoystick(controller->m_controller), nullptr);
if (level == SDL_POWERSTATE_UNKNOWN) {
return SI_GC_WAVEBIRD;
}
}
return SI_GC_CONTROLLER;
}