core: Add AC_BTLD to actionmap and unimap
Now that it can jump to bootloader with AC_BTLD
This commit is contained in:
parent
c09600b56b
commit
83b90f4b6f
4 changed files with 32 additions and 49 deletions
|
|
@ -28,6 +28,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
#include "action.h"
|
||||
#include "hook.h"
|
||||
#include "wait.h"
|
||||
#include "bootloader.h"
|
||||
|
||||
#ifdef DEBUG_ACTION
|
||||
#include "debug.h"
|
||||
|
|
@ -341,6 +342,15 @@ void process_action(keyrecord_t *record)
|
|||
break;
|
||||
#endif
|
||||
case ACT_COMMAND:
|
||||
switch (action.command.id) {
|
||||
case COMMAND_BOOTLOADER:
|
||||
if (event.pressed) {
|
||||
clear_keyboard();
|
||||
wait_ms(50);
|
||||
bootloader_jump();
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
#ifndef NO_ACTION_FUNCTION
|
||||
case ACT_FUNCTION:
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
* 0100|10| usage(10) (reserved)
|
||||
* 0100|11| usage(10) (reserved)
|
||||
*
|
||||
* ACT_MOUSEKEY(0110): TODO: Not needed?
|
||||
* ACT_MOUSEKEY(0101): TODO: Not needed?
|
||||
* 0101|xxxx| keycode Mouse key
|
||||
*
|
||||
* 011x|xxxx xxxx xxxx (reseved)
|
||||
|
|
@ -290,6 +290,12 @@ enum layer_pram_tap_op {
|
|||
/*
|
||||
* Extensions
|
||||
*/
|
||||
/* Macro */
|
||||
#define ACTION_MACRO(id) ACTION(ACT_MACRO, (id))
|
||||
#define ACTION_MACRO_TAP(id) ACTION(ACT_MACRO, FUNC_TAP<<8 | (id))
|
||||
#define ACTION_MACRO_OPT(id, opt) ACTION(ACT_MACRO, (opt)<<8 | (id))
|
||||
|
||||
/* Backlight */
|
||||
enum backlight_opt {
|
||||
BACKLIGHT_INCREASE = 0,
|
||||
BACKLIGHT_DECREASE = 1,
|
||||
|
|
@ -297,18 +303,18 @@ enum backlight_opt {
|
|||
BACKLIGHT_STEP = 3,
|
||||
BACKLIGHT_LEVEL = 4,
|
||||
};
|
||||
/* Macro */
|
||||
#define ACTION_MACRO(id) ACTION(ACT_MACRO, (id))
|
||||
#define ACTION_MACRO_TAP(id) ACTION(ACT_MACRO, FUNC_TAP<<8 | (id))
|
||||
#define ACTION_MACRO_OPT(id, opt) ACTION(ACT_MACRO, (opt)<<8 | (id))
|
||||
/* Backlight */
|
||||
#define ACTION_BACKLIGHT_INCREASE() ACTION(ACT_BACKLIGHT, BACKLIGHT_INCREASE << 8)
|
||||
#define ACTION_BACKLIGHT_DECREASE() ACTION(ACT_BACKLIGHT, BACKLIGHT_DECREASE << 8)
|
||||
#define ACTION_BACKLIGHT_TOGGLE() ACTION(ACT_BACKLIGHT, BACKLIGHT_TOGGLE << 8)
|
||||
#define ACTION_BACKLIGHT_STEP() ACTION(ACT_BACKLIGHT, BACKLIGHT_STEP << 8)
|
||||
#define ACTION_BACKLIGHT_LEVEL(level) ACTION(ACT_BACKLIGHT, BACKLIGHT_LEVEL << 8 | level)
|
||||
|
||||
/* Command */
|
||||
#define ACTION_COMMAND(id, opt) ACTION(ACT_COMMAND, (opt)<<8 | (addr))
|
||||
enum command_ids {
|
||||
COMMAND_BOOTLOADER, // jump to bootloader
|
||||
};
|
||||
#define ACTION_COMMAND(id, opt) ACTION(ACT_COMMAND, (opt)<<8 | (id))
|
||||
|
||||
/* Function */
|
||||
enum function_opts {
|
||||
FUNC_TAP = 0x8, /* indciates function is tappable */
|
||||
|
|
|
|||
|
|
@ -283,43 +283,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
#define AC_WWW_STOP ACTION_USAGE_CONSUMER(APPCONTROL_STOP)
|
||||
#define AC_WWW_REFRESH ACTION_USAGE_CONSUMER(APPCONTROL_REFRESH)
|
||||
#define AC_WWW_FAVORITES ACTION_USAGE_CONSUMER(APPCONTROL_BOOKMARKS)
|
||||
/* Jump to bootloader */
|
||||
#define AC_BOOTLOADER ACTION_KEY(KC_BOOTLOADER)
|
||||
/* Fn key */
|
||||
/*
|
||||
#define AC_FN0 ACTION_KEY(KC_FN0)
|
||||
#define AC_FN1 ACTION_KEY(KC_FN1)
|
||||
#define AC_FN2 ACTION_KEY(KC_FN2)
|
||||
#define AC_FN3 ACTION_KEY(KC_FN3)
|
||||
#define AC_FN4 ACTION_KEY(KC_FN4)
|
||||
#define AC_FN5 ACTION_KEY(KC_FN5)
|
||||
#define AC_FN6 ACTION_KEY(KC_FN6)
|
||||
#define AC_FN7 ACTION_KEY(KC_FN7)
|
||||
#define AC_FN8 ACTION_KEY(KC_FN8)
|
||||
#define AC_FN9 ACTION_KEY(KC_FN9)
|
||||
#define AC_FN10 ACTION_KEY(KC_FN10)
|
||||
#define AC_FN11 ACTION_KEY(KC_FN11)
|
||||
#define AC_FN12 ACTION_KEY(KC_FN12)
|
||||
#define AC_FN13 ACTION_KEY(KC_FN13)
|
||||
#define AC_FN14 ACTION_KEY(KC_FN14)
|
||||
#define AC_FN15 ACTION_KEY(KC_FN15)
|
||||
#define AC_FN16 ACTION_KEY(KC_FN16)
|
||||
#define AC_FN17 ACTION_KEY(KC_FN17)
|
||||
#define AC_FN18 ACTION_KEY(KC_FN18)
|
||||
#define AC_FN19 ACTION_KEY(KC_FN19)
|
||||
#define AC_FN20 ACTION_KEY(KC_FN20)
|
||||
#define AC_FN21 ACTION_KEY(KC_FN21)
|
||||
#define AC_FN22 ACTION_KEY(KC_FN22)
|
||||
#define AC_FN23 ACTION_KEY(KC_FN23)
|
||||
#define AC_FN24 ACTION_KEY(KC_FN24)
|
||||
#define AC_FN25 ACTION_KEY(KC_FN25)
|
||||
#define AC_FN26 ACTION_KEY(KC_FN26)
|
||||
#define AC_FN27 ACTION_KEY(KC_FN27)
|
||||
#define AC_FN28 ACTION_KEY(KC_FN28)
|
||||
#define AC_FN29 ACTION_KEY(KC_FN29)
|
||||
#define AC_FN30 ACTION_KEY(KC_FN30)
|
||||
#define AC_FN31 ACTION_KEY(KC_FN31)
|
||||
*/
|
||||
|
||||
/* Mousekey */
|
||||
#define AC_MS_UP ACTION_MOUSEKEY(KC_MS_UP)
|
||||
#define AC_MS_DOWN ACTION_MOUSEKEY(KC_MS_DOWN)
|
||||
|
|
@ -338,6 +302,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
#define AC_MS_ACCEL1 ACTION_MOUSEKEY(KC_MS_ACCEL1)
|
||||
#define AC_MS_ACCEL2 ACTION_MOUSEKEY(KC_MS_ACCEL2)
|
||||
|
||||
/* Command */
|
||||
#define AC_BOOTLOADER ACTION_COMMAND(COMMAND_BOOTLOADER, 0)
|
||||
|
||||
|
||||
/*
|
||||
* Short names
|
||||
*/
|
||||
|
|
@ -447,9 +415,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
#define AC_WSTP ACTION_USAGE_CONSUMER(APPCONTROL_STOP)
|
||||
#define AC_WREF ACTION_USAGE_CONSUMER(APPCONTROL_REFRESH)
|
||||
#define AC_WFAV ACTION_USAGE_CONSUMER(APPCONTROL_BOOKMARKS)
|
||||
/* Jump to bootloader */
|
||||
#define AC_BTLD ACTION_KEY(KC_BOOTLOADER)
|
||||
/* Transparent */
|
||||
#define AC_TRNS ACTION_KEY(KC_TRANSPARENT)
|
||||
|
||||
/* Command */
|
||||
#define AC_BTLD AC_BOOTLOADER
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -155,9 +155,7 @@ static action_t keycode_to_action(uint8_t keycode)
|
|||
return (action_t)ACTION_TRANSPARENT;
|
||||
break;
|
||||
case KC_BOOTLOADER:
|
||||
clear_keyboard();
|
||||
wait_ms(50);
|
||||
bootloader_jump(); // not return
|
||||
return (action_t)ACTION_COMMAND(COMMAND_BOOTLOADER, 0);
|
||||
break;
|
||||
default:
|
||||
return (action_t)ACTION_NO;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue