KallistiOS git master
Independent SDK for the Sega Dreamcast
Loading...
Searching...
No Matches
keyboard.h File Reference

Definitions for using the keyboard device. More...

#include <sys/cdefs.h>
#include <arch/types.h>
#include <dc/maple.h>
#include <kos/regfield.h>
#include <stdbool.h>
#include <stdint.h>

Go to the source code of this file.

Data Structures

union  kbd_mods_t
 Modifier Keys. More...
 
union  kbd_leds_t
 Keyboard LEDs. More...
 
struct  kbd_cond_t
 Keyboard raw condition structure. More...
 
struct  kbd_state_t
 Keyboard status structure. More...
 

Macros

#define KBD_MOD_LCTRL   BIT(0)
 Left Control key.
 
#define KBD_MOD_LSHIFT   BIT(1)
 Left Shift key.
 
#define KBD_MOD_LALT   BIT(2)
 Left alternate key.
 
#define KBD_MOD_S1   BIT(3)
 S1 key.
 
#define KBD_MOD_RCTRL   BIT(4)
 Right Control key.
 
#define KBD_MOD_RSHIFT   BIT(5)
 Right Shift key.
 
#define KBD_MOD_RALT   BIT(6)
 Right Alternate key.
 
#define KBD_MOD_S2   BIT(7)
 S2 key.
 
#define KBD_MOD_CTRL   (KBD_MOD_LCTRL | KBD_MOD_RCTRL)
 Either Control key.
 
#define KBD_MOD_SHIFT   (KBD_MOD_LSHIFT | KBD_MOD_RSHIFT)
 Either Shift key.
 
#define KBD_MOD_ALT   (KBD_MOD_LALT | KBD_MOD_RALT)
 Either Alternate key.
 
#define KBD_LED_NUMLOCK   BIT(0)
 Num Lock LED.
 
#define KBD_LED_CAPSLOCK   BIT(1)
 Caps Lock LED.
 
#define KBD_LED_SCRLOCK   BIT(2)
 Scroll Lock LED.
 
#define KBD_LED_UNKNOWN1   BIT(3)
 Unknown LED 1.
 
#define KBD_LED_UNKNOWN2   BIT(4)
 Unknown LED 2.
 
#define KBD_LED_KANA   BIT(5)
 Kana LED.
 
#define KBD_LED_POWER   BIT(6)
 Power LED.
 
#define KBD_LED_SHIFT   BIT(7)
 Shift LED.
 
#define KEY_STATE_NONE   0
 
#define KEY_STATE_WAS_PRESSED   1
 
#define KEY_STATE_PRESSED   2
 
#define MAX_PRESSED_KEYS   6
 Maximum number of keys the DC can read simultaneously.
 
#define KBD_MAX_KEYS   256
 Maximum number of keys a DC keyboard can have.
 
#define KBD_QUEUE_SIZE   16
 Size of a keyboard queue.
 
#define KBD_QUEUE_END   -1
 Delimiter value for kbd_queue_pop()
 

Typedefs

typedef enum __packed kbd_key kbd_key_t
 Raw Keyboard Key Identifiers.
 
typedef void kbd_keymap_t("Please open an issue, there should be no reason for external code to have used this.")
 

Enumerations

enum  kbd_region_t {
  KBD_REGION_JP = 1 , KBD_REGION_US = 2 , KBD_REGION_UK = 3 , KBD_REGION_DE = 4 ,
  KBD_REGION_FR = 5 , KBD_REGION_IT = 6 , KBD_REGION_ES = 7
}
 Region Codes for the Dreamcast keyboard. More...
 

Functions

char kbd_key_to_ascii (kbd_key_t key, kbd_region_t region, kbd_mods_t mods, kbd_leds_t leds)
 Converts a kbd_key_t value into its corresponding ASCII value.
 
static const int MAX_KBD_KEYS ("Please use KBD_MAX_KEYS.")
 
kbd_state_tkbd_get_state (maple_device_t *device)
 Retrieves the keyboard state from a maple device.
 
void kbd_set_repeat_timing (uint16_t start, uint16_t interval)
 Configures held key auto-repeat intervals.
 
int kbd_queue_pop (maple_device_t *dev, bool xlat)
 Pop a key off a specific keyboard's queue.
 
void kbd_set_queue (int active) __deprecated
 Activate or deactivate global key queueing.
 
