Archeus 0.0.0
A C library and game engine that focuses on documentation
Loading...
Searching...
No Matches
key.c File Reference
#include "arc/console/key.h"
#include "key.h"
#include "arc/std/bool.h"
#include <ncurses.h>
#include <stdlib.h>

Go to the source code of this file.

Functions

void ARC_ConsoleKey_Create (ARC_ConsoleKey **consoleKey, ARC_ConsoleKey_Key *key)
 
void ARC_ConsoleKey_Destroy (ARC_ConsoleKey *consoleKey)
 
ARC_Bool ARC_ConsoleKey_Equals (ARC_ConsoleKey consoleKey, ARC_ConsoleKey_Key key)
 
ARC_Bool ARC_ConsoleKey_EqualsPointer (ARC_ConsoleKey *consoleKey, ARC_ConsoleKey_Key key)
 
ARC_ConsoleKey ARC_Keyboard_GetConsoleKey (enum ARC_ConsoleKey_Key key)
 
uint8_t ARC_ConsoleKey_GetCharFromKey (ARC_ConsoleKey *consoleKey)
 

Function Documentation

◆ ARC_ConsoleKey_Create()

void ARC_ConsoleKey_Create ( ARC_ConsoleKey ** consoleKey,
ARC_ConsoleKey_Key * key )

Definition at line 7 of file key.c.

7 {
8 *consoleKey = (ARC_ConsoleKey *)malloc(sizeof(ARC_ConsoleKey));
9 (*consoleKey)->key = 0;
10
11 if(key != NULL){
12 (*consoleKey)->key = *key;
13 }
14}
int32_t key
Definition key.h:12

References ARC_ConsoleKeyType::key.

Referenced by ARC_ConsoleView_GetCreateConsoleKeyAt().

◆ ARC_ConsoleKey_Destroy()

void ARC_ConsoleKey_Destroy ( ARC_ConsoleKey * consoleKey)

Definition at line 16 of file key.c.

16 {
17 free(consoleKey);
18}

◆ ARC_ConsoleKey_Equals()

ARC_Bool ARC_ConsoleKey_Equals ( ARC_ConsoleKey consoleKey,
ARC_ConsoleKey_Key key )

Definition at line 20 of file key.c.

20 {
21 return consoleKey.key == ARC_Keyboard_GetConsoleKey(key).key;
22}
ARC_ConsoleKey ARC_Keyboard_GetConsoleKey(enum ARC_ConsoleKey_Key key)
Definition key.c:28

References ARC_Keyboard_GetConsoleKey(), and ARC_ConsoleKeyType::key.

◆ ARC_ConsoleKey_EqualsPointer()

ARC_Bool ARC_ConsoleKey_EqualsPointer ( ARC_ConsoleKey * consoleKey,
ARC_ConsoleKey_Key key )

Definition at line 24 of file key.c.

24 {
25 return consoleKey->key == ARC_Keyboard_GetConsoleKey(key).key;
26}

References ARC_Keyboard_GetConsoleKey(), and ARC_ConsoleKeyType::key.

◆ ARC_ConsoleKey_GetCharFromKey()

uint8_t ARC_ConsoleKey_GetCharFromKey ( ARC_ConsoleKey * consoleKey)

Definition at line 169 of file key.c.

169 {
170 return consoleKey->key;
171}

References ARC_ConsoleKeyType::key.

◆ ARC_Keyboard_GetConsoleKey()

ARC_ConsoleKey ARC_Keyboard_GetConsoleKey ( enum ARC_ConsoleKey_Key key)

Definition at line 28 of file key.c.

