Rebase onto upstream/main, adapt to cleaned-up circular buffer interface
parent
ffae941a28
commit
9122a33693
|
|
@ -8,29 +8,29 @@ UserInput userInput;
|
|||
|
||||
void UserInput::Step() {
|
||||
if (buttons::buttons.ButtonPressed(0))
|
||||
eventQueue.push_back(Event::Left);
|
||||
eventQueue.push(Event::Left);
|
||||
if (buttons::buttons.ButtonPressed(1))
|
||||
eventQueue.push_back(Event::Middle);
|
||||
eventQueue.push(Event::Middle);
|
||||
if (buttons::buttons.ButtonPressed(2))
|
||||
eventQueue.push_back(Event::Right);
|
||||
eventQueue.push(Event::Right);
|
||||
}
|
||||
|
||||
void UserInput::ProcessMessage(uint8_t ev) {
|
||||
eventQueue.push_back((Event)ev);
|
||||
eventQueue.push((Event)ev);
|
||||
}
|
||||
|
||||
Event UserInput::ConsumeEvent() {
|
||||
if (eventQueue.IsEmpty())
|
||||
if (eventQueue.empty())
|
||||
return Event::NoEvent;
|
||||
Event rv;
|
||||
eventQueue.ConsumeFirst(rv);
|
||||
eventQueue.pop(rv);
|
||||
return rv;
|
||||
}
|
||||
|
||||
void UserInput::Clear() {
|
||||
while (!eventQueue.IsEmpty()) {
|
||||
while (!eventQueue.empty()) {
|
||||
Event x;
|
||||
eventQueue.ConsumeFirst(x);
|
||||
eventQueue.pop(x);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#pragma once
|
||||
#include <stdint.h>
|
||||
#include "../hal/circle_buffer.hpp"
|
||||
#include "../hal/circular_buffer.h"
|
||||
|
||||
namespace modules {
|
||||
|
||||
|
|
@ -29,13 +29,13 @@ public:
|
|||
Event ConsumeEvent();
|
||||
|
||||
/// @returns true if there is at least one event in the event queue
|
||||
bool AnyEvent() const { return !eventQueue.IsEmpty(); }
|
||||
bool AnyEvent() const { return !eventQueue.empty(); }
|
||||
|
||||
/// Remove all buffered events from the event queue
|
||||
void Clear();
|
||||
|
||||
private:
|
||||
CircleBuffer<Event, 4> eventQueue;
|
||||
CircularBuffer<Event, uint_fast8_t, 4> eventQueue;
|
||||
};
|
||||
|
||||
extern UserInput userInput;
|
||||
|
|
|
|||
Loading…
Reference in New Issue