int kbd_get_key (void) __deprecated
 Pop a key off the global keyboard queue.
 

Variables

enum __packed kbd_key
 Raw Keyboard Key Identifiers.
 
 KBD_KEY_NONE = 0x00
 No key.
 
 KBD_KEY_ERROR = 0x01
 ERROR_ROLLOVER.
 
 KBD_KEY_ERR2 = 0x02
 Unknown error.
 
 KBD_KEY_ERR3 = 0x03
 Unknown error.
 
 KBD_KEY_A = 0x04
 A key.
 
 KBD_KEY_B = 0x05
 B key.
 
 KBD_KEY_C = 0x06
 C key.
 
 KBD_KEY_D = 0x07
 D key.
 
 KBD_KEY_E = 0x08
 E key.
 
 KBD_KEY_F = 0x09
 F key.
 
 KBD_KEY_G = 0x0a
 G key.
 
 KBD_KEY_H = 0x0b
 H key.
 
 KBD_KEY_I = 0x0c
 I key.
 
 KBD_KEY_J = 0x0d
 J key.
 
 KBD_KEY_K = 0x0e
 K key.
 
 KBD_KEY_L = 0x0f
 L key.
 
 KBD_KEY_M = 0x10
 M key.
 
 KBD_KEY_N = 0x11
 N key.
 
 KBD_KEY_O = 0x12
 O key.
 
 KBD_KEY_P = 0x13
 P key.
 
 KBD_KEY_Q = 0x14
 Q key.
 
 KBD_KEY_R = 0x15
 R key.
 
 KBD_KEY_S = 0x16
 S key.
 
 KBD_KEY_T = 0x17
 T key.
 
 KBD_KEY_U = 0x18
 U key.
 
 KBD_KEY_V = 0x19
 V key.
 
 KBD_KEY_W = 0x1a
 W key.
 
 KBD_KEY_X = 0x1b
 X key.
 
 KBD_KEY_Y = 0x1c
 Y key.
 
 KBD_KEY_Z = 0x1d
 Z key.
 
 KBD_KEY_1 = 0x1e
 1 key
 
 KBD_KEY_2 = 0x1f
 2 key
 
 KBD_KEY_3 = 0x20
 3 key
 
 KBD_KEY_4 = 0x21
 4 key
 
 KBD_KEY_5 = 0x22
 5 key
 
 KBD_KEY_6 = 0x23
 6 key
 
 KBD_KEY_7 = 0x24
 7 key
 
 KBD_KEY_8 = 0x25
 8 key
 
 KBD_KEY_9 = 0x26
 9 key
 
 KBD_KEY_0 = 0x27
 0 key
 
 KBD_KEY_ENTER = 0x28
 Enter key.
 
 KBD_KEY_ESCAPE = 0x29
 Escape key.
 
 KBD_KEY_BACKSPACE = 0x2a
 Backspace key.
 
 KBD_KEY_TAB = 0x2b
 Tab key.
 
 KBD_KEY_SPACE = 0x2c
 Space key.
 
 KBD_KEY_MINUS = 0x2d
 Minus key.
 
 KBD_KEY_PLUS = 0x2e
 Plus key.
 
 KBD_KEY_LBRACKET = 0x2f
 Left Bracket key.
 
 KBD_KEY_RBRACKET = 0x30
 Right Bracket key.
 
 KBD_KEY_BACKSLASH = 0x31
 Backslash key.
 
 KBD_KEY_SEMICOLON = 0x33
 Semicolon key.
 
 KBD_KEY_QUOTE = 0x34
 Double Quote key.
 
 KBD_KEY_TILDE = 0x35
 Tilde key.
 
 KBD_KEY_COMMA = 0x36
 Comma key.
 
 KBD_KEY_PERIOD = 0x37
 Period key.
 
 KBD_KEY_SLASH = 0x38
 Slash key.
 
 KBD_KEY_CAPSLOCK = 0x39
 Caps Lock key.
 
 KBD_KEY_F1 = 0x3a
 F1 key.
 
 KBD_KEY_F2 = 0x3b
 F2 key.
 
 KBD_KEY_F3 = 0x3c
 F3 key.
 
 KBD_KEY_F4 = 0x3d
 F4 key.
 
 KBD_KEY_F5 = 0x3e
 F5 key.
 
 KBD_KEY_F6 = 0x3f
 F6 key.
 
 KBD_KEY_F7 = 0x40
 F7 key.
 
 KBD_KEY_F8 = 0x41
 F8 key.
 
 KBD_KEY_F9 = 0x42
 F9 key.
 
 KBD_KEY_F10 = 0x43
 F10 key.
 
 KBD_KEY_F11 = 0x44
 F11 key.
 
 KBD_KEY_F12 = 0x45
 F12 key.
 
 KBD_KEY_PRINT = 0x46
 Print Screen key.
 
 KBD_KEY_SCRLOCK = 0x47
 Scroll Lock key.
 
 KBD_KEY_PAUSE = 0x48
 Pause key.
 
 KBD_KEY_INSERT = 0x49
 Insert key.
 
 KBD_KEY_HOME = 0x4a
 Home key.
 
 KBD_KEY_PGUP = 0x4b
 Page Up key.
 
 KBD_KEY_DEL = 0x4c
 Delete key.
 
 KBD_KEY_END = 0x4d
 End key.
 
 KBD_KEY_PGDOWN = 0x4e
 Page Down key.
 
 KBD_KEY_RIGHT = 0x4f
 Right Arrow key.
 
 KBD_KEY_LEFT = 0x50
 Left Arrow key.
 
 KBD_KEY_DOWN = 0x51
 Down Arrow key.
 
 KBD_KEY_UP = 0x52
 Up Arrow key.
 
 KBD_KEY_PAD_NUMLOCK = 0x53
 Keypad Numlock key.
 
 KBD_KEY_PAD_DIVIDE = 0x54
 Keypad Divide key.
 
 KBD_KEY_PAD_MULTIPLY = 0x55
 Keypad Multiply key.
 
 KBD_KEY_PAD_MINUS = 0x56
 Keypad Minus key.
 
 KBD_KEY_PAD_PLUS = 0x57
 Keypad Plus key.
 
 KBD_KEY_PAD_ENTER = 0x58
 Keypad Enter key.
 
 KBD_KEY_PAD_1 = 0x59
 Keypad 1 key.
 
 KBD_KEY_PAD_2 = 0x5a
 Keypad 2 key.
 
 KBD_KEY_PAD_3 = 0x5b
 Keypad 3 key.
 
 KBD_KEY_PAD_4 = 0x5c
 Keypad 4 key.
 
 KBD_KEY_PAD_5 = 0x5d
 Keypad 5 key.
 
 KBD_KEY_PAD_6 = 0x5e
 Keypad 6 key.
 
 KBD_KEY_PAD_7 = 0x5f
 Keypad 7 key.
 
 KBD_KEY_PAD_8 = 0x60
 Keypad 8 key.
 
 KBD_KEY_PAD_9 = 0x61
 Keypad 9 key.
 
 KBD_KEY_PAD_0 = 0x62
 Keypad 0 key.
 
 KBD_KEY_PAD_PERIOD = 0x63
 Keypad Period key.
 

