Prusa-Firmware-MMU/src/modules/user_input.cpp

48 lines
991 B
C++

/// @file user_input.cpp
#include "user_input.h"
#include "buttons.h"
namespace modules {
namespace user_input {
UserInput userInput;
void UserInput::Step() {
if (buttons::buttons.ButtonPressed(mb::Left))
eventQueue.push(Event::Left);
if (buttons::buttons.ButtonPressed(mb::Middle))
eventQueue.push(Event::Middle);
if (buttons::buttons.ButtonPressed(mb::Right))
eventQueue.push(Event::Right);
}
void UserInput::ProcessMessage(uint8_t ev) {
eventQueue.push((Event)ev);
}
Event UserInput::ConsumeEvent() {
if (printerInCharge) {
return Event::NoEvent;
} else {
return ConsumeEventForPrinter();
}
}
Event UserInput::ConsumeEventForPrinter() {
if (eventQueue.empty())
return Event::NoEvent;
Event rv;
eventQueue.pop(rv);
return rv;
}
void UserInput::Clear() {
while (!eventQueue.empty()) {
Event x;
eventQueue.pop(x);
}
}
} // namespace user_input
} // namespace modules