summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/common/input.h5
-rw-r--r--src/core/hid/input_converter.cpp10
-rw-r--r--src/input_common/input_poller.cpp10
3 files changed, 19 insertions, 6 deletions
diff --git a/src/common/input.h b/src/common/input.h
index bfa0639f5..b533f3844 100644
--- a/src/common/input.h
+++ b/src/common/input.h
@@ -277,8 +277,9 @@ struct CallbackStatus {
277 BodyColorStatus color_status{}; 277 BodyColorStatus color_status{};
278 BatteryStatus battery_status{}; 278 BatteryStatus battery_status{};
279 VibrationStatus vibration_status{}; 279 VibrationStatus vibration_status{};
280 CameraStatus camera_status{}; 280 CameraFormat camera_status{CameraFormat::None};
281 NfcStatus nfc_status{}; 281 NfcState nfc_status{NfcState::Unknown};
282 std::vector<u8> raw_data{};
282}; 283};
283 284
284// Triggered once every input change 285// Triggered once every input change
diff --git a/src/core/hid/input_converter.cpp b/src/core/hid/input_converter.cpp
index fe9915abe..5d8b75b50 100644
--- a/src/core/hid/input_converter.cpp
+++ b/src/core/hid/input_converter.cpp
@@ -277,7 +277,10 @@ Common::Input::CameraStatus TransformToCamera(const Common::Input::CallbackStatu
277 Common::Input::CameraStatus camera{}; 277 Common::Input::CameraStatus camera{};
278 switch (callback.type) { 278 switch (callback.type) {
279 case Common::Input::InputType::IrSensor: 279 case Common::Input::InputType::IrSensor:
280 camera = callback.camera_status; 280 camera = {
281 .format = callback.camera_status,
282 .data = callback.raw_data,
283 };
281 break; 284 break;
282 default: 285 default:
283 LOG_ERROR(Input, "Conversion from type {} to camera not implemented", callback.type); 286 LOG_ERROR(Input, "Conversion from type {} to camera not implemented", callback.type);
@@ -291,7 +294,10 @@ Common::Input::NfcStatus TransformToNfc(const Common::Input::CallbackStatus& cal
291 Common::Input::NfcStatus nfc{}; 294 Common::Input::NfcStatus nfc{};
292 switch (callback.type) { 295 switch (callback.type) {
293 case Common::Input::InputType::Nfc: 296 case Common::Input::InputType::Nfc:
294 return callback.nfc_status; 297 nfc = {
298 .state = callback.nfc_status,
299 .data = callback.raw_data,
300 };
295 break; 301 break;
296 default: 302 default:
297 LOG_ERROR(Input, "Conversion from type {} to NFC not implemented", callback.type); 303 LOG_ERROR(Input, "Conversion from type {} to NFC not implemented", callback.type);
diff --git a/src/input_common/input_poller.cpp b/src/input_common/input_poller.cpp
index 75705b67e..ca33fb4eb 100644
--- a/src/input_common/input_poller.cpp
+++ b/src/input_common/input_poller.cpp
@@ -691,9 +691,12 @@ public:
691 } 691 }
692 692
693 void OnChange() { 693 void OnChange() {
694 const auto camera_status = GetStatus();
695
694 const Common::Input::CallbackStatus status{ 696 const Common::Input::CallbackStatus status{
695 .type = Common::Input::InputType::IrSensor, 697 .type = Common::Input::InputType::IrSensor,
696 .camera_status = GetStatus(), 698 .camera_status = camera_status.format,
699 .raw_data = camera_status.data,
697 }; 700 };
698 701
699 TriggerOnChange(status); 702 TriggerOnChange(status);
@@ -732,9 +735,12 @@ public:
732 } 735 }
733 736
734 void OnChange() { 737 void OnChange() {
738 const auto nfc_status = GetStatus();
739
735 const Common::Input::CallbackStatus status{ 740 const Common::Input::CallbackStatus status{
736 .type = Common::Input::InputType::Nfc, 741 .type = Common::Input::InputType::Nfc,
737 .nfc_status = GetStatus(), 742 .nfc_status = nfc_status.state,
743 .raw_data = nfc_status.data,
738 }; 744 };
739 745
740 TriggerOnChange(status); 746 TriggerOnChange(status);