Detailed Description

Definitions for using the keyboard device.

This file contains the definitions needed to access the Maple keyboard device. Obviously, this corresponds to the MAPLE_FUNC_KEYBOARD function code.

Author
Jordan DeLong
Megan Potter
Lawrence Sebald
Falco Girgis

Variable Documentation

◆ KBD_KEY_0

KBD_KEY_0 = 0x27

0 key

◆ KBD_KEY_1

KBD_KEY_1 = 0x1e

1 key

◆ KBD_KEY_2

KBD_KEY_2 = 0x1f

2 key

◆ KBD_KEY_3

KBD_KEY_3 = 0x20

3 key

◆ KBD_KEY_4

KBD_KEY_4 = 0x21

4 key

◆ KBD_KEY_5

KBD_KEY_5 = 0x22

5 key

◆ KBD_KEY_6

KBD_KEY_6 = 0x23

6 key

◆ KBD_KEY_7

KBD_KEY_7 = 0x24

7 key

◆ KBD_KEY_8

KBD_KEY_8 = 0x25

8 key

◆ KBD_KEY_9

KBD_KEY_9 = 0x26

9 key

◆ KBD_KEY_A

KBD_KEY_A = 0x04

A key.

◆ KBD_KEY_B

KBD_KEY_B = 0x05

B key.

◆ KBD_KEY_BACKSLASH

KBD_KEY_BACKSLASH = 0x31

Backslash key.

◆ KBD_KEY_BACKSPACE

