VirtualC64 v5.0 beta
Commodore 64 Emulator
Loading...
Searching...
No Matches
C64Key.h
1// -----------------------------------------------------------------------------
2// This file is part of VirtualC64
3//
4// Copyright (C) Dirk W. Hoffmann. www.dirkwhoffmann.de
5// This FILE is dual-licensed. You are free to choose between:
6//
7// - The GNU General Public License v3 (or any later version)
8// - The Mozilla Public License v2
9//
10// SPDX-License-Identifier: GPL-3.0-or-later OR MPL-2.0
11// -----------------------------------------------------------------------------
12
13#pragma once
14
15#include "Types.h"
16#include <vector>
17
18namespace vc64 {
19
22struct C64Key {
23
26 isize nr = -1;
27
32 isize row = -1;
33
38 isize col = -1;
39
40
41 //
42 // Constants
43 //
44
45 // First row in key matrix
46 static const C64Key del;
47 static const C64Key ret;
48 static const C64Key curLeftRight;
49 static const C64Key F7F8;
50 static const C64Key F1F2;
51 static const C64Key F3F4;
52 static const C64Key F5F6;
53 static const C64Key curUpDown;
54
55 // Second row in key matrix
56 static const C64Key digit3;
57 static const C64Key W;
58 static const C64Key A;
59 static const C64Key digit4;
60 static const C64Key Z;
61 static const C64Key S;
62 static const C64Key E;
63 static const C64Key leftShift;
64
65 // Third row in key matrix
66 static const C64Key digit5;
67 static const C64Key R;
68 static const C64Key D;
69 static const C64Key digit6;
70 static const C64Key C;
71 static const C64Key F;
72 static const C64Key T;
73 static const C64Key X;
74
75 // Fourth row in key matrix
76 static const C64Key digit7;
77 static const C64Key Y;
78 static const C64Key G;
79 static const C64Key digit8;
80 static const C64Key B;
81 static const C64Key H;
82 static const C64Key U;
83 static const C64Key V;
84
85 // Fifth row in key matrix
86 static const C64Key digit9;
87 static const C64Key I;
88 static const C64Key J;
89 static const C64Key digit0;
90 static const C64Key M;
91 static const C64Key K;
92 static const C64Key O;
93 static const C64Key N;
94
95 // Sixth row in key matrix
96 static const C64Key plus;
97 static const C64Key P;
98 static const C64Key L;
99 static const C64Key minus;
100 static const C64Key period;
101 static const C64Key colon;
102 static const C64Key at;
103 static const C64Key comma;
104
105 // Seventh row in key matrix
106 static const C64Key pound;
107 static const C64Key asterisk;
108 static const C64Key semicolon;
109 static const C64Key home;
110 static const C64Key rightShift;
111 static const C64Key equal;
112 static const C64Key upArrow;
113 static const C64Key slash;
114
115 // Eights row in key matrix
116 static const C64Key digit1;
117 static const C64Key leftArrow;
118 static const C64Key control;
119 static const C64Key digit2;
120 static const C64Key space;
121 static const C64Key commodore;
122 static const C64Key Q;
123 static const C64Key runStop;
124
125 // Keys not represented in the keyboard matrix
126 static const C64Key restore;
127 static const C64Key shiftLock;
128
129
130 //
131 // Initializing
132 //
133
134 C64Key(isize nr = 0);
135 C64Key(isize row, isize col);
136
137
138 //
139 // Translating
140 //
141
147 static std::vector<C64Key> translate(char c);
148};
149
150}
VirtualC64 project namespace.
Definition CmdQueue.cpp:16
Representation of a key on the C64 keyboard.
Definition C64Key.h:22
isize row
Row index of this key in the keyboard matrix.
Definition C64Key.h:32
static const C64Key ret
Delete key.
Definition C64Key.h:47
isize nr
Unique key identifier (0 .
Definition C64Key.h:26
isize col
Column index of this key in the keyboard matrix.
Definition C64Key.h:38
static std::vector< C64Key > translate(char c)
Translates a character into a series of C64 keys.
Definition C64Key.cpp:152
static const C64Key curLeftRight
Return key.
Definition C64Key.h:48