moved libs around; split some code in layouts
parent
4e913361ac
commit
229a2446a7
|
@ -7,7 +7,7 @@
|
|||
* ------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
#include "lib/_data-types.h"
|
||||
#include "lib/data-types.h"
|
||||
|
||||
#define KEYBOARD_INCLUDE_PRIVATE
|
||||
#include "ergodox/matrix.h"
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#ifndef ERGODOX_h
|
||||
#define ERGODOX_h
|
||||
|
||||
#include "lib/_data-types.h"
|
||||
#include "lib/data-types.h"
|
||||
|
||||
#include "ergodox/layout.h" // number of layers, layout
|
||||
#include "ergodox/matrix.h" // kb dimensions, matrix status
|
||||
|
|
|
@ -11,10 +11,8 @@
|
|||
#ifndef LAYOUT_h
|
||||
#define LAYOUT_h
|
||||
|
||||
#include <avr/pgmspace.h>
|
||||
|
||||
#include "lib/_data-types.h"
|
||||
#include "lib/_key-functions.h" // for `kbfun_funptr_t`
|
||||
#include "lib/data-types.h"
|
||||
#include "lib/key-functions.h" // for `kbfun_funptr_t`
|
||||
|
||||
#include "matrix.h" // for number of rows and columns
|
||||
|
||||
|
|
|
@ -21,19 +21,14 @@ To write a new one:
|
|||
(../../lib/_usb/keyboard-usage-page--short-names.h) for available keycodes.
|
||||
* See [key-functions.c] (../../lib/_key-functions.c) for what functions keys
|
||||
can call.
|
||||
* See [_defaults.h] (layout/_defaults.h) for default function layers and
|
||||
aliases.
|
||||
|
||||
|
||||
## notes
|
||||
|
||||
* Assuming 560 bytes for everything else in RAM space, there's 2000 bytes left
|
||||
for the layout. This should be enough for about 7 layers. Watch your RAM
|
||||
usage if you're getting close.
|
||||
|
||||
* The layout matricies could be moved to flash memory (program space,
|
||||
instead of data space) in order to save RAM, but that doesn't seem
|
||||
necessary at the moment. It would also be slightly slower, though that
|
||||
probably shouldn't be a concern.
|
||||
|
||||
* Each layer takes 420 bytes of memory, wherever it's stored. (The matrix size
|
||||
is 12x7, keycodes are 1 byte each, and function pointers are 2 bytes.)
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
|
|
|
@ -0,0 +1,63 @@
|
|||
/* ----------------------------------------------------------------------------
|
||||
* ergoDOX layout : default layers and aliases
|
||||
* ----------------------------------------------------------------------------
|
||||
* Copyright (c) 2012 Ben Blazak <benblazak.dev@gmail.com>
|
||||
* Released under The MIT License (MIT) (see "license.md")
|
||||
* Project located at <https://github.com/benblazak/ergodox-firmware>
|
||||
* ------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
// aliases
|
||||
#define NA 0 // for keys not available on the matrix
|
||||
#define NOP 0 // for keys that do nothing
|
||||
#define f_NA NULL // for functions not available on the matrix
|
||||
#define f_NOP NULL // for functions that do nothing
|
||||
// --- require "lib/key-functions.h"
|
||||
#define f_press &kbfun_press
|
||||
#define f_release &kbfun_release
|
||||
|
||||
|
||||
#define DEFAULT_LAYER_PRESS \
|
||||
{ \
|
||||
/* right hand */ \
|
||||
/* ---- 0 ---- ---- 1 ---- ---- 2 ---- ---- 3 ---- ---- 4 ---- ---- 5 ---- ---- 6 ---- */ \
|
||||
/* 0 */ { f_press , f_press , f_press , f_press , f_press , f_press , f_press }, /* 0 */ \
|
||||
/* 1 */ { f_press , f_press , f_press , f_press , f_press , f_press , f_press }, /* 1 */ \
|
||||
/* 2 */ { f_NA , f_press , f_press , f_press , f_press , f_press , f_press }, /* 2 */ \
|
||||
/* 3 */ { f_press , f_press , f_press , f_press , f_press , f_press , f_press }, /* 3 */ \
|
||||
/* 4 */ { f_NA , f_NA , f_press , f_press , f_press , f_press , f_press }, /* 4 */ \
|
||||
/* 5 */ { f_NA , f_press , f_press , f_press , f_press , f_press , f_press }, /* 5 */ \
|
||||
/* ---- 0 ---- ---- 1 ---- ---- 2 ---- ---- 3 ---- ---- 4 ---- ---- 5 ---- ---- 6 ---- */ \
|
||||
/* left hand */ \
|
||||
/* ---- 0 ---- ---- 1 ---- ---- 2 ---- ---- 3 ---- ---- 4 ---- ---- 5 ---- ---- 6 ---- */ \
|
||||
/* 6 */ { f_press , f_press , f_press , f_press , f_press , f_press , f_press }, /* 6 */ \
|
||||
/* 7 */ { f_press , f_press , f_press , f_press , f_press , f_press , f_press }, /* 7 */ \
|
||||
/* 8 */ { f_press , f_press , f_press , f_press , f_press , f_press , f_NA }, /* 8 */ \
|
||||
/* 9 */ { f_press , f_press , f_press , f_press , f_press , f_press , f_press }, /* 9 */ \
|
||||
/* A */ { f_press , f_press , f_press , f_press , f_press , f_NA , f_NA }, /* A */ \
|
||||
/* B */ { f_press , f_press , f_press , f_press , f_press , f_press , f_NA } /* B */ \
|
||||
/* ---- 0 ---- ---- 1 ---- ---- 2 ---- ---- 3 ---- ---- 4 ---- ---- 5 ---- ---- 6 ---- */ \
|
||||
}
|
||||
|
||||
#define DEFAULT_LAYER_RELEASE \
|
||||
{ \
|
||||
/* right hand */ \
|
||||
/* ---- 0 ---- ---- 1 ---- ---- 2 ---- ---- 3 ---- ---- 4 ---- ---- 5 ---- ---- 6 ---- */ \
|
||||
/* 0 */ { f_release , f_release , f_release , f_release , f_release , f_release , f_release }, /* 0 */ \
|
||||
/* 1 */ { f_release , f_release , f_release , f_release , f_release , f_release , f_release }, /* 1 */ \
|
||||
/* 2 */ { f_NA , f_release , f_release , f_release , f_release , f_release , f_release }, /* 2 */ \
|
||||
/* 3 */ { f_release , f_release , f_release , f_release , f_release , f_release , f_release }, /* 3 */ \
|
||||
/* 4 */ { f_NA , f_NA , f_release , f_release , f_release , f_release , f_release }, /* 4 */ \
|
||||
/* 5 */ { f_NA , f_release , f_release , f_release , f_release , f_release , f_release }, /* 5 */ \
|
||||
/* ---- 0 ---- ---- 1 ---- ---- 2 ---- ---- 3 ---- ---- 4 ---- ---- 5 ---- ---- 6 ---- */ \
|
||||
/* left hand */ \
|
||||
/* ---- 0 ---- ---- 1 ---- ---- 2 ---- ---- 3 ---- ---- 4 ---- ---- 5 ---- ---- 6 ---- */ \
|
||||
/* 6 */ { f_release , f_release , f_release , f_release , f_release , f_release , f_release }, /* 6 */ \
|
||||
/* 7 */ { f_release , f_release , f_release , f_release , f_release , f_release , f_release }, /* 7 */ \
|
||||
/* 8 */ { f_release , f_release , f_release , f_release , f_release , f_release , f_NA }, /* 8 */ \
|
||||
/* 9 */ { f_release , f_release , f_release , f_release , f_release , f_release , f_release }, /* 9 */ \
|
||||
/* A */ { f_release , f_release , f_release , f_release , f_release , f_NA , f_NA }, /* A */ \
|
||||
/* B */ { f_release , f_release , f_release , f_release , f_release , f_release , f_NA } /* B */ \
|
||||
/* ---- 0 ---- ---- 1 ---- ---- 2 ---- ---- 3 ---- ---- 4 ---- ---- 5 ---- ---- 6 ---- */ \
|
||||
}
|
||||
|
|
@ -9,24 +9,13 @@
|
|||
* ------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
#include <avr/pgmspace.h>
|
||||
|
||||
#include "lib/_data-types.h"
|
||||
#include "lib/_usb/keyboard-usage-page--short-names.h"
|
||||
#include "lib/_key-functions.h"
|
||||
#include "lib/data-types.h"
|
||||
#include "lib/usb/keyboard-usage-page--short-names.h"
|
||||
#include "lib/key-functions.h"
|
||||
|
||||
#include "../matrix.h"
|
||||
#include "../layout.h"
|
||||
|
||||
|
||||
// aliases
|
||||
#define NA 0 // for keys not available on the matrix
|
||||
#define NOP 0 // for keys that do nothing
|
||||
#define f_NA NULL // for functions not available on the matrix
|
||||
#define f_NOP NULL // for functions that do nothing
|
||||
// ---
|
||||
#define f_press &kbfun_press
|
||||
#define f_release &kbfun_release
|
||||
#include "_defaults.h" // for default layers and aliases
|
||||
|
||||
|
||||
// error check; everything below assumes these dimensions
|
||||
|
@ -36,8 +25,8 @@
|
|||
|
||||
|
||||
uint8_t _kb_layout[KB_LAYERS][KB_ROWS][KB_COLUMNS] = {
|
||||
{ // layer 0: default
|
||||
// right hand
|
||||
{ /* layer 0: default */
|
||||
/* right hand */
|
||||
/* ---- 0 ---- ---- 1 ---- ---- 2 ---- ---- 3 ---- ---- 4 ---- ---- 5 ---- ---- 6 ---- */
|
||||
/* 0 */ { NOP , _6 , _7 , _8 , _9 , _0 , _dash }, /* 0 */
|
||||
/* 1 */ { NOP , _Y , _U , _I , _O , _P , _bracketL }, /* 1 */
|
||||
|
@ -46,7 +35,7 @@ uint8_t _kb_layout[KB_LAYERS][KB_ROWS][KB_COLUMNS] = {
|
|||
/* 4 */ { NA , NA , _arrowU , _arrowD , _backslash, _bracketR , NOP }, /* 4 */
|
||||
/* 5 */ { NA , _ctrlR , _altR , _pageU , _pageD , _enter , _space }, /* 5 */
|
||||
/* ---- 0 ---- ---- 1 ---- ---- 2 ---- ---- 3 ---- ---- 4 ---- ---- 5 ---- ---- 6 ---- */
|
||||
// left hand
|
||||
/* left hand */
|
||||
/* ---- 0 ---- ---- 1 ---- ---- 2 ---- ---- 3 ---- ---- 4 ---- ---- 5 ---- ---- 6 ---- */
|
||||
/* 6 */ { _equal , _1 , _2 , _3 , _4 , _5 , NOP }, /* 6 */
|
||||
/* 7 */ { _tab , _Q , _W , _E , _R , _T , NOP }, /* 7 */
|
||||
|
@ -59,48 +48,10 @@ uint8_t _kb_layout[KB_LAYERS][KB_ROWS][KB_COLUMNS] = {
|
|||
};
|
||||
|
||||
kbfun_funptr_t _kb_layout_press[KB_LAYERS][KB_ROWS][KB_COLUMNS] = {
|
||||
{ // layer 0: default
|
||||
// right hand
|
||||
/* ---- 0 ---- ---- 1 ---- ---- 2 ---- ---- 3 ---- ---- 4 ---- ---- 5 ---- ---- 6 ---- */
|
||||
/* 0 */ { f_press , f_press , f_press , f_press , f_press , f_press , f_press }, /* 0 */
|
||||
/* 1 */ { f_press , f_press , f_press , f_press , f_press , f_press , f_press }, /* 1 */
|
||||
/* 2 */ { f_NA , f_press , f_press , f_press , f_press , f_press , f_press }, /* 2 */
|
||||
/* 3 */ { f_press , f_press , f_press , f_press , f_press , f_press , f_press }, /* 3 */
|
||||
/* 4 */ { f_NA , f_NA , f_press , f_press , f_press , f_press , f_press }, /* 4 */
|
||||
/* 5 */ { f_NA , f_press , f_press , f_press , f_press , f_press , f_press }, /* 5 */
|
||||
/* ---- 0 ---- ---- 1 ---- ---- 2 ---- ---- 3 ---- ---- 4 ---- ---- 5 ---- ---- 6 ---- */
|
||||
// left hand
|
||||
/* ---- 0 ---- ---- 1 ---- ---- 2 ---- ---- 3 ---- ---- 4 ---- ---- 5 ---- ---- 6 ---- */
|
||||
/* 6 */ { f_press , f_press , f_press , f_press , f_press , f_press , f_press }, /* 6 */
|
||||
/* 7 */ { f_press , f_press , f_press , f_press , f_press , f_press , f_press }, /* 7 */
|
||||
/* 8 */ { f_press , f_press , f_press , f_press , f_press , f_press , f_NA }, /* 8 */
|
||||
/* 9 */ { f_press , f_press , f_press , f_press , f_press , f_press , f_press }, /* 9 */
|
||||
/* A */ { f_press , f_press , f_press , f_press , f_press , f_NA , f_NA }, /* A */
|
||||
/* B */ { f_press , f_press , f_press , f_press , f_press , f_press , f_NA } /* B */
|
||||
/* ---- 0 ---- ---- 1 ---- ---- 2 ---- ---- 3 ---- ---- 4 ---- ---- 5 ---- ---- 6 ---- */
|
||||
}
|
||||
/* layer 0: default */ DEFAULT_LAYER_PRESS
|
||||
};
|
||||
|
||||
kbfun_funptr_t _kb_layout_release[KB_LAYERS][KB_ROWS][KB_COLUMNS] = {
|
||||
{ // layer 0: default
|
||||
// right hand
|
||||
/* ---- 0 ---- ---- 1 ---- ---- 2 ---- ---- 3 ---- ---- 4 ---- ---- 5 ---- ---- 6 ---- */
|
||||
/* 0 */ { f_release , f_release , f_release , f_release , f_release , f_release , f_release }, /* 0 */
|
||||
/* 1 */ { f_release , f_release , f_release , f_release , f_release , f_release , f_release }, /* 1 */
|
||||
/* 2 */ { f_NA , f_release , f_release , f_release , f_release , f_release , f_release }, /* 2 */
|
||||
/* 3 */ { f_release , f_release , f_release , f_release , f_release , f_release , f_release }, /* 3 */
|
||||
/* 4 */ { f_NA , f_NA , f_release , f_release , f_release , f_release , f_release }, /* 4 */
|
||||
/* 5 */ { f_NA , f_release , f_release , f_release , f_release , f_release , f_release }, /* 5 */
|
||||
/* ---- 0 ---- ---- 1 ---- ---- 2 ---- ---- 3 ---- ---- 4 ---- ---- 5 ---- ---- 6 ---- */
|
||||
// left hand
|
||||
/* ---- 0 ---- ---- 1 ---- ---- 2 ---- ---- 3 ---- ---- 4 ---- ---- 5 ---- ---- 6 ---- */
|
||||
/* 6 */ { f_release , f_release , f_release , f_release , f_release , f_release , f_release }, /* 6 */
|
||||
/* 7 */ { f_release , f_release , f_release , f_release , f_release , f_release , f_release }, /* 7 */
|
||||
/* 8 */ { f_release , f_release , f_release , f_release , f_release , f_release , f_NA }, /* 8 */
|
||||
/* 9 */ { f_release , f_release , f_release , f_release , f_release , f_release , f_release }, /* 9 */
|
||||
/* A */ { f_release , f_release , f_release , f_release , f_release , f_NA , f_NA }, /* A */
|
||||
/* B */ { f_release , f_release , f_release , f_release , f_release , f_release , f_NA } /* B */
|
||||
/* ---- 0 ---- ---- 1 ---- ---- 2 ---- ---- 3 ---- ---- 4 ---- ---- 5 ---- ---- 6 ---- */
|
||||
}
|
||||
/* layer 0: default */ DEFAULT_LAYER_RELEASE
|
||||
};
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
* ------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
#include "lib/_data-types.h"
|
||||
#include "lib/data-types.h"
|
||||
|
||||
#include "matrix.h"
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
#ifndef MATRIX_h
|
||||
#define MATRIX_h
|
||||
|
||||
#include "lib/_data-types.h"
|
||||
#include "lib/data-types.h"
|
||||
|
||||
#define KB_ROWS 12 // must match real life
|
||||
#define KB_COLUMNS 7 // must match real life
|
||||
|
|
|
@ -8,9 +8,8 @@
|
|||
|
||||
|
||||
#include <util/twi.h>
|
||||
|
||||
#include "lib/_data-types.h"
|
||||
#include "lib/_twi.h" // `TWI_FREQ` defined in "teensy-2-0.c"
|
||||
#include "lib/data-types.h"
|
||||
#include "lib/twi.h" // `TWI_FREQ` defined in "teensy-2-0.c"
|
||||
|
||||
#define KEYBOARD_INCLUDE_PRIVATE
|
||||
#include "matrix.h"
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
#ifndef MCP23018_h
|
||||
#define MCP23018_h
|
||||
|
||||
#include "lib/_data-types.h"
|
||||
#include "lib/data-types.h"
|
||||
|
||||
#ifdef KEYBOARD_INCLUDE_PRIVATE
|
||||
|
||||
|
|
|
@ -8,10 +8,9 @@
|
|||
|
||||
|
||||
#include <avr/io.h>
|
||||
|
||||
#include "lib/_data-types.h"
|
||||
#include "lib/data-types.h"
|
||||
#define TWI_FREQ 400000
|
||||
#include "lib/_twi.h"
|
||||
#include "lib/twi.h"
|
||||
|
||||
#define KEYBOARD_INCLUDE_PRIVATE
|
||||
#include "matrix.h"
|
||||
|
|
|
@ -11,8 +11,7 @@
|
|||
#define TEENSY_2_0_h
|
||||
|
||||
#include <avr/io.h> // for the register macros
|
||||
|
||||
#include "lib/_data-types.h"
|
||||
#include "lib/data-types.h"
|
||||
|
||||
#include "matrix.h"
|
||||
|
||||
|
|
|
@ -11,13 +11,12 @@
|
|||
* ------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
#include "lib/pjrc/usb_keyboard/usb_keyboard.h"
|
||||
#include "lib/_data-types.h"
|
||||
#include "lib/_usb/keyboard-usage-page.h"
|
||||
|
||||
#include "lib-other/pjrc/usb_keyboard/usb_keyboard.h"
|
||||
#include "lib/data-types.h"
|
||||
#include "lib/usb/keyboard-usage-page.h"
|
||||
#include "keyboard.h"
|
||||
|
||||
#include "_key-functions.h"
|
||||
#include "key-functions.h"
|
||||
|
||||
|
||||
// ----------------------------------------------------------------------------
|
|
@ -10,7 +10,7 @@
|
|||
#ifndef KEY_FUNCTIONS_h
|
||||
#define KEY_FUNCTIONS_h
|
||||
|
||||
#include "lib/_data-types.h"
|
||||
#include "lib/data-types.h"
|
||||
|
||||
typedef void (*kbfun_funptr_t)(uint8_t*, uint8_t*, uint8_t*, uint8_t*);
|
||||
|
|
@ -1,9 +1,6 @@
|
|||
# src/lib
|
||||
Stuff that's generally useful
|
||||
|
||||
* Directories prepended by a `_` were written for (and exist solely in) this
|
||||
project.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
Copyright © 2012 Ben Blazak <benblazak.dev@gmail.com>
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#undef _inc
|
||||
#define _str(s) #s // stringify
|
||||
#define _expstr(s) _str(s) // expand -> stringify
|
||||
#define _inc _expstr(_twi/MAKEFILE_BOARD.h) // inc(lude)
|
||||
#define _inc _expstr(twi/MAKEFILE_BOARD.h) // inc(lude)
|
||||
#include _inc
|
||||
#undef _str
|
||||
#undef _expstr
|
|
@ -21,10 +21,8 @@
|
|||
* ------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
#include <util/delay.h> //dbg
|
||||
#include <util/twi.h>
|
||||
|
||||
#include "../_twi.h"
|
||||
#include "lib/twi.h"
|
||||
|
||||
|
||||
void twi_init(void) {
|
|
@ -9,9 +9,8 @@
|
|||
|
||||
|
||||
#include <util/delay.h>
|
||||
|
||||
#include "lib/pjrc/usb_keyboard/usb_keyboard.h"
|
||||
#include "lib/_data-types.h"
|
||||
#include "lib-other/pjrc/usb_keyboard/usb_keyboard.h"
|
||||
#include "lib/data-types.h"
|
||||
|
||||
#include "keyboard.h"
|
||||
|
||||
|
|
|
@ -41,6 +41,9 @@ SRC += $(wildcard keyboard/$(KEYBOARD)/layout/$(LAYOUT)*.c)
|
|||
SRC += $(wildcard lib/*.c)
|
||||
SRC += $(wildcard lib/*/*.c)
|
||||
SRC += $(wildcard lib/*/*/*.c)
|
||||
SRC += $(wildcard lib-other/*.c)
|
||||
SRC += $(wildcard lib-other/*/*.c)
|
||||
SRC += $(wildcard lib-other/*/*/*.c)
|
||||
|
||||
OBJ = $(SRC:%.c=%.o)
|
||||
|
||||
|
|
Loading…
Reference in New Issue