1
0
Fork 0

Add user defined function to action.

This commit is contained in:
tmk 2013-02-01 14:48:11 +09:00
parent d95463f2e0
commit 1d7962ba8a
6 changed files with 168 additions and 101 deletions

View file

@ -110,7 +110,7 @@ static bool waiting_buffer_typed(keyevent_t event)
}
#endif
static bool waiting_buffer_has_anykey_pressed(void)
bool waiting_buffer_has_anykey_pressed(void)
{
for (uint8_t i = waiting_buffer_tail; i != waiting_buffer_head; i = (i + 1) % WAITING_BUFFER_SIZE) {
if (waiting_buffer[i].event.pressed) return true;
@ -256,7 +256,7 @@ static void process_action(keyrecord_t *record)
debug("MODS_TAP: Oneshot: start\n");
oneshot_start(mods, event.time);
}
else if (tap_count == 5) {
else if (tap_count == TAPPING_TOGGLE) {
debug("MODS_TAP: Oneshot: toggle\n");
oneshot_toggle();
}
@ -356,7 +356,7 @@ static void process_action(keyrecord_t *record)
switch (action.layer.code) {
case 0x00:
if (event.pressed) {
layer_switch(action.layer.opt);
layer_switch(action.layer.val);
}
//TODO: this is ok?
else {
@ -367,19 +367,19 @@ static void process_action(keyrecord_t *record)
// tap toggle
if (event.pressed) {
if (tap_count < TAPPING_TOGGLE) {
layer_switch(action.layer.opt);
layer_switch(action.layer.val);
}
} else {
if (tap_count >= TAPPING_TOGGLE) {
debug("LAYER_PRESSED: tap toggle.\n");
layer_switch(action.layer.opt);
layer_switch(action.layer.val);
}
}
break;
case 0xFF:
// change default layer
if (event.pressed) {
default_layer = action.layer.opt;
default_layer = action.layer.val;
layer_switch(default_layer);
}
break;
@ -391,7 +391,7 @@ static void process_action(keyrecord_t *record)
register_code(action.layer.code);
} else {
debug("LAYER_PRESSED: No tap: layer_switch\n");
layer_switch(action.layer.opt);
layer_switch(action.layer.val);
}
} else {
if (tap_count > 0) {
@ -411,7 +411,7 @@ static void process_action(keyrecord_t *record)
switch (action.layer.code) {
case 0x00:
if (!event.pressed) {
layer_switch(action.layer.opt);
layer_switch(action.layer.val);
}
break;
case 0xF0:
@ -419,18 +419,18 @@ static void process_action(keyrecord_t *record)
if (event.pressed) {
if (tap_count >= TAPPING_TOGGLE) {
debug("LAYER_RELEASED: tap toggle.\n");
layer_switch(action.layer.opt);
layer_switch(action.layer.val);
}
} else {
if (tap_count < TAPPING_TOGGLE) {
layer_switch(action.layer.opt);
layer_switch(action.layer.val);
}
}
break;
case 0xFF:
// change default layer
if (!event.pressed) {
default_layer = action.layer.opt;
default_layer = action.layer.val;
layer_switch(default_layer);
}
break;
@ -449,7 +449,7 @@ static void process_action(keyrecord_t *record)
unregister_code(action.layer.code);
} else {
debug("LAYER_RELEASED: No tap: layer_switch\n");
layer_switch(action.layer.opt);
layer_switch(action.layer.val);
}
}
break;
@ -459,9 +459,9 @@ static void process_action(keyrecord_t *record)
switch (action.layer.code) {
case 0x00:
if (event.pressed) {
layer_switch(current_layer ^ action.layer.opt);
layer_switch(current_layer ^ action.layer.val);
} else {
layer_switch(current_layer ^ action.layer.opt);
layer_switch(current_layer ^ action.layer.val);
}
break;
case 0xF0:
@ -469,22 +469,22 @@ static void process_action(keyrecord_t *record)
if (event.pressed) {
if (tap_count < TAPPING_TOGGLE) {
debug("LAYER_BIT: tap toggle(press).\n");
layer_switch(current_layer ^ action.layer.opt);
layer_switch(current_layer ^ action.layer.val);
}
} else {
if (tap_count <= TAPPING_TOGGLE) {
debug("LAYER_BIT: tap toggle(release).\n");
layer_switch(current_layer ^ action.layer.opt);
layer_switch(current_layer ^ action.layer.val);
}
}
break;
case 0xFF:
// change default layer
if (event.pressed) {
default_layer = current_layer ^ action.layer.opt;
default_layer = current_layer ^ action.layer.val;
layer_switch(default_layer);
} else {
default_layer = current_layer ^ action.layer.opt;
default_layer = current_layer ^ action.layer.val;
layer_switch(default_layer);
}
break;
@ -496,7 +496,7 @@ static void process_action(keyrecord_t *record)
register_code(action.layer.code);
} else {
debug("LAYER_BIT: No tap: layer_switch(bit on)\n");
layer_switch(current_layer ^ action.layer.opt);
layer_switch(current_layer ^ action.layer.val);
}
} else {
if (IS_TAPPING_KEY(event.key) && tap_count > 0) {
@ -504,14 +504,14 @@ static void process_action(keyrecord_t *record)
unregister_code(action.layer.code);
} else {
debug("LAYER_BIT: No tap: layer_switch(bit off)\n");
layer_switch(current_layer ^ action.layer.opt);
layer_switch(current_layer ^ action.layer.val);
}
}
break;
}
break;
case ACT_LAYER_EXT:
switch (action.layer.opt) {
switch (action.layer.val) {
case 0x00:
// set default layer when pressed
switch (action.layer.code) {
@ -620,7 +620,7 @@ static void process_action(keyrecord_t *record)
break;
case ACT_FUNCTION:
// TODO
action_call_function(event, action.func.id);
keymap_call_function(record, action.func.id);
break;
default:
break;
@ -944,7 +944,7 @@ bool is_tap_key(key_t key)
}
return false;
case ACT_FUNCTION:
if (action.func.opt & 0x1) {
if (action.func.opt & O_TAP) {
return true;
}
return false;