diff --git a/firmware/libsi/include/si/device/gc_controller.h b/firmware/libsi/include/si/device/gc_controller.h index 2be0b46..d8a8ea6 100644 --- a/firmware/libsi/include/si/device/gc_controller.h +++ b/firmware/libsi/include/si/device/gc_controller.h @@ -134,10 +134,13 @@ static inline bool si_device_gc_wireless_id_fixed(struct si_device_gc_controller /** * Mark the input state as valid. * + * When the input state is marked valid, we'll use the contents of device->input + * when replying to poll commands, otherwise we'll use the origin state. + * * @param device the device to set the input state for * @param valid true if the input state is valid */ -static inline void si_device_set_input_valid(struct si_device_gc_controller *device, bool valid) +static inline void si_device_gc_input_valid(struct si_device_gc_controller *device, bool valid) { device->input_valid = valid; } diff --git a/firmware/receiver/src/main.c b/firmware/receiver/src/main.c index 2b5141c..f0375a9 100644 --- a/firmware/receiver/src/main.c +++ b/firmware/receiver/src/main.c @@ -212,7 +212,7 @@ static void handle_wavebird_packet(const uint8_t *packet) // Set the input state as valid input_valid_until = millis + INPUT_VALID_MS; - si_device_set_input_valid(&si_device, true); + si_device_gc_input_valid(&si_device, true); } else { // // Handle origin packets @@ -439,6 +439,6 @@ int main(void) // Invalidate stale inputs if (si_device.input_valid && (int32_t)(millis - input_valid_until) >= 0) - si_device_set_input_valid(&si_device, false); + si_device_gc_input_valid(&si_device, false); } }