input_common: have an unique vector in callback status

This commit is contained in:
german77 2022-10-09 12:49:07 -05:00
parent 155213484b
commit 224a19758e
3 changed files with 19 additions and 6 deletions

View file

@ -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

View file

@ -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);

View file

@ -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);