Handle buttons & encoders in View, not Model
This commit is contained in:
@ -6,38 +6,6 @@
|
||||
#include <gui/model/Model.hpp>
|
||||
#include <gui/model/ModelListener.hpp>
|
||||
|
||||
Model::Model() : modelListener(0), mission{MISSION_NONE} {}
|
||||
Model::Model() : modelListener(0) {}
|
||||
|
||||
void Model::tick() {
|
||||
UIMessage msg;
|
||||
while (tx_queue_receive(&ui_queue, &msg, TX_NO_WAIT) == TX_SUCCESS) {
|
||||
switch (msg.kind) {
|
||||
case UMK_BTN_RELEASED:
|
||||
// TODO: What do we do with this?
|
||||
break;
|
||||
case UMK_ENC_CW: {
|
||||
int mission_int = static_cast<int>(mission);
|
||||
mission_int++;
|
||||
// mission_int = 0 is MISSION_NONE, which we don't want to select.
|
||||
// NUM_MISSIONS is equal to the last mission, so check for strictly
|
||||
// greater.
|
||||
if (mission_int > NUM_MISSIONS) {
|
||||
mission_int = 1;
|
||||
}
|
||||
mission = static_cast<Mission>(mission_int);
|
||||
modelListener->notifyMissionChanged(mission);
|
||||
break;
|
||||
}
|
||||
case UMK_ENC_CCW:
|
||||
int mission_int = static_cast<int>(mission);
|
||||
mission_int--;
|
||||
if (mission_int <= 0) {
|
||||
mission_int = NUM_MISSIONS;
|
||||
}
|
||||
mission = static_cast<Mission>(mission_int);
|
||||
modelListener->notifyMissionChanged(mission);
|
||||
break;
|
||||
}
|
||||
HAL_GPIO_TogglePin(STATUS2_GPIO_Port, STATUS2_Pin);
|
||||
}
|
||||
}
|
||||
void Model::tick() {}
|
||||
|
||||
Reference in New Issue
Block a user