KBD_KEY_BACKSPACE = 0x2a

Backspace key.

◆ KBD_KEY_C

KBD_KEY_C = 0x06

C key.

◆ KBD_KEY_CAPSLOCK

KBD_KEY_CAPSLOCK = 0x39

Caps Lock key.

◆ KBD_KEY_COMMA

KBD_KEY_COMMA = 0x36

Comma key.

◆ KBD_KEY_D

KBD_KEY_D = 0x07

D key.

◆ KBD_KEY_DEL

KBD_KEY_DEL = 0x4c

Delete key.

◆ KBD_KEY_DOWN

KBD_KEY_DOWN = 0x51

Down Arrow key.

◆ KBD_KEY_E

KBD_KEY_E = 0x08

E key.

◆ KBD_KEY_END

KBD_KEY_END = 0x4d

End key.

◆ KBD_KEY_ENTER

KBD_KEY_ENTER = 0x28

Enter key.

◆ KBD_KEY_ERR2

KBD_KEY_ERR2 = 0x02

Unknown error.

◆ KBD_KEY_ERR3

KBD_KEY_ERR3 = 0x03

Unknown error.

◆ KBD_KEY_ERROR

KBD_KEY_ERROR = 0x01

ERROR_ROLLOVER.

◆ KBD_KEY_ESCAPE

KBD_KEY_ESCAPE = 0x29

Escape key.

◆ KBD_KEY_F

KBD_KEY_F = 0x09

F key.

◆ KBD_KEY_F1

KBD_KEY_F1 = 0x3a

F1 key.

◆ KBD_KEY_F10

KBD_KEY_F10 = 0x43

F10 key.

◆ KBD_KEY_F11

KBD_KEY_F11 = 0x44

F11 key.

◆ KBD_KEY_F12

KBD_KEY_F12 = 0x45

F12 key.

◆ KBD_KEY_F2

KBD_KEY_F2 = 0x3b

F2 key.

◆ KBD_KEY_F3

KBD_KEY_F3 = 0x3c

F3 key.

◆ KBD_KEY_F4

KBD_KEY_F4 = 0x3d

F4 key.

◆ KBD_KEY_F5

KBD_KEY_F5 = 0x3e

F5 key.

◆ KBD_KEY_F6

KBD_KEY_F6 = 0x3f

F6 key.

◆ KBD_KEY_F7

KBD_KEY_F7 = 0x40

F7 key.

◆ KBD_KEY_F8

KBD_KEY_F8 = 0x41

F8 key.

◆ KBD_KEY_F9

KBD_KEY_F9 = 0x42

F9 key.

◆ KBD_KEY_G

KBD_KEY_G = 0x0a

G key.

◆ KBD_KEY_H

KBD_KEY_H = 0x0b

H key.

◆ KBD_KEY_HOME

KBD_KEY_HOME = 0x4a

Home key.

◆ KBD_KEY_I

KBD_KEY_I = 0x0c

I key.

◆ KBD_KEY_INSERT

KBD_KEY_INSERT = 0x49

Insert key.

◆ KBD_KEY_J

KBD_KEY_J = 0x0d

J key.

◆ KBD_KEY_K

KBD_KEY_K = 0x0e

K key.

◆ KBD_KEY_L

KBD_KEY_L = 0x0f

L key.

◆ KBD_KEY_LBRACKET

KBD_KEY_LBRACKET = 0x2f

Left Bracket key.

◆ KBD_KEY_LEFT

KBD_KEY_LEFT = 0x50

Left Arrow key.

◆ KBD_KEY_M

KBD_KEY_M = 0x10

M key.

◆ KBD_KEY_MINUS

KBD_KEY_MINUS = 0x2d

Minus key.

◆ KBD_KEY_N

KBD_KEY_N = 0x11

N key.

◆ KBD_KEY_NONE

KBD_KEY_NONE = 0x00

No key.

◆ KBD_KEY_O

KBD_KEY_O = 0x12

O key.

◆ KBD_KEY_P

KBD_KEY_P = 0x13

P key.

◆ KBD_KEY_PAD_0

KBD_KEY_PAD_0 = 0x62

Keypad 0 key.

◆ KBD_KEY_PAD_1

KBD_KEY_PAD_1 = 0x59

Keypad 1 key.

◆ KBD_KEY_PAD_2

KBD_KEY_PAD_2 = 0x5a

Keypad 2 key.

