core: Add AC_BTLD to actionmap and unimap

Now that it can jump to bootloader with AC_BTLD
This commit is contained in:
tmk 2019-09-17 20:55:35 +09:00
parent c09600b56b
commit 83b90f4b6f
4 changed files with 32 additions and 49 deletions

View file

@ -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:

View file

@ -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 */

View file

@ -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

View file

@ -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;