
Die Klasse Keyboard stellt die Abstraktion der Tastatur dar.Sie sorgt für die korrekte Initialisierung und vor allem für die Unterbrechungsbehandlung. Später wird Keyboard auch die Tastaturabfrage durch die Anwendung ermöglichen. Mehr ...
#include <device/keyboard.h>
Öffentliche Methoden | |
Keyboard () | |
Konstruktor. Mehr ... | |
void | plugin () |
'Anstöpseln' der Tastatur. Mehr ... | |
bool | prologue () |
Prolog der Tastaturunterbrechung. Mehr ... | |
void | epilogue () |
Epilog der Tastaturunterbrechung. Mehr ... | |
![]() | |
Gate () | |
Konstruktor. Mehr ... | |
virtual | ~Gate () |
Destruktor. Mehr ... | |
bool | set_queued () |
Setzt atomar ein Flag um zu markieren, dass sich das Objekt gerade in einer Epilog-Warteschlange befindet. Mehr ... | |
void | set_dequeued () |
Setzt das in set_queued() gesetzte Flag zurück. Mehr ... | |
![]() | |
Keyboard_Controller () | |
Konstruktor; Initialisierung der Tastatur. Mehr ... | |
Key | key_hit () |
Dient der Tastaturabfrage nach dem Auftreten einer Tastatur- unterbrechung. Mehr ... | |
void | set_repeat_rate (int speed, int delay) |
Funktion zum Einstellen der Wiederholungsrate der Tastatur. Mehr ... | |
void | set_led (LED led, bool on) |
Setzt oder löscht die angegebene Leuchtdiode. Mehr ... | |
Weitere Geerbte Elemente | |
![]() | |
enum | LED { LED_SCROLL_LOCK = 1 << 0, LED_NUM_LOCK = 1 << 1, LED_CAPS_LOCK = 1 << 2 } |
Namen der LEDs. Mehr ... | |
![]() | |
static void | reboot () |
Führt einen Neustart des Rechners durch. Ja, beim PC macht das der Tastaturcontroller. Mehr ... | |
![]() | |
QueueLink< Gate > | queue_link |
Verkettungszeiger für Epilog Queue. | |
![]() | |
void | drainKeyboardBuffer () |
Leert den Tastaturpuffer vollständig. Mehr ... | |
![]() | |
Key_Decoder () | |
Konstruktor für den Tastendekoder. | |
Key | decode (unsigned char code) |
Interpretiert die Make und Break-Codes der Tastatur und liefert den Scancode und Informationen darüber, welche zusätzlichen Tasten wie Shift und Ctrl gedrückt wurden. Mehr ... | |
![]() | |
static void | send_command (unsigned char cmd, unsigned char data) |
Sendet einen Befehl an den Tastaturprozessor. Mehr ... | |
static void | send_byte (unsigned char byte) |
Sendet ein Datum an den Tastaturprozessor. Mehr ... | |
![]() | |
bool | status [Key::Scancode::KEYS] |
Aktueller Status (gedrückt oder losgelassen) der Tasten. | |
Die Klasse Keyboard stellt die Abstraktion der Tastatur dar.
Sie sorgt für die korrekte Initialisierung und vor allem für die Unterbrechungsbehandlung. Später wird Keyboard auch die Tastaturabfrage durch die Anwendung ermöglichen.
|
inline |
Konstruktor.
|
virtual |
Epilog der Tastaturunterbrechung.
Hier wird das im Rahmen der Prolog-Behandlung ausgelesene Zeichen auf dem Bildschirm mit Hilfe des globalen CGA_Stream Objekts kout
ausgegeben.
Erneute Implementation von Gate.
void Keyboard::plugin | ( | ) |
|
virtual |
Prolog der Tastaturunterbrechung.
Mit dieser Methode wird auf die Unterbrechungen durch die Tastatur reagiert. Da bei jedem Tastendruck mehrere Unterbrechungen ausgelöst werden, ist nicht in jedem Fall mit einem verwertbaren ASCII Code zu rechnen. Nur wenn die Methode Keyboard_Controller::key_hit einen gültigen Key liefert, konnte ein vollständiger Scancode ermittelt werden und soll die Ausgabe des Zeichens angefordert werden.
Weiterhin muss sichergestellt werden, dass ein gültiger Key nicht durch einen nachfolgenden Prolog überschrieben wird, bevor er ausgegeben wurde.
Implementiert Gate.