MCPcopy Create free account
hub / github.com/BlitterStudio/amiberry / keytoscancode

Function keytoscancode

src/keybuf.cpp:162–190  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

160};
161
162static void keytoscancode(int key, bool release)
163{
164 int v = 0x40;
165 int q = 0x00;
166 int mask = release ? 0x80 : 0x00;
167 for (int i = 0; kbtable[i].ascii; i++) {
168 if (kbtable[i].ascii == key) {
169 v = kbtable[i].code;
170 q = kbtable[i].qual;
171 break;
172 }
173 }
174 v |= mask;
175 v = (v << 1) | (v >> 7);
176 q |= mask;
177 if (release) {
178 record_key(v, false);
179 if (q & 0x7f) {
180 q = (q << 1) | (q >> 7);
181 record_key(q, false);
182 }
183 } else {
184 if (q & 0x7f) {
185 q = (q << 1) | (q >> 7);
186 record_key(q, false);
187 }
188 record_key(v, false);
189 }
190}
191
192// delay injection, some programs don't like too fast key events
193static bool can_inject(void)

Callers 1

get_next_keyFunction · 0.85

Calls 1

record_keyFunction · 0.85

Tested by

no test coverage detected