◆ KBD_KEY_PAD_3

KBD_KEY_PAD_3 = 0x5b

Keypad 3 key.

◆ KBD_KEY_PAD_4

KBD_KEY_PAD_4 = 0x5c

Keypad 4 key.

◆ KBD_KEY_PAD_5

KBD_KEY_PAD_5 = 0x5d

Keypad 5 key.

◆ KBD_KEY_PAD_6

KBD_KEY_PAD_6 = 0x5e

Keypad 6 key.

◆ KBD_KEY_PAD_7

KBD_KEY_PAD_7 = 0x5f

Keypad 7 key.

◆ KBD_KEY_PAD_8

KBD_KEY_PAD_8 = 0x60

Keypad 8 key.

◆ KBD_KEY_PAD_9

KBD_KEY_PAD_9 = 0x61

Keypad 9 key.

◆ KBD_KEY_PAD_DIVIDE

KBD_KEY_PAD_DIVIDE = 0x54

Keypad Divide key.

◆ KBD_KEY_PAD_ENTER

KBD_KEY_PAD_ENTER = 0x58

Keypad Enter key.

◆ KBD_KEY_PAD_MINUS

KBD_KEY_PAD_MINUS = 0x56

Keypad Minus key.

◆ KBD_KEY_PAD_MULTIPLY

KBD_KEY_PAD_MULTIPLY = 0x55

Keypad Multiply key.

◆ KBD_KEY_PAD_NUMLOCK

KBD_KEY_PAD_NUMLOCK = 0x53

Keypad Numlock key.

◆ KBD_KEY_PAD_PERIOD

KBD_KEY_PAD_PERIOD = 0x63

Keypad Period key.

◆ KBD_KEY_PAD_PLUS

KBD_KEY_PAD_PLUS = 0x57

Keypad Plus key.

◆ KBD_KEY_PAUSE

KBD_KEY_PAUSE = 0x48

Pause key.

◆ KBD_KEY_PERIOD

KBD_KEY_PERIOD = 0x37

Period key.

◆ KBD_KEY_PGDOWN

KBD_KEY_PGDOWN = 0x4e

Page Down key.

◆ KBD_KEY_PGUP

KBD_KEY_PGUP = 0x4b

Page Up key.

◆ KBD_KEY_PLUS

KBD_KEY_PLUS = 0x2e

Plus key.

◆ KBD_KEY_PRINT

KBD_KEY_PRINT = 0x46

Print Screen key.

◆ KBD_KEY_Q

KBD_KEY_Q = 0x14

Q key.

◆ KBD_KEY_QUOTE

KBD_KEY_QUOTE = 0x34

Double Quote key.

◆ KBD_KEY_R

KBD_KEY_R = 0x15

R key.

◆ KBD_KEY_RBRACKET

KBD_KEY_RBRACKET = 0x30

Right Bracket key.

◆ KBD_KEY_RIGHT

KBD_KEY_RIGHT = 0x4f

Right Arrow key.

◆ KBD_KEY_S

KBD_KEY_S = 0x16

S key.

◆ KBD_KEY_SCRLOCK

KBD_KEY_SCRLOCK = 0x47

Scroll Lock key.

◆ KBD_KEY_SEMICOLON

KBD_KEY_SEMICOLON = 0x33

Semicolon key.

◆ KBD_KEY_SLASH

KBD_KEY_SLASH = 0x38

Slash key.

◆ KBD_KEY_SPACE

KBD_KEY_SPACE = 0x2c

Space key.

◆ KBD_KEY_T

KBD_KEY_T = 0x17

T key.

◆ KBD_KEY_TAB

KBD_KEY_TAB = 0x2b

Tab key.

◆ KBD_KEY_TILDE

KBD_KEY_TILDE = 0x35

Tilde key.

◆ KBD_KEY_U

KBD_KEY_U = 0x18

U key.

◆ KBD_KEY_UP

KBD_KEY_UP = 0x52

Up Arrow key.

◆ KBD_KEY_V

KBD_KEY_V = 0x19

V key.

◆ KBD_KEY_W

KBD_KEY_W = 0x1a

W key.

◆ KBD_KEY_X

KBD_KEY_X = 0x1b

X key.

◆ KBD_KEY_Y

KBD_KEY_Y = 0x1c

Y key.

◆ KBD_KEY_Z

KBD_KEY_Z = 0x1d

Z key.