input_common: Create virtual amiibo driver

This commit is contained in:
german77 2022-09-24 19:46:49 -05:00
parent dbb9d601df
commit e8d71712e7
6 changed files with 244 additions and 0 deletions

View file

@ -76,6 +76,19 @@ enum class PollingError {
Unknown,
};
// Nfc reply from the controller
enum class NfcState {
Success,
NewAmiibo,
WaitingForAmiibo,
AmiiboRemoved,
NotAnAmiibo,
NotSupported,
WrongDeviceState,
WriteFailed,
Unknown,
};
// Ir camera reply from the controller
enum class CameraError {
None,
@ -202,6 +215,11 @@ struct CameraStatus {
std::vector<u8> data{};
};
struct NfcStatus {
NfcState state{};
std::vector<u8> data{};
};
// List of buttons to be passed to Qt that can be translated
enum class ButtonNames {
Undefined,
@ -260,6 +278,7 @@ struct CallbackStatus {
BatteryStatus battery_status{};
VibrationStatus vibration_status{};
CameraStatus camera_status{};
NfcStatus nfc_status{};
};
// Triggered once every input change
@ -312,6 +331,14 @@ public:
virtual CameraError SetCameraFormat([[maybe_unused]] CameraFormat camera_format) {
return CameraError::NotSupported;
}
virtual NfcState SupportsNfc() {
return NfcState::NotSupported;
}
virtual NfcState WriteNfcData([[maybe_unused]] const std::vector<u8>& data) {
return NfcState::NotSupported;
}
};
/// An abstract class template for a factory that can create input devices.