input_common: Use DriverResult on all engines
This commit is contained in:
parent
e1a3bda4d9
commit
527dad7097
17 changed files with 100 additions and 104 deletions
|
@ -459,23 +459,23 @@ SerialNumber JoyconDriver::GetHandleSerialNumber() const {
|
|||
return handle_serial_number;
|
||||
}
|
||||
|
||||
void JoyconDriver::SetCallbacks(const Joycon::JoyconCallbacks& callbacks) {
|
||||
void JoyconDriver::SetCallbacks(const JoyconCallbacks& callbacks) {
|
||||
joycon_poller->SetCallbacks(callbacks);
|
||||
}
|
||||
|
||||
Joycon::DriverResult JoyconDriver::GetDeviceType(SDL_hid_device_info* device_info,
|
||||
ControllerType& controller_type) {
|
||||
static constexpr std::array<std::pair<u32, Joycon::ControllerType>, 4> supported_devices{
|
||||
std::pair<u32, Joycon::ControllerType>{0x2006, Joycon::ControllerType::Left},
|
||||
{0x2007, Joycon::ControllerType::Right},
|
||||
{0x2009, Joycon::ControllerType::Pro},
|
||||
{0x200E, Joycon::ControllerType::Grip},
|
||||
DriverResult JoyconDriver::GetDeviceType(SDL_hid_device_info* device_info,
|
||||
ControllerType& controller_type) {
|
||||
static constexpr std::array<std::pair<u32, ControllerType>, 4> supported_devices{
|
||||
std::pair<u32, ControllerType>{0x2006, ControllerType::Left},
|
||||
{0x2007, ControllerType::Right},
|
||||
{0x2009, ControllerType::Pro},
|
||||
{0x200E, ControllerType::Grip},
|
||||
};
|
||||
constexpr u16 nintendo_vendor_id = 0x057e;
|
||||
|
||||
controller_type = Joycon::ControllerType::None;
|
||||
controller_type = ControllerType::None;
|
||||
if (device_info->vendor_id != nintendo_vendor_id) {
|
||||
return Joycon::DriverResult::UnsupportedControllerType;
|
||||
return DriverResult::UnsupportedControllerType;
|
||||
}
|
||||
|
||||
for (const auto& [product_id, type] : supported_devices) {
|
||||
|
@ -487,10 +487,10 @@ Joycon::DriverResult JoyconDriver::GetDeviceType(SDL_hid_device_info* device_inf
|
|||
return Joycon::DriverResult::UnsupportedControllerType;
|
||||
}
|
||||
|
||||
Joycon::DriverResult JoyconDriver::GetSerialNumber(SDL_hid_device_info* device_info,
|
||||
Joycon::SerialNumber& serial_number) {
|
||||
DriverResult JoyconDriver::GetSerialNumber(SDL_hid_device_info* device_info,
|
||||
SerialNumber& serial_number) {
|
||||
if (device_info->serial_number == nullptr) {
|
||||
return Joycon::DriverResult::Unknown;
|
||||
return DriverResult::Unknown;
|
||||
}
|
||||
std::memcpy(&serial_number, device_info->serial_number, 15);
|
||||
return Joycon::DriverResult::Success;
|
||||
|
|
|
@ -46,15 +46,15 @@ public:
|
|||
DriverResult SetNfcMode();
|
||||
DriverResult SetRingConMode();
|
||||
|
||||
void SetCallbacks(const Joycon::JoyconCallbacks& callbacks);
|
||||
void SetCallbacks(const JoyconCallbacks& callbacks);
|
||||
|
||||
// Returns device type from hidapi handle
|
||||
static Joycon::DriverResult GetDeviceType(SDL_hid_device_info* device_info,
|
||||
Joycon::ControllerType& controller_type);
|
||||
static DriverResult GetDeviceType(SDL_hid_device_info* device_info,
|
||||
ControllerType& controller_type);
|
||||
|
||||
// Returns serial number from hidapi handle
|
||||
static Joycon::DriverResult GetSerialNumber(SDL_hid_device_info* device_info,
|
||||
Joycon::SerialNumber& serial_number);
|
||||
static DriverResult GetSerialNumber(SDL_hid_device_info* device_info,
|
||||
SerialNumber& serial_number);
|
||||
|
||||
private:
|
||||
struct SupportedFeatures {
|
||||
|
|
|
@ -284,6 +284,7 @@ enum class DriverResult {
|
|||
NoDeviceDetected,
|
||||
InvalidHandle,
|
||||
NotSupported,
|
||||
Disabled,
|
||||
Unknown,
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue