added a layout layer; layout's still kind of a mess...

layout includes function keys, some symbols, and a few things from the
default layer
partial-rewrite
Ben Blazak 2012-06-03 23:46:21 -07:00
parent c30106431b
commit bdcd4484be
4 changed files with 152 additions and 31 deletions

View File

@ -19,13 +19,21 @@
#include "../layout.h"
// aliases
#define f_press &kbfun_press
#define f_relea &kbfun_release
#define f_l_inc &kbfun_layer_inc
#define f_l_dec &kbfun_layer_dec
// error check: everything below assumes these dimensions
#if KB_LAYERS != 1 || KB_ROWS != 12 || KB_COLUMNS != 7
#if KB_LAYERS != 2 || KB_ROWS != 12 || KB_COLUMNS != 7
#error "Expecting different keyboard dimensions"
#endif
uint8_t PROGMEM _kb_layout[KB_LAYERS][KB_ROWS][KB_COLUMNS] = {
// ----------------------------------------------------------------------------
LAYER( // layer 0: default
// unused
0,
@ -33,7 +41,7 @@ uint8_t PROGMEM _kb_layout[KB_LAYERS][KB_ROWS][KB_COLUMNS] = {
_grave, _1, _2, _3, _4, _5, _equal,
_tab, _Q, _W, _E, _R, _T, _esc,
_capsLock, _A, _S, _D, _F, _G,
_shiftL, _Z, _X, _C, _V, _B, _ctrlL,
_shiftL, _Z, _X, _C, _V, _B, 0/*inc*/,
_guiL, _arrowL, _arrowU, _arrowD, _arrowR,
_bs,
_del, _ctrlL,
@ -42,20 +50,131 @@ _guiL, _arrowL, _arrowU, _arrowD, _arrowR,
_backslash, _6, _7, _8, _9, _0, _dash,
_bracketL, _Y, _U, _I, _O, _P, _bracketR,
_H, _J, _K, _L, _semicolon, _quote,
_ctrlR, _N, _M, _comma, _period, _slash, _shiftR,
0/*inc*/, _N, _M, _comma, _period, _slash, _shiftR,
_arrowL, _arrowD, _arrowU, _arrowR, _guiR,
_space,
_ctrlR, _enter,
_altR, _pageU, _pageD ),
// ----------------------------------------------------------------------------
LAYER( // layer 1: function and symbol keys
// unused
0,
// left hand
0, _F1, _F2, _F3, _F4, _F5, _F11,
0, _braceL_kp, _braceR_kp, _bracketL, _bracketR, 0, _esc,
0, _semicolon, _slash, _dash, 0, _colon_kp,
0, 0, 0, 0, 0, 0, 0/*dec*/,
0, _arrowL, _arrowU, _arrowD, _arrowR,
_bs,
_del, _ctrlL,
_end, _home, _altL,
// right hand
_F12, _F6, _F7, _F8, _F9, _F10, 0,
0, 0, _dash, _lt_kp, _gt_kp, _currencyUnit, 0,
_backslash, 0, _parenL_kp, _parenR_kp, _equal, 0,
0/*dec*/, _mul_kp, 0, 0, 0, 0, 0,
_arrowL, _arrowD, _arrowU, _arrowR, 0,
_space,
_ctrlR, _enter,
_altR, _pageU, _pageD )
// ----------------------------------------------------------------------------
};
kbfun_funptr_t PROGMEM _kb_layout_press[KB_LAYERS][KB_ROWS][KB_COLUMNS] = {
LAYER_SET_ALL(NULL, &kbfun_press) // layer 0: default
// ----------------------------------------------------------------------------
LAYER( // layer 0: default
// unused
NULL,
// left hand
f_press,f_press,f_press,f_press,f_press,f_press,f_press,
f_press,f_press,f_press,f_press,f_press,f_press,f_press,
f_press,f_press,f_press,f_press,f_press,f_press,
f_press,f_press,f_press,f_press,f_press,f_press,f_l_inc,
f_press,f_press,f_press,f_press,f_press,
f_press,
f_press, f_press,
f_press,f_press,f_press,
// right hand
f_press,f_press,f_press,f_press,f_press,f_press,f_press,
f_press,f_press,f_press,f_press,f_press,f_press,f_press,
f_press,f_press,f_press,f_press,f_press,f_press,
f_l_inc,f_press,f_press,f_press,f_press,f_press,f_press,
f_press,f_press,f_press,f_press,f_press,
f_press,
f_press, f_press,
f_press,f_press,f_press ),
// ----------------------------------------------------------------------------
LAYER( // layer 1: function and symbol keys
// unused
NULL,
// left hand
f_press,f_press,f_press,f_press,f_press,f_press,f_press,
f_press,f_press,f_press,f_press,f_press,f_press,f_press,
f_press,f_press,f_press,f_press,f_press,f_press,
f_press,f_press,f_press,f_press,f_press,f_press, NULL,
f_press,f_press,f_press,f_press,f_press,
f_press,
f_press, f_press,
f_press,f_press,f_press,
// right hand
f_press,f_press,f_press,f_press,f_press,f_press,f_press,
f_press,f_press,f_press,f_press,f_press,f_press,f_press,
f_press,f_press,f_press,f_press,f_press,f_press,
NULL,f_press,f_press,f_press,f_press,f_press,f_press,
f_press,f_press,f_press,f_press,f_press,
f_press,
f_press, f_press,
f_press,f_press,f_press )
// ----------------------------------------------------------------------------
};
kbfun_funptr_t PROGMEM _kb_layout_release[KB_LAYERS][KB_ROWS][KB_COLUMNS] = {
LAYER_SET_ALL(NULL, &kbfun_release) // layer 0: default
// ----------------------------------------------------------------------------
LAYER( // layer 0: default
// unused
NULL,
// left hand
f_relea,f_relea,f_relea,f_relea,f_relea,f_relea,f_relea,
f_relea,f_relea,f_relea,f_relea,f_relea,f_relea,f_relea,
f_relea,f_relea,f_relea,f_relea,f_relea,f_relea,
f_relea,f_relea,f_relea,f_relea,f_relea,f_relea, NULL,
f_relea,f_relea,f_relea,f_relea,f_relea,
f_relea,
f_relea, f_relea,
f_relea,f_relea,f_relea,
// right hand
f_relea,f_relea,f_relea,f_relea,f_relea,f_relea,f_relea,
f_relea,f_relea,f_relea,f_relea,f_relea,f_relea,f_relea,
f_relea,f_relea,f_relea,f_relea,f_relea,f_relea,
NULL,f_relea,f_relea,f_relea,f_relea,f_relea,f_relea,
f_relea,f_relea,f_relea,f_relea,f_relea,
f_relea,
f_relea, f_relea,
f_relea,f_relea,f_relea ),
// ----------------------------------------------------------------------------
LAYER( // layer 1: function and symbol keys
// unused
NULL,
// left hand
f_relea,f_relea,f_relea,f_relea,f_relea,f_relea,f_relea,
f_relea,f_relea,f_relea,f_relea,f_relea,f_relea,f_relea,
f_relea,f_relea,f_relea,f_relea,f_relea,f_relea,
f_relea,f_relea,f_relea,f_relea,f_relea,f_relea,f_l_dec,
f_relea,f_relea,f_relea,f_relea,f_relea,
f_relea,
f_relea, f_relea,
f_relea,f_relea,f_relea,
// right hand
f_relea,f_relea,f_relea,f_relea,f_relea,f_relea,f_relea,
f_relea,f_relea,f_relea,f_relea,f_relea,f_relea,f_relea,
f_relea,f_relea,f_relea,f_relea,f_relea,f_relea,
f_l_dec,f_relea,f_relea,f_relea,f_relea,f_relea,f_relea,
f_relea,f_relea,f_relea,f_relea,f_relea,
f_relea,
f_relea, f_relea,
f_relea,f_relea,f_relea )
// ----------------------------------------------------------------------------
};

View File

@ -13,7 +13,7 @@
#include "../led.h"
#define KB_LAYERS 1 // must match what's defined in "qwerty.c"
#define KB_LAYERS 2 // must match what's defined in "qwerty.c"
#define kb_led_num_on() _led_1_on()
#define kb_led_num_off() _led_1_off()

View File

@ -19,31 +19,6 @@
#include "key-functions.h"
// ----------------------------------------------------------------------------
#if 0 // not being used right now
static uint8_t _inc_current_layer(uint8_t * current_layer) {
if (*current_layer < (KB_LAYERS-1))
(*current_layer)++;
else
return 1; // error: can't increase
return 0; // success
}
static uint8_t _dec_current_layer(uint8_t * current_layer) {
if (*current_layer > 0)
(*current_layer)--;
else
return 1; // error: can't decrease
return 0; // success
}
#endif
// ----------------------------------------------------------------------------
void kbfun_press(
uint8_t keycode, uint8_t * current_layer,
uint8_t * row, uint8_t * col ) {
@ -116,3 +91,24 @@ void kbfun_release(
}
}
void kbfun_layer_inc(
uint8_t keycode, uint8_t * current_layer,
uint8_t * row, uint8_t * col ) {
if (*current_layer < (KB_LAYERS-1))
(*current_layer)++;
// else do nothing
}
void kbfun_layer_dec(
uint8_t keycode, uint8_t * current_layer,
uint8_t * row, uint8_t * col ) {
if (*current_layer > 0)
(*current_layer)--;
// else do nothing
}
// ----------------------------------------------------------------------------

View File

@ -22,6 +22,12 @@
void kbfun_release(
uint8_t keycode, uint8_t * current_layer,
uint8_t * row, uint8_t * col );
void kbfun_layer_inc(
uint8_t keycode, uint8_t * current_layer,
uint8_t * row, uint8_t * col );
void kbfun_layer_dec(
uint8_t keycode, uint8_t * current_layer,
uint8_t * row, uint8_t * col );
#endif