You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Move to release 1.2 (Ludwig Von Drake)
Optimised the keystroke converter by making as many keys as possible
part of an ASCII number switch. Thanks to AntyStewie.
Fixed a bug in which single word commands would register as two
commands.
@@ -24,187 +24,154 @@ int linecounter(string dir){
24
24
//Some of the keys are encoded using their usage IDs. Refer to http://www.usb.org/developers/hidpage/Hut1_12v2.pdf (Page 53-59)
25
25
string stringprocessor(string key){
26
26
27
-
if((key == "A") || (key == "a")){
28
-
key = "KEY_A";
29
-
return key;
30
-
}
31
-
32
-
elseif((key == "B") || (key == "b")){
33
-
key = "KEY_B";
34
-
return key;
35
-
}
36
-
37
-
elseif((key == "C") || (key == "c")){
38
-
key = "KEY_C";
39
-
return key;
40
-
}
41
-
42
-
elseif((key == "D") || (key == "d")){
43
-
key = "KEY_D";
44
-
return key;
45
-
}
46
-
47
-
elseif((key == "E") || (key == "e")){
48
-
key = "KEY_E";
49
-
return key;
50
-
}
51
-
52
-
elseif((key == "F") || (key == "f")){
53
-
key = "KEY_F";
54
-
return key;
55
-
}
56
-
57
-
elseif((key == "G") || (key == "g")){
58
-
key = "KEY_G";
59
-
return key;
60
-
}
61
-
62
-
elseif((key == "H") || (key == "h")){
63
-
key = "KEY_H";
64
-
return key;
65
-
}
66
-
67
-
elseif((key == "I") || (key == "i")){
68
-
key = "KEY_I";
69
-
return key;
70
-
}
71
-
72
-
elseif((key == "J") || (key == "j")){
73
-
key = "KEY_J";
74
-
return key;
75
-
}
76
-
77
-
elseif((key == "K") || (key == "k")){
78
-
key = "KEY_K";
79
-
return key;
80
-
}
81
-
82
-
elseif((key == "L") || (key == "l")){
83
-
key = "KEY_L";
84
-
return key;
85
-
}
86
-
87
-
elseif((key == "M") || (key == "m")){
88
-
key = "KEY_M";
89
-
return key;
90
-
}
91
-
92
-
elseif((key == "N") || (key == "n")){
93
-
key = "KEY_N";
94
-
return key;
95
-
}
96
-
97
-
elseif((key == "O") || (key == "o")){
98
-
key = "KEY_O";
99
-
return key;
100
-
}
101
-
102
-
elseif((key == "P") || (key == "p")){
103
-
key = "KEY_P";
104
-
return key;
105
-
}
106
-
107
-
elseif((key == "Q") || (key == "q")){
108
-
key = "KEY_Q";
109
-
return key;
110
-
}
111
-
112
-
elseif((key == "R") || (key == "r")){
113
-
key = "KEY_R";
114
-
return key;
115
-
}
116
-
117
-
elseif((key == "S") || (key == "s")){
118
-
key = "KEY_S";
119
-
return key;
120
-
}
121
-
122
-
elseif((key == "T") || (key == "t")){
123
-
key = "KEY_T";
124
-
return key;
125
-
}
126
-
127
-
elseif((key == "U") || (key == "u")){
128
-
key = "KEY_U";
129
-
return key;
130
-
}
131
-
132
-
elseif((key == "V") || (key == "v")){
133
-
key = "KEY_V";
134
-
return key;
135
-
}
136
-
137
-
elseif((key == "W") || (key == "w")){
138
-
key = "KEY_W";
139
-
return key;
140
-
}
141
-
142
-
elseif((key == "X") || (key == "x")){
143
-
key = "KEY_X";
144
-
return key;
145
-
}
146
-
147
-
elseif((key == "Y") || (key == "y")){
148
-
key = "KEY_Y";
149
-
return key;
150
-
}
151
-
152
-
elseif((key == "Z") || (key == "z")){
153
-
key = "KEY_Z";
154
-
return key;
155
-
}
156
-
157
-
elseif(key=="1"){
158
-
key = "KEY_1";
159
-
return key;
160
-
}
161
-
162
-
elseif(key=="2"){
163
-
key = "KEY_2";
164
-
return key;
165
-
}
166
-
167
-
elseif(key=="3"){
168
-
key = "KEY_3";
169
-
return key;
170
-
}
171
-
172
-
elseif(key=="4"){
173
-
key = "KEY_4";
174
-
return key;
175
-
}
176
-
177
-
elseif(key=="5"){
178
-
key = "KEY_5";
179
-
return key;
180
-
}
181
-
182
-
elseif(key=="6"){
183
-
key = "KEY_6";
184
-
return key;
185
-
}
186
-
187
-
elseif(key=="7"){
188
-
key = "KEY_7";
189
-
return key;
190
-
}
191
-
192
-
elseif(key=="8"){
193
-
key = "KEY_8";
194
-
return key;
195
-
}
196
-
197
-
elseif(key=="9"){
198
-
key = "KEY_9";
199
-
return key;
27
+
int asciinum;//Case for A and a
28
+
29
+
if(key.size() == 1){
30
+
asciinum = (int)key[0]; //If the string length is 1, use a switch statement to improve speed. In order to do that we need to extract the character number in ascii with this line of code.
31
+
32
+
switch(asciinum){
33
+
34
+
case65:
35
+
case97:
36
+
key = "KEY_A";
37
+
return key;
38
+
case66:
39
+
case98:
40
+
key = "KEY_B";
41
+
return key;
42
+
case67:
43
+
case99:
44
+
key = "KEY_C";
45
+
return key;
46
+
case68:
47
+
case100:
48
+
key = "KEY_D";
49
+
return key;
50
+
case69:
51
+
case101:
52
+
key = "KEY_E";
53
+
return key;
54
+
case70:
55
+
case102:
56
+
key = "KEY_F";
57
+
return key;
58
+
case71:
59
+
case103:
60
+
key = "KEY_G";
61
+
return key;
62
+
case72:
63
+
case104:
64
+
key = "KEY_H";
65
+
return key;
66
+
case73:
67
+
case105:
68
+
key = "KEY_I";
69
+
return key;
70
+
case74:
71
+
case106:
72
+
key = "KEY_J";
73
+
return key;
74
+
case75:
75
+
case107:
76
+
key = "KEY_K";
77
+
return key;
78
+
case76:
79
+
case108:
80
+
key = "KEY_L";
81
+
return key;
82
+
case77:
83
+
case109:
84
+
key = "KEY_M";
85
+
return key;
86
+
case78:
87
+
case110:
88
+
key = "KEY_N";
89
+
return key;
90
+
case79:
91
+
case111:
92
+
key = "KEY_O";
93
+
return key;
94
+
case80:
95
+
case112:
96
+
key = "KEY_P";
97
+
return key;
98
+
case81:
99
+
case113:
100
+
key = "KEY_Q";
101
+
return key;
102
+
case82:
103
+
case114:
104
+
key = "KEY_R";
105
+
return key;
106
+
case83:
107
+
case115:
108
+
key = "KEY_S";
109
+
return key;
110
+
case84:
111
+
case116:
112
+
key = "KEY_T";
113
+
return key;
114
+
case85:
115
+
case117:
116
+
key = "KEY_U";
117
+
return key;
118
+
case86:
119
+
case118:
120
+
key = "KEY_V";
121
+
return key;
122
+
case87:
123
+
case119:
124
+
key = "KEY_W";
125
+
return key;
126
+
case88:
127
+
case120:
128
+
key = "KEY_X";
129
+
return key;
130
+
case89:
131
+
case121:
132
+
key = "KEY_Y";
133
+
return key;
134
+
case90:
135
+
case122:
136
+
key = "KEY_Z";
137
+
return key;
138
+
case48:
139
+
key = "KEY_0";
140
+
return key;
141
+
case49:
142
+
key = "KEY_1";
143
+
return key;
144
+
case50:
145
+
key = "KEY_2";
146
+
return key;
147
+
case51:
148
+
key = "KEY_3";
149
+
return key;
150
+
case52:
151
+
key = "KEY_4";
152
+
return key;
153
+
case53:
154
+
key = "KEY_5";
155
+
return key;
156
+
case54:
157
+
key = "KEY_6";
158
+
return key;
159
+
case55:
160
+
key = "KEY_7";
161
+
return key;
162
+
case56:
163
+
key = "KEY_8";
164
+
return key;
165
+
case57:
166
+
key = "KEY_9";
167
+
return key;
168
+
default:
169
+
cout << "There was a problem in converting the ascii character:" << key << endl; //In case the character doesn't exist in the switch
if(!command.empty() && command != key){ //If command is equal to key it means that the command is a one word line e.g ENTER so command.erase until a ' ' would have no effect.
1 commit comments
CedArctic commentedon Apr 23, 2017
For ASCII table see http://ascii.cl/