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

pull/29/head
D.R.racer 2021-06-29 12:20:24 +02:00
parent 42e4d24db2
commit b76a99b7b4
2 changed files with 11 additions and 11 deletions

View File

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

View File

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