28 {
29 switch(key){
31 return (ARC_ConsoleKey){ (int32_t)'a' };
32
34 return (ARC_ConsoleKey){ (int32_t)'b' };
35
37 return (ARC_ConsoleKey){ (int32_t)'c' };
38
40 return (ARC_ConsoleKey){ (int32_t)'d' };
41
43 return (ARC_ConsoleKey){ (int32_t)'e' };
44
46 return (ARC_ConsoleKey){ (int32_t)'f' };
47
49 return (ARC_ConsoleKey){ (int32_t)'g' };
50
52 return (ARC_ConsoleKey){ (int32_t)'h' };
53
55 return (ARC_ConsoleKey){ (int32_t)'i' };
56
58 return (ARC_ConsoleKey){ (int32_t)'j' };
59
61 return (ARC_ConsoleKey){ (int32_t)'k' };
62
64 return (ARC_ConsoleKey){ (int32_t)'l' };
65
67 return (ARC_ConsoleKey){ (int32_t)'m' };
68
70 return (ARC_ConsoleKey){ (int32_t)'n' };
71
73 return (ARC_ConsoleKey){ (int32_t)'o' };
74
76 return (ARC_ConsoleKey){ (int32_t)'p' };
77
79 return (ARC_ConsoleKey){ (int32_t)'q' };
80
82 return (ARC_ConsoleKey){ (int32_t)'r' };
83
85 return (ARC_ConsoleKey){ (int32_t)'s' };
86
88 return (ARC_ConsoleKey){ (int32_t)'t' };
89
91 return (ARC_ConsoleKey){ (int32_t)'u' };
92
94 return (ARC_ConsoleKey){ (int32_t)'v' };
95
97 return (ARC_ConsoleKey){ (int32_t)'w' };
98
100 return (ARC_ConsoleKey){ (int32_t)'x' };
101
103 return (ARC_ConsoleKey){ (int32_t)'y' };
104
106 return (ARC_ConsoleKey){ (int32_t)'z' };
107
109 return (ARC_ConsoleKey){ (int32_t)'0' };
110
112 return (ARC_ConsoleKey){ (int32_t)'1' };
113
115 return (ARC_ConsoleKey){ (int32_t)'2' };
116
118 return (ARC_ConsoleKey){ (int32_t)'3' };
119
121 return (ARC_ConsoleKey){ (int32_t)'4' };
122
124 return (ARC_ConsoleKey){ (int32_t)'5' };
125
127 return (ARC_ConsoleKey){ (int32_t)'6' };
128
130 return (ARC_ConsoleKey){ (int32_t)'7' };
131
133 return (ARC_ConsoleKey){ (int32_t)'8' };
134
136 return (ARC_ConsoleKey){ (int32_t)'9' };
137
139 return (ARC_ConsoleKey){ KEY_UP };
140
142 return (ARC_ConsoleKey){ KEY_DOWN };
143
145 return (ARC_ConsoleKey){ KEY_LEFT };
146
148 return (ARC_ConsoleKey){ KEY_RIGHT };
149
151 return (ARC_ConsoleKey){ (int32_t)'/' };
152
154 return (ARC_ConsoleKey){ KEY_BACKSPACE };
155
156 //TODO: This should probs be KEY_ENTER, but idk why it wasn't working
158 return (ARC_ConsoleKey){ 10 };
159
160 //TODO: This is escape and alt, need to fix
162 return (ARC_ConsoleKey){ 27 };
163
164 default:
165 return (ARC_ConsoleKey){ 0 };
166 }
167}
@ ARC_CONSOLE_KEY_K
Definition key.h:24
@ ARC_CONSOLE_KEY_8
Definition key.h:49
@ ARC_CONSOLE_KEY_L
Definition key.h:25
@ ARC_CONSOLE_KEY_B
Definition key.h:15
@ ARC_CONSOLE_KEY_X
Definition key.h:37
@ ARC_CONSOLE_KEY_7
Definition key.h:48
@ ARC_CONSOLE_KEY_Z
Definition key.h:39
@ ARC_CONSOLE_KEY_UP
Definition key.h:55
@ ARC_CONSOLE_KEY_S
Definition key.h:32
@ ARC_CONSOLE_KEY_D
Definition key.h:17
@ ARC_CONSOLE_KEY_FORWARD_SLASH
Definition key.h:57
@ ARC_CONSOLE_KEY_C
Definition key.h:16
@ ARC_CONSOLE_KEY_DOWN
Definition key.h:54
@ ARC_CONSOLE_KEY_1
Definition key.h:42
@ ARC_CONSOLE_KEY_T
Definition key.h:33
@ ARC_CONSOLE_KEY_P
Definition key.h:29
@ ARC_CONSOLE_KEY_2
Definition key.h:43
@ ARC_CONSOLE_KEY_3
Definition key.h:44
@ ARC_CONSOLE_KEY_LEFT
Definition key.h:52
@ ARC_CONSOLE_KEY_V
Definition key.h:35
@ ARC_CONSOLE_KEY_U
Definition key.h:34
@ ARC_CONSOLE_KEY_J
Definition key.h:23
@ ARC_CONSOLE_KEY_4
Definition key.h:45
@ ARC_CONSOLE_KEY_H
Definition key.h:21
@ ARC_CONSOLE_KEY_I
Definition key.h:22
@ ARC_CONSOLE_KEY_M
Definition key.h:26
@ ARC_CONSOLE_KEY_A
Definition key.h:14
@ ARC_CONSOLE_KEY_G
Definition key.h:20
@ ARC_CONSOLE_KEY_R
Definition key.h:31
@ ARC_CONSOLE_KEY_F
Definition key.h:19
@ ARC_CONSOLE_KEY_6
Definition key.h:47
@ ARC_CONSOLE_KEY_N
Definition key.h:27
@ ARC_CONSOLE_KEY_9
Definition key.h:50
@ ARC_CONSOLE_KEY_ENTER
Definition key.h:61
@ ARC_CONSOLE_KEY_W
Definition key.h:36
@ ARC_CONSOLE_KEY_5
Definition key.h:46
@ ARC_CONSOLE_KEY_Y
Definition key.h:38
@ ARC_CONSOLE_KEY_RIGHT
Definition key.h:53
@ ARC_CONSOLE_KEY_0
Definition key.h:41
@ ARC_CONSOLE_KEY_BACKSPACE
Definition key.h:59
@ ARC_CONSOLE_KEY_Q
Definition key.h:30
@ ARC_CONSOLE_KEY_O
Definition key.h:28
@ ARC_CONSOLE_KEY_E
Definition key.h:18
@ ARC_CONSOLE_KEY_ESC
Definition key.h:63

