implement first real menu
This commit is contained in:
@ -8,20 +8,69 @@
|
||||
#include "user/demo/TextDemo.h"
|
||||
#include "user/demo/VBEdemo.h"
|
||||
|
||||
void MainMenu::run() {
|
||||
kout << "Main Menu" << endl;
|
||||
void print_demo_menu() {
|
||||
kout << "Demo Menu, press number to start, k to kill:\n"
|
||||
<< "1 - Text Demo\n"
|
||||
<< "2 - PCSPK Demo\n"
|
||||
<< "3 - Keyboard Demo\n"
|
||||
<< "4 - Heap Demo\n"
|
||||
<< "5 - VBE Demo\n"
|
||||
<< "6 - Bluescreen Demo\n"
|
||||
<< "7 - Preemption Demo\n"
|
||||
<< endl;
|
||||
}
|
||||
|
||||
// Demos
|
||||
// scheduler.ready(new TextDemo());
|
||||
// scheduler.ready(new PCSPKdemo(&PCSPK::aerodynamic));
|
||||
// scheduler.ready(new KeyboardDemo());
|
||||
// scheduler.ready(new HeapDemo());
|
||||
// scheduler.ready(new VBEdemo());
|
||||
// scheduler.ready(new BlueScreenDemo());
|
||||
scheduler.ready(new PreemptiveThreadDemo(3));
|
||||
void MainMenu::run() {
|
||||
kout.clear();
|
||||
print_demo_menu();
|
||||
|
||||
char input = '\0';
|
||||
Thread* choosen_demo = NULL;
|
||||
while (true) {
|
||||
|
||||
input = this->listener.waitForKeyEvent();
|
||||
|
||||
switch (input) {
|
||||
case '1':
|
||||
choosen_demo = new TextDemo();
|
||||
break;
|
||||
case '2':
|
||||
choosen_demo = new PCSPKdemo(&PCSPK::aerodynamic);
|
||||
break;
|
||||
case '3':
|
||||
choosen_demo = new KeyboardDemo();
|
||||
break;
|
||||
case '4':
|
||||
choosen_demo = new HeapDemo();
|
||||
break;
|
||||
case '5':
|
||||
choosen_demo = new VBEdemo();
|
||||
break;
|
||||
case '6':
|
||||
choosen_demo = new BlueScreenDemo();
|
||||
break;
|
||||
case '7':
|
||||
choosen_demo = new PreemptiveThreadDemo(3);
|
||||
break;
|
||||
case 'k':
|
||||
if (choosen_demo != NULL) {
|
||||
scheduler.kill(choosen_demo);
|
||||
delete choosen_demo;
|
||||
choosen_demo = NULL;
|
||||
}
|
||||
kout.clear();
|
||||
print_demo_menu();
|
||||
break;
|
||||
}
|
||||
|
||||
if (choosen_demo != NULL) {
|
||||
scheduler.ready(choosen_demo);
|
||||
}
|
||||
}
|
||||
|
||||
// Extra demos
|
||||
// scheduler.ready(new ArrayListDemo());
|
||||
|
||||
scheduler.exit();
|
||||
// This thread won't be deleted...
|
||||
}
|
||||
|
Reference in New Issue
Block a user