mirror of
https://github.com/osiweb/unified_retro_keyboard.git
synced 2024-05-28 09:41:30 +00:00
Notation fixes for pointers to functions
This commit is contained in:
parent
c13672b408
commit
2a02f74171
|
@ -363,11 +363,10 @@ static void asdf_activate_key(asdf_keycode_t keycode)
|
||||||
//
|
//
|
||||||
static void asdf_deactivate_key(asdf_keycode_t keycode)
|
static void asdf_deactivate_key(asdf_keycode_t keycode)
|
||||||
{
|
{
|
||||||
if (keycode & ASDF_ACTION) {
|
if (keycode > ASDF_ACTION) {
|
||||||
asdf_deactivate_action((action_t) keycode);
|
asdf_deactivate_action((action_t) keycode);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
// deactivate a released keypress
|
// deactivate a released keypress
|
||||||
if (last_key == keycode) {
|
if (last_key == keycode) {
|
||||||
last_key = ACTION_NOTHING;
|
last_key = ACTION_NOTHING;
|
||||||
|
@ -449,7 +448,6 @@ static void asdf_handle_key_press_or_release(uint8_t row, uint8_t col, uint8_t k
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// key was released
|
// key was released
|
||||||
|
|
||||||
last_stable_key_state[row] &= ~(1 << col);
|
last_stable_key_state[row] &= ~(1 << col);
|
||||||
asdf_deactivate_key(asdf_lookup_keycode(row, col));
|
asdf_deactivate_key(asdf_lookup_keycode(row, col));
|
||||||
}
|
}
|
||||||
|
@ -512,6 +510,7 @@ static void asdf_handle_key_held_pressed(uint8_t row, uint8_t col)
|
||||||
//
|
//
|
||||||
void asdf_keyscan(void)
|
void asdf_keyscan(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
asdf_cols_t (*row_reader)(uint8_t) = (asdf_cols_t(*)(uint8_t)) asdf_hook_get(ASDF_HOOK_SCANNER);
|
asdf_cols_t (*row_reader)(uint8_t) = (asdf_cols_t(*)(uint8_t)) asdf_hook_get(ASDF_HOOK_SCANNER);
|
||||||
|
|
||||||
asdf_hook_execute(ASDF_HOOK_EACH_SCAN);
|
asdf_hook_execute(ASDF_HOOK_EACH_SCAN);
|
||||||
|
@ -522,7 +521,7 @@ void asdf_keyscan(void)
|
||||||
asdf_cols_t changed = row_key_state ^ last_stable_key_state[row];
|
asdf_cols_t changed = row_key_state ^ last_stable_key_state[row];
|
||||||
|
|
||||||
// loop over the bits until all changed or pressed keys in the row are handled.
|
// loop over the bits until all changed or pressed keys in the row are handled.
|
||||||
for (uint8_t col = 0; (changed | row_key_state) && col < ASDF_NUM_COLS; col++) {
|
for (uint8_t col = 0; (changed || row_key_state) && col < ASDF_NUM_COLS; col++) {
|
||||||
if (changed & 1) {
|
if (changed & 1) {
|
||||||
// key state is different from last stable state
|
// key state is different from last stable state
|
||||||
asdf_handle_key_press_or_release(row, col, row_key_state & 1);
|
asdf_handle_key_press_or_release(row, col, row_key_state & 1);
|
||||||
|
|
|
@ -166,7 +166,7 @@ void asdf_hook_init(asdf_hook_initializer_t *const initializer_list)
|
||||||
{
|
{
|
||||||
// initialize hooks to null function
|
// initialize hooks to null function
|
||||||
for (uint8_t i = 0; i < ASDF_NUM_HOOKS; i++) {
|
for (uint8_t i = 0; i < ASDF_NUM_HOOKS; i++) {
|
||||||
hook_map[i] = asdf_hook_null_func;
|
hook_map[i] = &asdf_hook_null_func;
|
||||||
}
|
}
|
||||||
|
|
||||||
hook_map[ASDF_HOOK_SCANNER] = (asdf_hook_function_t) ASDF_ARCH_DEFAULT_SCANNER;
|
hook_map[ASDF_HOOK_SCANNER] = (asdf_hook_function_t) ASDF_ARCH_DEFAULT_SCANNER;
|
||||||
|
|
|
@ -72,8 +72,8 @@ int main(void)
|
||||||
asdf_keycode_t code = asdf_next_code();
|
asdf_keycode_t code = asdf_next_code();
|
||||||
|
|
||||||
if (code != ASDF_INVALID_CODE) {
|
if (code != ASDF_INVALID_CODE) {
|
||||||
void (*output_function)(asdf_keycode_t) =
|
void (*output_function)(asdf_keycode_t) =
|
||||||
(void (*)(asdf_keycode_t)) asdf_hook_get(ASDF_HOOK_OUTPUT);
|
(void (*)(asdf_keycode_t)) asdf_hook_get(ASDF_HOOK_OUTPUT);
|
||||||
(*output_function)(code);
|
(*output_function)(code);
|
||||||
}
|
}
|
||||||
asdf_keyscan();
|
asdf_keyscan();
|
||||||
|
|
Loading…
Reference in New Issue
Block a user