update vorgabe04
This commit is contained in:
@ -73,16 +73,18 @@ bool Keyboard::key_decoded() {
|
||||
gather.shift(false);
|
||||
break;
|
||||
case 56:
|
||||
if (prefix == prefix1)
|
||||
if (prefix == prefix1) {
|
||||
gather.alt_right(false);
|
||||
else
|
||||
} else {
|
||||
gather.alt_left(false);
|
||||
}
|
||||
break;
|
||||
case 29:
|
||||
if (prefix == prefix1)
|
||||
if (prefix == prefix1) {
|
||||
gather.ctrl_right(false);
|
||||
else
|
||||
} else {
|
||||
gather.ctrl_left(false);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@ -108,16 +110,18 @@ bool Keyboard::key_decoded() {
|
||||
gather.shift(true);
|
||||
break;
|
||||
case 56:
|
||||
if (prefix == prefix1)
|
||||
if (prefix == prefix1) {
|
||||
gather.alt_right(true);
|
||||
else
|
||||
} else {
|
||||
gather.alt_left(true);
|
||||
}
|
||||
break;
|
||||
case 29:
|
||||
if (prefix == prefix1)
|
||||
if (prefix == prefix1) {
|
||||
gather.ctrl_right(true);
|
||||
else
|
||||
} else {
|
||||
gather.ctrl_left(true);
|
||||
}
|
||||
break;
|
||||
case 58:
|
||||
gather.caps_lock(!gather.caps_lock());
|
||||
@ -153,10 +157,7 @@ bool Keyboard::key_decoded() {
|
||||
// Also ist es jetzt abgehandelt.
|
||||
prefix = 0;
|
||||
|
||||
if (done)
|
||||
return true; // Tastaturabfrage abgeschlossen
|
||||
else
|
||||
return false;
|
||||
return done;
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
@ -333,9 +334,8 @@ void Keyboard::plugin() {
|
||||
void scroll_mode(Key key);
|
||||
|
||||
void Keyboard::trigger() {
|
||||
// TODO: Get data from PS/2 Mouse if necessary
|
||||
|
||||
Key key = this->key_hit();
|
||||
this->lastkey = key.ascii();
|
||||
|
||||
// NOTE: My keyboard has no delete key...
|
||||
if (key.ctrl_left() && key.alt_left() && (char)key == 'r') {
|
||||
@ -343,8 +343,6 @@ void Keyboard::trigger() {
|
||||
} else if ((char)key == 'k' || (char)key == 'j') {
|
||||
scroll_mode(key);
|
||||
}
|
||||
|
||||
// TODO: Keyboard insert mode
|
||||
}
|
||||
|
||||
// TODO: Where to place this?
|
||||
|
||||
@ -6,21 +6,19 @@
|
||||
* Beschreibung: Treiber für den Tastaturcontroller des PCs. *
|
||||
* *
|
||||
* Autor: Olaf Spinczyk, TU Dortmund *
|
||||
* Modifikationen, Michael Schoettner, 17.8.2016 *
|
||||
* Modifikationen, Michael Schoettner, 2.6.2022 *
|
||||
*****************************************************************************/
|
||||
#ifndef __Keyboard_include__
|
||||
#define __Keyboard_include__
|
||||
|
||||
#include "devices/Key.h"
|
||||
#include "kernel/interrupts/IntDispatcher.h"
|
||||
#include "kernel/interrupts/ISR.h"
|
||||
#include "kernel/interrupts/PIC.h"
|
||||
#include "kernel/IOport.h"
|
||||
|
||||
class Keyboard : public ISR {
|
||||
|
||||
private:
|
||||
Keyboard(const Keyboard& copy); // Verhindere Kopieren
|
||||
Keyboard(const Keyboard& copy) = delete; // Verhindere Kopieren
|
||||
|
||||
unsigned char code; // Byte von Tastatur
|
||||
unsigned char prefix; // Prefix von Tastatur
|
||||
@ -73,13 +71,15 @@ private:
|
||||
// Ermittelt anhand von Tabellen den ASCII-Code.
|
||||
void get_ascii_code();
|
||||
|
||||
public:
|
||||
// Initialisierung der Tastatur.
|
||||
Keyboard();
|
||||
|
||||
// Tastaturabfrage (vorerst Polling)
|
||||
Key key_hit();
|
||||
|
||||
public:
|
||||
unsigned int lastkey; // speichert den ASCII-Code der zuletzt gedrückten Taste
|
||||
|
||||
// Initialisierung der Tastatur.
|
||||
Keyboard();
|
||||
|
||||
// Fuehrt einen Neustart des Rechners durch.
|
||||
void reboot();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user