Input: refactoring, platform agnostic key configuration.

Update input usage across project. Minor queue usage fixes and tick timings. (#330)
This commit is contained in:
あく
2021-02-10 11:56:05 +03:00
committed by GitHub
parent 5dbe2983aa
commit 8b94eff7f9
36 changed files with 347 additions and 334 deletions

View File

@@ -57,8 +57,8 @@ public:
void render(Canvas* canvas);
template <class T> void set_text(std::initializer_list<T> list);
template <class T> void set_error(std::initializer_list<T> list);
void wait_for_button(Input input_button);
bool ask(Input input_button_cancel, Input input_button_ok);
void wait_for_button(InputKey input_button);
bool ask(InputKey input_button_cancel, InputKey input_button_ok);
void blink_red();
void set_red();
void blink_green();
@@ -145,7 +145,7 @@ void SdTest::run() {
"",
"press BACK to exit",
});
wait_for_button(InputBack);
wait_for_button(InputKeyBack);
exit();
}
@@ -184,9 +184,9 @@ void SdTest::show_warning() {
"",
"press UP DOWN OK to continue"});
wait_for_button(InputUp);
wait_for_button(InputDown);
wait_for_button(InputOk);
wait_for_button(InputKeyUp);
wait_for_button(InputKeyDown);
wait_for_button(InputKeyOk);
}
// get info about sd card, label, sn
@@ -216,7 +216,7 @@ void SdTest::get_sd_card_info() {
blink_green();
wait_for_button(InputOk);
wait_for_button(InputKeyOk);
}
// prepare benchmark data (allocate data in ram)
@@ -296,7 +296,7 @@ void SdTest::write_benchmark() {
blink_green();
wait_for_button(InputOk);
wait_for_button(InputKeyOk);
}
uint32_t SdTest::write_benchmark_internal(const uint32_t size, const uint32_t count, bool silent) {
@@ -436,7 +436,7 @@ void SdTest::read_benchmark() {
blink_green();
wait_for_button(InputOk);
wait_for_button(InputKeyOk);
}
uint32_t SdTest::read_benchmark_internal(
@@ -590,7 +590,7 @@ void SdTest::hash_benchmark() {
blink_green();
wait_for_button(InputOk);
wait_for_button(InputKeyOk);
}
void SdTest::cli_read_benchmark(string_t args, void* _ctx) {
@@ -786,18 +786,18 @@ void SdTest::cli_write_benchmark(string_t args, void* _ctx) {
}
// wait for button press
void SdTest::wait_for_button(Input input_button) {
void SdTest::wait_for_button(InputKey input_button) {
SdTestEvent event;
osMessageQueueReset(event_queue);
while(1) {
osStatus_t result = osMessageQueueGet(event_queue, &event, NULL, osWaitForever);
if(result == osOK && event.type == SdTestEvent::EventTypeKey) {
if(event.value.input.state == true) {
if(event.value.input.input == InputBack) {
if(event.value.input.type == InputTypeShort) {
if(event.value.input.key == InputKeyBack) {
exit();
} else {
if(event.value.input.input == input_button) {
if(event.value.input.key == input_button) {
blink_green();
break;
} else {
@@ -811,7 +811,7 @@ void SdTest::wait_for_button(Input input_button) {
}
// ask user to proceed or cancel
bool SdTest::ask(Input input_button_cancel, Input input_button_ok) {
bool SdTest::ask(InputKey input_button_cancel, InputKey input_button_ok) {
bool return_result;
SdTestEvent event;
osMessageQueueReset(event_queue);
@@ -819,15 +819,15 @@ bool SdTest::ask(Input input_button_cancel, Input input_button_ok) {
osStatus_t result = osMessageQueueGet(event_queue, &event, NULL, osWaitForever);
if(result == osOK && event.type == SdTestEvent::EventTypeKey) {
if(event.value.input.state == true) {
if(event.value.input.input == InputBack) {
if(event.value.input.type == InputTypeShort) {
if(event.value.input.key == InputKeyBack) {
exit();
} else {
if(event.value.input.input == input_button_ok) {
if(event.value.input.key == input_button_ok) {
blink_green();
return_result = true;
break;
} else if(event.value.input.input == input_button_cancel) {
} else if(event.value.input.key == input_button_cancel) {
blink_green();
return_result = false;
break;
@@ -865,7 +865,7 @@ void SdTest::blink_green() {
template <class T> void SdTest::set_error(std::initializer_list<T> list) {
set_text(list);
set_red();
wait_for_button(InputBack);
wait_for_button(InputKeyBack);
exit();
}