input_common: have an unique vector in callback status

master
german77 2022-10-09 12:49:07 +07:00
parent 155213484b
commit 224a19758e
3 changed files with 19 additions and 6 deletions

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

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

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