Skip to content

Commit

Permalink
Fix accidental recursive millis in TeensyDevice
Browse files Browse the repository at this point in the history
  • Loading branch information
malcx95 committed Jan 20, 2024
1 parent c3dcba4 commit 60e0fae
Show file tree
Hide file tree
Showing 9 changed files with 13 additions and 11 deletions.
4 changes: 3 additions & 1 deletion core/backlight/schemes/wave.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,9 @@ void Wave::update(const core::keyboard::KeyboardScanResult& scan_result,
for (int i = 0; i < scan_result.num_pressed; ++i)
{
const common::LEDDescription pressed = scan_result.just_pressed[i]->get_associated_led();
led_states[pressed.strip_index].start_fade(
const auto index = pressed.strip_index;
auto& state = led_states[index];
state.start_fade(
device, Color{1.0f, 1.0f, 1.0f}, PRESS_FADE_TIME);
}

Expand Down
2 changes: 1 addition & 1 deletion core/backlight/schemes/wave.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
namespace core::backlight::schemes
{

const float SPEED = 0.00005f;
const float SPEED = 0.0005f;
const float X_SPEED = 0.8f;
const float Y_SPEED = 1.1f;
const float MAX_PHASE_DIFFERENCE = 0.3f;
Expand Down
4 changes: 2 additions & 2 deletions core/testutil/testdevice.h
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ class TestDeviceBase : public Device
/**
* Milliseconds since the device was started.
*/
virtual uint32_t millis() const { return 0; }
virtual uint32_t milliseconds_since_start() const { return 0; }

virtual void set_led(uint16_t, uint8_t, uint8_t, uint8_t) { }
virtual void update_leds() { }
Expand All @@ -79,7 +79,7 @@ class TestTimerLEDDevice : public TestDeviceBase
}

uint32_t current_millis = 0;
uint32_t millis() const override
uint32_t milliseconds_since_start() const override
{
return current_millis;
}
Expand Down
4 changes: 2 additions & 2 deletions core/util/timer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ void Timer::start(const Device& device)
{
running = true;
time_remaining = duration;
start_time = device.millis();
start_time = device.milliseconds_since_start();
}

void Timer::update(const Device& device)
{
if (running)
{
uint32_t current_time = device.millis();
uint32_t current_time = device.milliseconds_since_start();
uint32_t elapsed = current_time - start_time;
time_remaining = duration - elapsed;
if (elapsed >= duration)
Expand Down
2 changes: 1 addition & 1 deletion device.h
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ class Device
/**
* Milliseconds since the device was started.
*/
virtual uint32_t millis() const = 0;
virtual uint32_t milliseconds_since_start() const = 0;

virtual void set_led(uint16_t index, uint8_t r, uint8_t g, uint8_t b) = 0;
virtual void update_leds() = 0;
Expand Down
2 changes: 1 addition & 1 deletion simulator/simulator_device.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ void SimulatorDevice::set_led(uint16_t index, uint8_t r, uint8_t g, uint8_t b)
void SimulatorDevice::update_leds()
{ }

uint32_t SimulatorDevice::millis() const
uint32_t SimulatorDevice::milliseconds_since_start() const
{
return std::chrono::high_resolution_clock::now().time_since_epoch().count() / 1000000;
}
Expand Down
2 changes: 1 addition & 1 deletion simulator/simulator_device.h
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ class SimulatorDevice : public Device

virtual void start_timer() override;
virtual uint32_t get_timer_micros() override;
virtual uint32_t millis() const override;
virtual uint32_t milliseconds_since_start() const override;

virtual void set_led(uint16_t index, uint8_t r, uint8_t g, uint8_t b) override;
virtual void update_leds() override;
Expand Down
2 changes: 1 addition & 1 deletion teensy_device.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ uint32_t TeensyDevice::get_timer_micros()
return micros() - start_time;
}

uint32_t TeensyDevice::millis() const
uint32_t TeensyDevice::milliseconds_since_start() const
{
return millis();
}
Expand Down
2 changes: 1 addition & 1 deletion teensy_device.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ class TeensyDevice : public Device

virtual void start_timer() override;
virtual uint32_t get_timer_micros() override;
virtual uint32_t millis() const override;
virtual uint32_t milliseconds_since_start() const override;

virtual void set_led(uint16_t index, uint8_t r, uint8_t g, uint8_t b) override;
virtual void update_leds() override;
Expand Down

0 comments on commit 60e0fae

Please sign in to comment.