Эх сурвалжийг харах

Merge pull request #9043 from german77/vector_data

input_common: have an unique vector in callback status
liamwhite 3 жил өмнө
parent
commit
c3cae9d992

+ 3 - 2
src/common/input.h

@@ -277,8 +277,9 @@ struct CallbackStatus {
     BodyColorStatus color_status{};
     BatteryStatus battery_status{};
     VibrationStatus vibration_status{};
-    CameraStatus camera_status{};
-    NfcStatus nfc_status{};
+    CameraFormat camera_status{CameraFormat::None};
+    NfcState nfc_status{NfcState::Unknown};
+    std::vector<u8> raw_data{};
 };
 
 // Triggered once every input change

+ 8 - 2
src/core/hid/input_converter.cpp

@@ -277,7 +277,10 @@ Common::Input::CameraStatus TransformToCamera(const Common::Input::CallbackStatu
     Common::Input::CameraStatus camera{};
     switch (callback.type) {
     case Common::Input::InputType::IrSensor:
-        camera = callback.camera_status;
+        camera = {
+            .format = callback.camera_status,
+            .data = callback.raw_data,
+        };
         break;
     default:
         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
     Common::Input::NfcStatus nfc{};
     switch (callback.type) {
     case Common::Input::InputType::Nfc:
-        return callback.nfc_status;
+        nfc = {
+            .state = callback.nfc_status,
+            .data = callback.raw_data,
+        };
         break;
     default:
         LOG_ERROR(Input, "Conversion from type {} to NFC not implemented", callback.type);

+ 8 - 2
src/input_common/input_poller.cpp

@@ -691,9 +691,12 @@ public:
     }
 
     void OnChange() {
+        const auto camera_status = GetStatus();
+
         const Common::Input::CallbackStatus status{
             .type = Common::Input::InputType::IrSensor,
-            .camera_status = GetStatus(),
+            .camera_status = camera_status.format,
+            .raw_data = camera_status.data,
         };
 
         TriggerOnChange(status);
@@ -732,9 +735,12 @@ public:
     }
 
     void OnChange() {
+        const auto nfc_status = GetStatus();
+
         const Common::Input::CallbackStatus status{
             .type = Common::Input::InputType::Nfc,
-            .nfc_status = GetStatus(),
+            .nfc_status = nfc_status.state,
+            .raw_data = nfc_status.data,
         };
 
         TriggerOnChange(status);