summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/input_common/drivers/virtual_amiibo.cpp15
-rw-r--r--src/input_common/drivers/virtual_amiibo.h3
-rw-r--r--src/input_common/input_engine.h2
3 files changed, 19 insertions, 1 deletions
diff --git a/src/input_common/drivers/virtual_amiibo.cpp b/src/input_common/drivers/virtual_amiibo.cpp
index 0cd5129da..252c660d8 100644
--- a/src/input_common/drivers/virtual_amiibo.cpp
+++ b/src/input_common/drivers/virtual_amiibo.cpp
@@ -60,6 +60,8 @@ Common::Input::NfcState VirtualAmiibo::WriteNfcData(
60 return Common::Input::NfcState::WriteFailed; 60 return Common::Input::NfcState::WriteFailed;
61 } 61 }
62 62
63 amiibo_data = data;
64
63 return Common::Input::NfcState::Success; 65 return Common::Input::NfcState::Success;
64} 66}
65 67
@@ -91,6 +93,15 @@ VirtualAmiibo::Info VirtualAmiibo::LoadAmiibo(const std::string& filename) {
91 return Info::Success; 93 return Info::Success;
92} 94}
93 95
96VirtualAmiibo::Info VirtualAmiibo::ReloadAmiibo() {
97 if (state == State::AmiiboIsOpen) {
98 SetNfc(identifier, {Common::Input::NfcState::NewAmiibo, amiibo_data});
99 return Info::Success;
100 }
101
102 return LoadAmiibo(file_path);
103}
104
94VirtualAmiibo::Info VirtualAmiibo::CloseAmiibo() { 105VirtualAmiibo::Info VirtualAmiibo::CloseAmiibo() {
95 state = polling_mode == Common::Input::PollingMode::NFC ? State::WaitingForAmiibo 106 state = polling_mode == Common::Input::PollingMode::NFC ? State::WaitingForAmiibo
96 : State::Initialized; 107 : State::Initialized;
@@ -98,4 +109,8 @@ VirtualAmiibo::Info VirtualAmiibo::CloseAmiibo() {
98 return Info::Success; 109 return Info::Success;
99} 110}
100 111
112std::string VirtualAmiibo::GetLastFilePath() {
113 return file_path;
114}
115
101} // namespace InputCommon 116} // namespace InputCommon
diff --git a/src/input_common/drivers/virtual_amiibo.h b/src/input_common/drivers/virtual_amiibo.h
index 9eac07544..f2294b8b0 100644
--- a/src/input_common/drivers/virtual_amiibo.h
+++ b/src/input_common/drivers/virtual_amiibo.h
@@ -47,8 +47,11 @@ public:
47 State GetCurrentState() const; 47 State GetCurrentState() const;
48 48
49 Info LoadAmiibo(const std::string& amiibo_file); 49 Info LoadAmiibo(const std::string& amiibo_file);
50 Info ReloadAmiibo();
50 Info CloseAmiibo(); 51 Info CloseAmiibo();
51 52
53 std::string GetLastFilePath();
54
52private: 55private:
53 static constexpr std::size_t amiibo_size = 0x21C; 56 static constexpr std::size_t amiibo_size = 0x21C;
54 static constexpr std::size_t amiibo_size_without_password = amiibo_size - 0x8; 57 static constexpr std::size_t amiibo_size_without_password = amiibo_size - 0x8;
diff --git a/src/input_common/input_engine.h b/src/input_common/input_engine.h
index d4c264a8e..6cbcf5207 100644
--- a/src/input_common/input_engine.h
+++ b/src/input_common/input_engine.h
@@ -133,7 +133,7 @@ public:
133 return Common::Input::CameraError::NotSupported; 133 return Common::Input::CameraError::NotSupported;
134 } 134 }
135 135
136 // Request nfc data from a controller 136 // Returns success if nfc is supported
137 virtual Common::Input::NfcState SupportsNfc( 137 virtual Common::Input::NfcState SupportsNfc(
138 [[maybe_unused]] const PadIdentifier& identifier) const { 138 [[maybe_unused]] const PadIdentifier& identifier) const {
139 return Common::Input::NfcState::NotSupported; 139 return Common::Input::NfcState::NotSupported;