Rebase onto upstream/main, adapt to cleaned-up circular buffer interface

pull/37/head
D.R.racer 2021-06-29 12:20:24 +02:00 committed by DRracer
parent ffae941a28
commit 9122a33693
2 changed files with 11 additions and 11 deletions

View File

@ -8,29 +8,29 @@ UserInput userInput;
void UserInput::Step() { void UserInput::Step() {
if (buttons::buttons.ButtonPressed(0)) if (buttons::buttons.ButtonPressed(0))
eventQueue.push_back(Event::Left); eventQueue.push(Event::Left);
if (buttons::buttons.ButtonPressed(1)) if (buttons::buttons.ButtonPressed(1))
eventQueue.push_back(Event::Middle); eventQueue.push(Event::Middle);
if (buttons::buttons.ButtonPressed(2)) if (buttons::buttons.ButtonPressed(2))
eventQueue.push_back(Event::Right); eventQueue.push(Event::Right);
} }
void UserInput::ProcessMessage(uint8_t ev) { void UserInput::ProcessMessage(uint8_t ev) {
eventQueue.push_back((Event)ev); eventQueue.push((Event)ev);
} }
Event UserInput::ConsumeEvent() { Event UserInput::ConsumeEvent() {
if (eventQueue.IsEmpty()) if (eventQueue.empty())
return Event::NoEvent; return Event::NoEvent;
Event rv; Event rv;
eventQueue.ConsumeFirst(rv); eventQueue.pop(rv);
return rv; return rv;
} }
void UserInput::Clear() { void UserInput::Clear() {
while (!eventQueue.IsEmpty()) { while (!eventQueue.empty()) {
Event x; Event x;
eventQueue.ConsumeFirst(x); eventQueue.pop(x);
} }
} }

View File

@ -1,6 +1,6 @@
#pragma once #pragma once
#include <stdint.h> #include <stdint.h>
#include "../hal/circle_buffer.hpp" #include "../hal/circular_buffer.h"
namespace modules { namespace modules {
@ -29,13 +29,13 @@ public:
Event ConsumeEvent(); Event ConsumeEvent();
/// @returns true if there is at least one event in the event queue /// @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 /// Remove all buffered events from the event queue
void Clear(); void Clear();
private: private:
CircleBuffer<Event, 4> eventQueue; CircularBuffer<Event, uint_fast8_t, 4> eventQueue;
}; };
extern UserInput userInput; extern UserInput userInput;