References ARC_CONSOLE_KEY_0, ARC_CONSOLE_KEY_1, ARC_CONSOLE_KEY_2, ARC_CONSOLE_KEY_3, ARC_CONSOLE_KEY_4, ARC_CONSOLE_KEY_5, ARC_CONSOLE_KEY_6, ARC_CONSOLE_KEY_7, ARC_CONSOLE_KEY_8, ARC_CONSOLE_KEY_9, ARC_CONSOLE_KEY_A, ARC_CONSOLE_KEY_B, ARC_CONSOLE_KEY_BACKSPACE, ARC_CONSOLE_KEY_C, ARC_CONSOLE_KEY_D, ARC_CONSOLE_KEY_DOWN, ARC_CONSOLE_KEY_E, ARC_CONSOLE_KEY_ENTER, ARC_CONSOLE_KEY_ESC, ARC_CONSOLE_KEY_F, ARC_CONSOLE_KEY_FORWARD_SLASH, ARC_CONSOLE_KEY_G, ARC_CONSOLE_KEY_H, ARC_CONSOLE_KEY_I, ARC_CONSOLE_KEY_J, ARC_CONSOLE_KEY_K, ARC_CONSOLE_KEY_L, ARC_CONSOLE_KEY_LEFT, ARC_CONSOLE_KEY_M, ARC_CONSOLE_KEY_N, ARC_CONSOLE_KEY_O, ARC_CONSOLE_KEY_P, ARC_CONSOLE_KEY_Q, ARC_CONSOLE_KEY_R, ARC_CONSOLE_KEY_RIGHT, ARC_CONSOLE_KEY_S, ARC_CONSOLE_KEY_T, ARC_CONSOLE_KEY_U, ARC_CONSOLE_KEY_UP, ARC_CONSOLE_KEY_V, ARC_CONSOLE_KEY_W, ARC_CONSOLE_KEY_X, ARC_CONSOLE_KEY_Y, and ARC_CONSOLE_KEY_Z.

Referenced by ARC_ConsoleKey_Equals(), and ARC_ConsoleKey_EqualsPointer().