1
0

Improvements for TentaPad

- Proximity feature
- Reduce strength of vibration
- Change number of layers to 32
This commit is contained in:
Kai Ryu 2014-10-09 17:24:26 +09:00
parent 077ee98d93
commit 9db4fae6bf
4 changed files with 51 additions and 20 deletions

View File

@ -26,7 +26,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifdef BACKLIGHT_ENABLE #ifdef BACKLIGHT_ENABLE
uint8_t backlight_mode; uint8_t backlight_mode;
const uint8_t backlight_brightness = 0xFF; const uint8_t backlight_brightness_mid = 64;
const uint8_t backlight_brightness_high = 255;
void backlight_set(uint8_t level) void backlight_set(uint8_t level)
{ {
@ -44,14 +45,14 @@ void backlight_set(uint8_t level)
softpwm_led_on(LED_BOARD_SIDE); softpwm_led_on(LED_BOARD_SIDE);
break; break;
case 1: case 1:
softpwm_led_set(LED_BOARD_SIDE, backlight_brightness); softpwm_led_set(LED_BOARD_SIDE, backlight_brightness_mid);
fading_led_disable_all(); fading_led_disable_all();
fading_led_enable(LED_KEY_SIDE); fading_led_enable(LED_KEY_SIDE);
breathing_led_disable_all(); breathing_led_disable_all();
softpwm_led_enable(); softpwm_led_enable();
break; break;
case 2: case 2:
softpwm_led_set(LED_KEY_SIDE, backlight_brightness); softpwm_led_set(LED_KEY_SIDE, backlight_brightness_mid);
fading_led_disable_all(); fading_led_disable_all();
fading_led_enable(LED_BOARD_SIDE); fading_led_enable(LED_BOARD_SIDE);
breathing_led_disable_all(); breathing_led_disable_all();
@ -65,14 +66,14 @@ void backlight_set(uint8_t level)
softpwm_led_enable(); softpwm_led_enable();
break; break;
case 4: case 4:
softpwm_led_set(LED_KEY_SIDE, backlight_brightness); softpwm_led_set(LED_KEY_SIDE, backlight_brightness_mid);
breathing_led_disable_all(); breathing_led_disable_all();
breathing_led_enable(LED_BOARD_SIDE); breathing_led_enable(LED_BOARD_SIDE);
fading_led_disable_all(); fading_led_disable_all();
softpwm_led_enable(); softpwm_led_enable();
break; break;
case 5: case 5:
softpwm_led_set(LED_BOARD_SIDE, backlight_brightness); softpwm_led_set(LED_BOARD_SIDE, backlight_brightness_mid);
breathing_led_disable_all(); breathing_led_disable_all();
breathing_led_enable(LED_KEY_SIDE); breathing_led_enable(LED_KEY_SIDE);
fading_led_disable_all(); fading_led_disable_all();

View File

@ -33,7 +33,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* keymap in eeprom */ /* keymap in eeprom */
#define FN_ACTIONS_COUNT 32 #define FN_ACTIONS_COUNT 32
#define KEYMAPS_COUNT 8 #define KEYMAPS_COUNT 32
/* define if matrix has ghost */ /* define if matrix has ghost */
//#define MATRIX_HAS_GHOST //#define MATRIX_HAS_GHOST

View File

@ -41,7 +41,8 @@ static uint8_t backlight = 0;
static uint8_t layer_modified = 0; static uint8_t layer_modified = 0;
static uint8_t backlight_modified = 0; static uint8_t backlight_modified = 0;
extern uint8_t backlight_mode; extern uint8_t backlight_mode;
extern const uint8_t backlight_brightness; extern const uint8_t backlight_brightness_mid;
extern const uint8_t backlight_brightness_high;
void action_keyevent(keyevent_t event) void action_keyevent(keyevent_t event)
{ {
@ -79,7 +80,7 @@ void action_keyevent(keyevent_t event)
case 1: case 2: case 1: case 2:
softpwm_led_increase(LED_KEY_SIDE - 1 + backlight_mode, 32); softpwm_led_increase(LED_KEY_SIDE - 1 + backlight_mode, 32);
case 3 ... 5: case 3 ... 5:
softpwm_led_set(key, backlight_brightness); softpwm_led_set(key, backlight_brightness_high);
break; break;
} }
} }
@ -97,7 +98,7 @@ void action_keyevent(keyevent_t event)
break; break;
case KEY_TT: case KEY_TT:
if (event.pressed) { if (event.pressed) {
vibration(64); vibration(32);
switch (backlight_mode) { switch (backlight_mode) {
case 1: case 2: case 1: case 2:
softpwm_led_increase(LED_KEY_SIDE - 1 + backlight_mode, 32); softpwm_led_increase(LED_KEY_SIDE - 1 + backlight_mode, 32);
@ -105,6 +106,26 @@ void action_keyevent(keyevent_t event)
} }
} }
break; break;
case KEY_TP:
switch (backlight_mode) {
case 1: case 5:
if (event.pressed) {
softpwm_led_set(LED_BOARD_SIDE, backlight_brightness_high);
}
else {
softpwm_led_set(LED_BOARD_SIDE, backlight_brightness_mid);
}
break;
case 2: case 4:
if (event.pressed) {
softpwm_led_set(LED_KEY_SIDE, backlight_brightness_high);
}
else {
softpwm_led_set(LED_KEY_SIDE, backlight_brightness_mid);
}
break;
}
break;
case KEY_CFG: case KEY_CFG:
if (event.pressed) { if (event.pressed) {
enter_config_mode(); enter_config_mode();
@ -121,7 +142,6 @@ void enter_config_mode(void)
backlight_modified = 0; backlight_modified = 0;
backlight = backlight_mode; backlight = backlight_mode;
backlight_level(8); backlight_level(8);
layer_on(CONFIG_LAYER);
softpwm_led_set(0, 32 * (layer + 1)); softpwm_led_set(0, 32 * (layer + 1));
softpwm_led_set(1, 32 * (backlight + 1)); softpwm_led_set(1, 32 * (backlight + 1));
buzzer(pgm_read_word(&tones[0]), 50); buzzer(pgm_read_word(&tones[0]), 50);
@ -133,7 +153,6 @@ void exit_config_mode(void)
{ {
config_mode = 0; config_mode = 0;
backlight_level(backlight); backlight_level(backlight);
layer_off(CONFIG_LAYER);
if (layer_modified) { if (layer_modified) {
default_layer_set(1UL<<layer); default_layer_set(1UL<<layer);
eeconfig_write_default_layer(1UL<<layer); eeconfig_write_default_layer(1UL<<layer);
@ -154,12 +173,7 @@ void switch_layout(void)
} }
dprintf("layer: %d\n", layer); dprintf("layer: %d\n", layer);
dprintf("last layer: %d\n", last_layer()); dprintf("last layer: %d\n", last_layer());
softpwm_led_set(0, 32 * (layer + 1)); set_layer_indicator(layer);
buzzer(pgm_read_word(&tones[layer]), 50);
if (layer == 0) {
_delay_ms(10);
buzzer(pgm_read_word(&tones[layer]), 50);
}
} }
void switch_backlight(void) void switch_backlight(void)
@ -172,7 +186,23 @@ void switch_backlight(void)
backlight = (backlight + 1) % (BACKLIGHT_LEVELS); backlight = (backlight + 1) % (BACKLIGHT_LEVELS);
} }
dprintf("backlight: %d\n", backlight); dprintf("backlight: %d\n", backlight);
softpwm_led_set(1, 32 * (backlight + 1)); set_backlight_indicator(backlight);
}
void set_layer_indicator(uint8_t layer)
{
layer = (layer < 7) ? layer : 7;
softpwm_led_set(0, 32 * (layer + 1) - 1);
buzzer(pgm_read_word(&tones[layer]), 50);
if (layer == 0) {
_delay_ms(10);
buzzer(pgm_read_word(&tones[layer]), 50);
}
}
void set_backlight_indicator(uint8_t backlight)
{
softpwm_led_set(1, 32 * (backlight + 1) - 1);
buzzer(pgm_read_word(&tones[7 + backlight]), 50); buzzer(pgm_read_word(&tones[7 + backlight]), 50);
if (backlight == 0) { if (backlight == 0) {
_delay_ms(10); _delay_ms(10);

View File

@ -33,12 +33,12 @@ enum {
LED_BOARD_SIDE LED_BOARD_SIDE
}; };
#define CONFIG_LAYER 31
void enter_config_mode(void); void enter_config_mode(void);
void exit_config_mode(void); void exit_config_mode(void);
void switch_layout(void); void switch_layout(void);
void switch_backlight(void); void switch_backlight(void);
void set_layer_indicator(uint8_t layer);
void set_backlight_indicator(uint8_t backlight);
#endif #endif