diff --git a/keyboard/tentapad/Makefile b/keyboard/tentapad/Makefile
index c6aad9a5..490a8810 100644
--- a/keyboard/tentapad/Makefile
+++ b/keyboard/tentapad/Makefile
@@ -49,6 +49,7 @@ TARGET_DIR = .
# project specific files
SRC = keymap_common.c \
+ tentapad.c \
matrix.c \
led.c \
backlight.c \
diff --git a/keyboard/tentapad/backlight.c b/keyboard/tentapad/backlight.c
index 395235a1..cb2a3641 100644
--- a/keyboard/tentapad/backlight.c
+++ b/keyboard/tentapad/backlight.c
@@ -20,20 +20,13 @@ along with this program. If not, see .
#include
#include "backlight.h"
#include "softpwm_led.h"
-#include "action.h"
#include "keymap_common.h"
+#include "tentapad.h"
#ifdef BACKLIGHT_ENABLE
-static uint8_t backlight_mode;
-static const uint8_t backlight_brightness = 0xFF;
-
-enum {
- LED_KEY_1 = 0,
- LED_KEY_2,
- LED_KEY_SIDE,
- LED_BOARD_SIDE
-};
+uint8_t backlight_mode;
+const uint8_t backlight_brightness = 0xFF;
void backlight_set(uint8_t level)
{
@@ -161,45 +154,4 @@ void softpwm_led_off(uint8_t index)
}
#endif
-extern uint8_t config_mode;
-
-void action_keyevent(keyevent_t event)
-{
- if (config_mode) return;
- if (event.key.col < 2) {
- if (event.pressed) {
- switch (backlight_mode) {
- case 0: case 6:
- softpwm_led_on(event.key.col);
- break;
- case 1 ... 5:
- softpwm_led_set(event.key.col, backlight_brightness);
- break;
- }
- }
- else {
- switch (backlight_mode) {
- case 0: case 6:
- softpwm_led_off(event.key.col);
- break;
- case 1 ... 5:
- softpwm_led_set(event.key.col, 0);
- break;
- }
- }
- }
- switch (backlight_mode) {
- case 1:
- if (event.pressed) {
- softpwm_led_increase(LED_KEY_SIDE, 32);
- }
- break;
- case 2:
- if (event.pressed) {
- softpwm_led_increase(LED_BOARD_SIDE, 32);
- }
- break;
- }
-}
-
#endif
diff --git a/keyboard/tentapad/config.h b/keyboard/tentapad/config.h
index 847097b5..99797bf4 100644
--- a/keyboard/tentapad/config.h
+++ b/keyboard/tentapad/config.h
@@ -33,7 +33,7 @@ along with this program. If not, see .
/* keymap in eeprom */
#define FN_ACTIONS_COUNT 32
-#define KEYMAPS_COUNT 9
+#define KEYMAPS_COUNT 8
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
diff --git a/keyboard/tentapad/keymap_common.c b/keyboard/tentapad/keymap_common.c
index 242e1361..ad8d0885 100644
--- a/keyboard/tentapad/keymap_common.c
+++ b/keyboard/tentapad/keymap_common.c
@@ -21,7 +21,7 @@ along with this program. If not, see .
#include "keymap_in_eeprom.h"
#include "keymap_common.h"
-static uint8_t keymaps_cache[KEYMAPS_COUNT][MATRIX_ROWS][MATRIX_COLS];
+static uint8_t keymaps_cache[KEYMAPS_COUNT][MATRIX_ROWS][MATRIX_COLS] = {0};
static uint8_t last_layer_number = 1;
void keymaps_cache_init(void)
@@ -30,26 +30,13 @@ void keymaps_cache_init(void)
uint8_t non_empty_key = 0;
for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
for (uint8_t col = 0; col < MATRIX_COLS; col++) {
- if (col == 3) {
- keymaps_cache[layer][row][col] = KC_FN28;
- }
- else if (col == 4) {
- keymaps_cache[layer][row][col] = KC_FN29;
- }
- else {
- if (layer < CONFIG_LAYER) {
#ifndef KEYMAP_IN_EEPROM_ENABLE
- keymaps_cache[layer][row][col] = pgm_read_byte(&keymaps[layer][row][col]);
+ keymaps_cache[layer][row][col] = pgm_read_byte(&keymaps[layer][row][col]);
#else
- keymaps_cache[layer][row][col] = eeconfig_read_keymap_key(layer, row, col);
+ keymaps_cache[layer][row][col] = eeconfig_read_keymap_key(layer, row, col);
#endif
- if (keymaps_cache[layer][row][col] > KC_TRANSPARENT) {
- non_empty_key++;
- }
- }
- else {
- keymaps_cache[layer][row][col] = pgm_read_byte(&keymaps[layer][row][col]);
- }
+ if (keymaps_cache[layer][row][col] > KC_TRANSPARENT) {
+ non_empty_key++;
}
}
}
@@ -78,17 +65,9 @@ action_t keymap_fn_to_action(uint8_t keycode)
.code = pgm_read_word(&fn_actions[FN_INDEX(keycode)])
};
#else
- uint8_t index = FN_INDEX(keycode);
- if (index < RESERVED_FN) {
- return (action_t) {
- .code = eeconfig_read_keymap_fn_action(index)
- };
- }
- else {
- return (action_t) {
- .code = pgm_read_word(&fn_actions[index])
- };
- }
+ return (action_t) {
+ .code = pgm_read_word(&fn_actions[FN_INDEX(keycode)])
+ };
#endif
}
diff --git a/keyboard/tentapad/keymap_common.h b/keyboard/tentapad/keymap_common.h
index 5ccbff43..549c960e 100644
--- a/keyboard/tentapad/keymap_common.h
+++ b/keyboard/tentapad/keymap_common.h
@@ -23,9 +23,6 @@ along with this program. If not, see .
extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS];
extern const uint16_t fn_actions[];
-#define CONFIG_LAYER (KEYMAPS_COUNT - 1)
-#define RESERVED_FN (FN_ACTIONS_COUNT - 4)
-
void keymaps_cache_init(void);
uint8_t last_layer(void);
diff --git a/keyboard/tentapad/keymap_default.c b/keyboard/tentapad/keymap_default.c
index 2798ca40..317bc768 100644
--- a/keyboard/tentapad/keymap_default.c
+++ b/keyboard/tentapad/keymap_default.c
@@ -17,18 +17,8 @@ along with this program. If not, see .
#include
#include "keycode.h"
-#include "action_layer.h"
-#include "eeconfig.h"
-#include "backlight.h"
#include "keymap_common.h"
-enum function_id {
- TOUCH_PROXIMITY = 0,
- CONFIG_MODE,
- SWITCH_LAYOUT,
- SWITCH_BACKLIGHT
-};
-
// Default
#ifdef KEYMAP_SECTION_ENABLE
const uint8_t keymaps[KEYMAPS_COUNT][MATRIX_ROWS][MATRIX_COLS] __attribute__ ((section (".keymap.keymaps"))) = {
@@ -41,7 +31,6 @@ const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = {
[3] = KEYMAP( UP, DOWN,ESC ),
[4] = KEYMAP( PGUP,PGDN,ESC ),
[5] = KEYMAP( SPC, ESC, ESC ),
- [CONFIG_LAYER] = KEYMAP( FN30, FN31, NO )
};
/*
@@ -52,10 +41,7 @@ const uint16_t fn_actions[FN_ACTIONS_COUNT] __attribute__ ((section (".keymap.fn
#else
const uint16_t fn_actions[] PROGMEM = {
#endif
- [28] = ACTION_FUNCTION(TOUCH_PROXIMITY),
- [29] = ACTION_FUNCTION(CONFIG_MODE),
- [30] = ACTION_FUNCTION(SWITCH_LAYOUT),
- [31] = ACTION_FUNCTION(SWITCH_BACKLIGHT)
+
};
#ifdef KEYMAP_IN_EEPROM_ENABLE
@@ -67,90 +53,3 @@ uint16_t fn_actions_count(void) {
return sizeof(fn_actions) / sizeof(fn_actions[0]);
}
#endif
-
-uint8_t config_mode = 0;
-static uint8_t layer = 0;
-static uint8_t backlight = 0;
-static uint8_t layer_modified = 0;
-static uint8_t backlight_modified = 0;
-extern backlight_config_t backlight_config;
-
-void enter_config_mode(void);
-void exit_config_mode(void);
-void switch_layout(void);
-void switch_backlight(void);
-
-void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
-{
- switch (id) {
- case CONFIG_MODE:
- if (record->event.pressed) {
- if (config_mode) {
- exit_config_mode();
- }
- else {
- enter_config_mode();
- }
- }
- break;
- case SWITCH_LAYOUT:
- if (record->event.pressed) {
- if (config_mode) {
- switch_layout();
- }
- }
- break;
- case SWITCH_BACKLIGHT:
- if (record->event.pressed) {
- if (config_mode) {
- switch_backlight();
- }
- }
- break;
- }
-}
-
-void enter_config_mode(void)
-{
- config_mode = 1;
- layer_modified = 0;
- backlight_modified = 0;
- backlight = backlight_config.level;
- backlight_level(8);
- layer_on(CONFIG_LAYER);
-}
-
-void exit_config_mode(void)
-{
- config_mode = 0;
- backlight_level(backlight);
- layer_off(CONFIG_LAYER);
- if (layer_modified) {
- default_layer_set(1UL<
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
+#include
+#include "action.h"
+#include "action_layer.h"
+#include "backlight.h"
+#include "softpwm_led.h"
+#include "eeconfig.h"
+#include "keymap_common.h"
+#include "tentapad.h"
+#include "debug.h"
+
+uint8_t config_mode = 0;
+static uint8_t layer = 0;
+static uint8_t backlight = 0;
+static uint8_t layer_modified = 0;
+static uint8_t backlight_modified = 0;
+extern uint8_t backlight_mode;
+extern const uint8_t backlight_brightness;
+
+void action_keyevent(keyevent_t event)
+{
+ uint8_t key = event.key.col;
+ if (config_mode) {
+ /* config mode */
+ switch (key) {
+ case KEY_K1:
+ if (event.pressed) {
+ switch_layout();
+ }
+ break;
+ case KEY_K2:
+ if (event.pressed) {
+ switch_backlight();
+ }
+ break;
+ case KEY_CFG:
+ if (event.pressed) {
+ exit_config_mode();
+ }
+ break;
+ }
+ }
+ else {
+ /* normal mode */
+ switch (key) {
+ case KEY_K1: case KEY_K2:
+ if (event.pressed) {
+ /* press */
+ switch (backlight_mode) {
+ case 0: case 6:
+ softpwm_led_on(key);
+ break;
+ case 1: case 2:
+ softpwm_led_increase(LED_KEY_SIDE - 1 + backlight_mode, 32);
+ case 3 ... 5:
+ softpwm_led_set(key, backlight_brightness);
+ break;
+ }
+ }
+ else {
+ /* release */
+ switch (backlight_mode) {
+ case 0: case 6:
+ softpwm_led_off(key);
+ break;
+ case 1 ... 5:
+ softpwm_led_set(key, 0);
+ break;
+ }
+ }
+ break;
+ case KEY_TT:
+ if (event.pressed) {
+ switch (backlight_mode) {
+ case 1: case 2:
+ softpwm_led_increase(LED_KEY_SIDE - 1 + backlight_mode, 32);
+ break;
+ }
+ }
+ break;
+ case KEY_CFG:
+ if (event.pressed) {
+ enter_config_mode();
+ }
+ break;
+ }
+ }
+}
+
+void enter_config_mode(void)
+{
+ config_mode = 1;
+ layer_modified = 0;
+ backlight_modified = 0;
+ backlight = backlight_mode;
+ backlight_level(8);
+ layer_on(CONFIG_LAYER);
+}
+
+void exit_config_mode(void)
+{
+ config_mode = 0;
+ backlight_level(backlight);
+ layer_off(CONFIG_LAYER);
+ if (layer_modified) {
+ default_layer_set(1UL<
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see .
+*/
+
+#ifndef TENTAPAD_H
+#define TENTAPAD_H
+
+enum {
+ KEY_K1 = 0,
+ KEY_K2,
+ KEY_TT,
+ KEY_TP,
+ KEY_CFG
+};
+
+enum {
+ LED_KEY_1 = 0,
+ LED_KEY_2,
+ LED_KEY_SIDE,
+ LED_BOARD_SIDE
+};
+
+#define CONFIG_LAYER 31
+
+void enter_config_mode(void);
+void exit_config_mode(void);
+void switch_layout(void);
+void switch_backlight(void);
+
+#endif
+