refactor main menu
This commit is contained in:
@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user