1

refactor main menu

This commit is contained in:
2022-07-17 01:16:09 +02:00
parent 9a0bb01c6d
commit 931c9552b7

View File

@ -27,45 +27,46 @@ void MainMenu::run() {
char input = '\0'; char input = '\0';
Thread* choosen_demo = NULL; Thread* choosen_demo = NULL;
while (true) { while (true) {
input = this->listener.waitForKeyEvent(); input = this->listener.waitForKeyEvent();
switch (input) { if (choosen_demo == NULL) {
case '1': switch (input) {
choosen_demo = new TextDemo(); case '1':
break; choosen_demo = new TextDemo();
case '2': break;
choosen_demo = new PCSPKdemo(&PCSPK::aerodynamic); case '2':
break; choosen_demo = new PCSPKdemo(&PCSPK::aerodynamic);
case '3': break;
choosen_demo = new KeyboardDemo(); case '3':
break; choosen_demo = new KeyboardDemo();
case '4': break;
choosen_demo = new HeapDemo(); case '4':
break; choosen_demo = new HeapDemo();
case '5': break;
choosen_demo = new VBEdemo(); case '5':
break; choosen_demo = new VBEdemo();
case '6': break;
choosen_demo = new BlueScreenDemo(); case '6':
break; choosen_demo = new BlueScreenDemo();
case '7': break;
choosen_demo = new PreemptiveThreadDemo(3); case '7':
break; choosen_demo = new PreemptiveThreadDemo(3);
case 'k': break;
if (choosen_demo != NULL) {
scheduler.kill(choosen_demo);
delete choosen_demo;
choosen_demo = NULL;
} }
if (choosen_demo != NULL) {
// We actually chose something
scheduler.ready(choosen_demo);
}
} else if (input == 'k') {
scheduler.kill(choosen_demo); // NOTE: If thread exits itself this will throw error
choosen_demo = NULL;
kout.clear(); kout.clear();
print_demo_menu(); print_demo_menu();
break;
} }
if (choosen_demo != NULL) { input = '\0';
scheduler.ready(choosen_demo);
}
} }
// Extra demos // Extra demos