- Added layout files for 50 key and kishsaver - Not yet working (some USB issues on AVR to debug) - Fixed an OSX issue when building AVR - Cleanupsimple
endif () | endif () | ||||
#| Only Teensy based AVRs supported | |||||
set ( TEENSY 1 ) | |||||
#| Extra Compiler Sources | #| Extra Compiler Sources | ||||
#| Mostly for convenience functions like interrupt handlers | #| Mostly for convenience functions like interrupt handlers | ||||
set( COMPILER_SRCS | set( COMPILER_SRCS |
### | ### | ||||
### | |||||
# Disable -Wl,-search_paths_first for AVR on OSX (not supported by avr-gcc) | |||||
# | |||||
if ( "${CPU}" STREQUAL "megaAVR" AND APPLE ) | |||||
string ( REPLACE "-Wl,-search_paths_first" "" CMAKE_C_LINK_FLAGS ${CMAKE_C_LINK_FLAGS} ) | |||||
string ( REPLACE "-Wl,-search_paths_first" "" CMAKE_CXX_LINK_FLAGS ${CMAKE_CXX_LINK_FLAGS} ) | |||||
endif () | |||||
### | ### | ||||
# Build Targets | # Build Targets |
#| If set BaseMap cannot be found, use default map | #| If set BaseMap cannot be found, use default map | ||||
set ( pathname "${PROJECT_SOURCE_DIR}/${ScanModulePath}" ) | set ( pathname "${PROJECT_SOURCE_DIR}/${ScanModulePath}" ) | ||||
if ( NOT EXISTS "${filename}/${BaseMap}.kll" ) | |||||
if ( NOT EXISTS ${pathname}/${BaseMap}.kll ) | |||||
set ( BaseMap_Args ${BaseMap_Args} ${pathname}/defaultMap.kll ) | set ( BaseMap_Args ${BaseMap_Args} ${pathname}/defaultMap.kll ) | ||||
set ( KLL_DEPENDS ${KLL_DEPENDS} ${pathname}/defaultMap.kll ) | set ( KLL_DEPENDS ${KLL_DEPENDS} ${pathname}/defaultMap.kll ) | ||||
else () | else () |
// This needs to be defined per microcontroller | // This needs to be defined per microcontroller | ||||
// e.g. mk20s -> 32 bit | // e.g. mk20s -> 32 bit | ||||
// atmega -> 16 bit | // atmega -> 16 bit | ||||
#if defined(_mk20dx128_) || defined(_mk20dx128vlf5_) || defined(_mk20dx256_) // ARM | |||||
typedef uint32_t nat_ptr_t; | typedef uint32_t nat_ptr_t; | ||||
//typedef uint16_t nat_ptr_t; | |||||
#elif defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_) // AVR | |||||
typedef uint16_t nat_ptr_t; | |||||
#endif | |||||
// Layer_IN( map, name ); | // Layer_IN( map, name ); | ||||
// * map - Trigger map | // * map - Trigger map | ||||
// * name - Name of the trigger map | // * name - Name of the trigger map | ||||
#define Layer_IN( map, name ) { map, name, sizeof( map ) / 4 - 1, 0 } | |||||
#define Layer_IN( map, name ) { map, name, sizeof( map ) / sizeof( nat_ptr_t ) - 1, 0 } | |||||
// Total number of layers | // Total number of layers | ||||
#define LayerNum sizeof( LayerIndex ) / sizeof( Layer ) | #define LayerNum sizeof( LayerIndex ) / sizeof( Layer ) |
Name = 50Key; | |||||
Version = 0.1; | |||||
Author = "HaaTa (Jacob Alexander) 2014"; | |||||
KLL = 0.3; | |||||
# Modified Date | |||||
Date = 2014-09-14; | |||||
# NOTE: Using IBM Model M 50 key as the base layout | |||||
# http://deskthority.net/wiki/File:IBM_Model_M_50-keys_06.jpg | |||||
# Using Red labels when there's an option | |||||
# When no key matches to USB HID, adding useful keys | |||||
S0x40 : U"Alt"; # Lgoff | |||||
S0x41 : U"Pause"; | |||||
S0x42 : U"P"; | |||||
S0x43 : U"O"; | |||||
S0x44 : U"L"; | |||||
S0x45 : U","; | |||||
S0x46 : U"Slash"; | |||||
S0x47 : U"Enter"; | |||||
S0x49 : U"PageUp"; | |||||
S0x4A : U"I"; | |||||
S0x4B : U"K"; | |||||
S0x4C : U"J"; | |||||
S0x4D : U"M"; | |||||
S0x4E : U"."; | |||||
S0x4F : U"Keypad Asterix"; # Asterix | |||||
S0x51 : U"PageDown"; | |||||
S0x53 : U"U"; | |||||
S0x54 : U"H"; | |||||
S0x56 : U"N"; | |||||
S0x57 : U"Tab"; | |||||
S0x58 : U"Home"; # Calc | |||||
S0x59 : U"PrintScreen"; # Pay / PrtSc | |||||
S0x5A : U"Y"; | |||||
S0x5B : U"T"; | |||||
S0x5C : U"G"; | |||||
S0x5D : U"V"; | |||||
S0x5E : U"B"; | |||||
S0x5F : U"Space"; | |||||
S0x61 : U"Equals"; # Next / List | |||||
S0x62 : U"R"; | |||||
S0x63 : U"F"; | |||||
S0x64 : U"D"; | |||||
S0x65 : U"C"; # C / Up | |||||
S0x66 : U"End"; # Reset / Right | |||||
S0x67 : U"Insert"; # Insert / Down | |||||
S0x68 : U"RAlt"; # Csh X / Rev | |||||
S0x69 : U"Gui"; # Rcpt | |||||
S0x6A : U"E"; | |||||
S0x6B : U"W"; | |||||
S0x6C : U"S"; | |||||
S0x6D : U"Z"; | |||||
S0x6E : U"X"; | |||||
S0x6F : U"Delete"; # Delete / Left | |||||
S0x71 : U"Help"; | |||||
S0x72 : U"Q"; | |||||
S0x73 : U"A"; | |||||
S0x74 : U"Esc"; | |||||
S0x75 : U"CapsLock"; | |||||
S0x76 : U"Backspace"; | |||||
S0x77 : U"Shift"; | |||||
/* Copyright (C) 2011-2013 by Joseph Makuch | |||||
* Additions by Jacob Alexander (2013-2014) | |||||
* | |||||
* This library is free software; you can redistribute it and/or | |||||
* modify it under the terms of the GNU Lesser General Public | |||||
* License as published by the Free Software Foundation; either | |||||
* version 3.0 of the License, or (at your option) any later version. | |||||
* | |||||
* This library 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 | |||||
* Lesser General Public License for more details. | |||||
* | |||||
* You should have received a copy of the GNU Lesser General Public | |||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>. | |||||
*/ | |||||
#ifndef __KEYMAP_H | |||||
#define __KEYMAP_H | |||||
// This file contains the a basic US ANSI-like layout for the Kishsaver using the AVR DPH Capsense Controller | |||||
// ----- Variables ----- | |||||
// Default 1-indexed key mappings | |||||
static uint8_t DefaultMap_Lookup[] = { | |||||
0, // 0x00 | |||||
0, // 0x01 | |||||
0, // 0x02 | |||||
0, // 0x03 | |||||
0, // 0x04 | |||||
0, // 0x05 | |||||
0, // 0x06 | |||||
0, // 0x07 | |||||
0, // 0x08 | |||||
0, // 0x09 | |||||
0, // 0x0A | |||||
0, // 0x0B | |||||
0, // 0x0C | |||||
0, // 0x0D | |||||
0, // 0x0E | |||||
0, // 0x0F | |||||
0, // 0x10 | |||||
0, // 0x11 | |||||
0, // 0x12 | |||||
0, // 0x13 | |||||
0, // 0x14 | |||||
0, // 0x15 | |||||
0, // 0x16 | |||||
0, // 0x17 | |||||
0, // 0x18 | |||||
0, // 0x19 | |||||
0, // 0x1A | |||||
0, // 0x1B | |||||
0, // 0x1C | |||||
0, // 0x1D | |||||
0, // 0x1E | |||||
0, // 0x1F | |||||
0, // 0x20 | |||||
0, // 0x21 | |||||
0, // 0x22 | |||||
0, // 0x23 | |||||
0, // 0x24 | |||||
0, // 0x25 | |||||
0, // 0x26 | |||||
0, // 0x27 | |||||
0, // 0x28 | |||||
0, // 0x29 | |||||
0, // 0x2A | |||||
0, // 0x2B | |||||
0, // 0x2C | |||||
0, // 0x2D | |||||
0, // 0x2E | |||||
0, // 0x2F | |||||
0, // 0x30 | |||||
0, // 0x31 | |||||
0, // 0x32 | |||||
0, // 0x33 | |||||
0, // 0x34 | |||||
0, // 0x35 | |||||
0, // 0x36 | |||||
0, // 0x37 | |||||
0, // 0x38 | |||||
0, // 0x39 | |||||
0, // 0x3A | |||||
0, // 0x3B | |||||
0, // 0x3C | |||||
0, // 0x3D | |||||
0, // 0x3E | |||||
0, // 0x3F | |||||
KEY_BACKSPACE, // 0x40 | |||||
0, // 0x41 | |||||
KEY_RIGHT_BRACE, // 0x42 | |||||
KEY_DELETE, // 0x43 | |||||
KEY_ENTER, // 0x44 | |||||
0, // 0x45 | |||||
KEY_RSHIFT, // 0x46 | |||||
KEY_RCTRL, // 0x47 | |||||
KEY_EQUAL, // 0x48 | |||||
KEY_MINUS, // 0x49 | |||||
KEY_LEFT_BRACE, // 0x4A | |||||
KEY_BACKSLASH, // 0x4B | |||||
KEY_QUOTE, // 0x4C | |||||
KEY_SLASH, // 0x4D | |||||
KEY_RGUI, // 0x4E | |||||
KEY_RALT, // 0x4F | |||||
KEY_0, // 0x50 | |||||
KEY_9, // 0x51 | |||||
KEY_P, // 0x52 | |||||
KEY_O, // 0x53 | |||||
KEY_SEMICOLON, // 0x54 | |||||
KEY_L, // 0x55 | |||||
KEY_PERIOD, // 0x56 | |||||
KEY_COMMA, // 0x57 | |||||
KEY_8, // 0x58 | |||||
KEY_7, // 0x59 | |||||
KEY_I, // 0x5A | |||||
KEY_U, // 0x5B | |||||
KEY_J, // 0x5C | |||||
KEY_K, // 0x5D | |||||
KEY_N, // 0x5E | |||||
KEY_M, // 0x5F | |||||
KEY_6, // 0x60 | |||||
KEY_5, // 0x61 | |||||
KEY_Y, // 0x62 | |||||
KEY_T, // 0x63 | |||||
KEY_H, // 0x64 | |||||
KEY_G, // 0x65 | |||||
KEY_B, // 0x66 | |||||
KEY_SPACE, // 0x67 | |||||
KEY_4, // 0x68 | |||||
KEY_3, // 0x69 | |||||
KEY_R, // 0x6A | |||||
KEY_E, // 0x6B | |||||
KEY_F, // 0x6C | |||||
KEY_D, // 0x6D | |||||
KEY_C, // 0x6E | |||||
KEY_V, // 0x6F | |||||
KEY_2, // 0x70 | |||||
KEY_Q, // 0x71 | |||||
KEY_W, // 0x72 | |||||
KEY_A, // 0x73 | |||||
KEY_S, // 0x74 | |||||
KEY_X, // 0x75 | |||||
KEY_Z, // 0x76 | |||||
KEY_LALT, // 0x77 | |||||
KEY_1, // 0x78 | |||||
KEY_TILDE, // 0x79 | |||||
KEY_TAB, // 0x7A | |||||
KEY_CAPS_LOCK, // 0x7B | |||||
KEY_LSHIFT, // 0x7C | |||||
KEY_INTER1, // 0x7D | |||||
KEY_LGUI, // 0x7E | |||||
KEY_LCTRL, // 0x7F | |||||
0, // 0x80 | |||||
0, // 0x81 | |||||
0, // 0x82 | |||||
0, // 0x83 | |||||
0, // 0x84 | |||||
0, // 0x85 | |||||
0, // 0x86 | |||||
0, // 0x87 | |||||
0, // 0x88 | |||||
0, // 0x89 | |||||
0, // 0x8A | |||||
0, // 0x8B | |||||
0, // 0x8C | |||||
0, // 0x8D | |||||
0, // 0x8E | |||||
0, // 0x8F | |||||
0, // 0x90 | |||||
0, // 0x91 | |||||
0, // 0x92 | |||||
0, // 0x93 | |||||
0, // 0x94 | |||||
0, // 0x95 | |||||
0, // 0x96 | |||||
0, // 0x97 | |||||
0, // 0x98 | |||||
0, // 0x99 | |||||
0, // 0x9A | |||||
0, // 0x9B | |||||
0, // 0x9C | |||||
0, // 0x9D | |||||
0, // 0x9E | |||||
0, // 0x9F | |||||
0, // 0xA0 | |||||
0, // 0xA1 | |||||
0, // 0xA2 | |||||
0, // 0xA3 | |||||
0, // 0xA4 | |||||
0, // 0xA5 | |||||
0, // 0xA6 | |||||
0, // 0xA7 | |||||
0, // 0xA8 | |||||
0, // 0xA9 | |||||
0, // 0xAA | |||||
0, // 0xAB | |||||
0, // 0xAC | |||||
0, // 0xAD | |||||
0, // 0xAE | |||||
0, // 0xAF | |||||
0, // 0xB0 | |||||
0, // 0xB1 | |||||
0, // 0xB2 | |||||
0, // 0xB3 | |||||
0, // 0xB4 | |||||
0, // 0xB5 | |||||
0, // 0xB6 | |||||
0, // 0xB7 | |||||
0, // 0xB8 | |||||
0, // 0xB9 | |||||
0, // 0xBA | |||||
0, // 0xBB | |||||
0, // 0xBC | |||||
0, // 0xBD | |||||
0, // 0xBE | |||||
0, // 0xBF | |||||
0, // 0xC0 | |||||
0, // 0xC1 | |||||
0, // 0xC2 | |||||
0, // 0xC3 | |||||
0, // 0xC4 | |||||
0, // 0xC5 | |||||
0, // 0xC6 | |||||
0, // 0xC7 | |||||
0, // 0xC8 | |||||
0, // 0xC9 | |||||
0, // 0xCA | |||||
0, // 0xCB | |||||
0, // 0xCC | |||||
0, // 0xCD | |||||
0, // 0xCE | |||||
0, // 0xCF | |||||
0, // 0xD0 | |||||
0, // 0xD1 | |||||
0, // 0xD2 | |||||
0, // 0xD3 | |||||
0, // 0xD4 | |||||
0, // 0xD5 | |||||
0, // 0xD6 | |||||
0, // 0xD7 | |||||
0, // 0xD8 | |||||
0, // 0xD9 | |||||
0, // 0xDA | |||||
0, // 0xDB | |||||
0, // 0xDC | |||||
0, // 0xDD | |||||
0, // 0xDE | |||||
0, // 0xDF | |||||
0, // 0xE0 | |||||
0, // 0xE1 | |||||
0, // 0xE2 | |||||
0, // 0xE3 | |||||
0, // 0xE4 | |||||
0, // 0xE5 | |||||
0, // 0xE6 | |||||
0, // 0xE7 | |||||
0, // 0xE8 | |||||
0, // 0xE9 | |||||
0, // 0xEA | |||||
0, // 0xEB | |||||
0, // 0xEC | |||||
0, // 0xED | |||||
0, // 0xEE | |||||
0, // 0xEF | |||||
0, // 0xF0 | |||||
0, // 0xF1 | |||||
0, // 0xF2 | |||||
0, // 0xF3 | |||||
0, // 0xF4 | |||||
0, // 0xF5 | |||||
0, // 0xF6 | |||||
0, // 0xF7 | |||||
0, // 0xF8 | |||||
0, // 0xF9 | |||||
0, // 0xFA | |||||
0, // 0xFB | |||||
0, // 0xFC | |||||
0, // 0xFD | |||||
0, // 0xFE | |||||
0, // 0xFF | |||||
}; | |||||
#endif | |||||
Name = kishsaver; | |||||
Version = 0.1; | |||||
Author = "HaaTa (Jacob Alexander) 2014"; | |||||
KLL = 0.3; | |||||
# Modified Date | |||||
Date = 2014-09-14; | |||||
S0x40 : U"Backspace"; | |||||
S0x42 : U"RBrace"; | |||||
S0x43 : U"Delete"; | |||||
S0x44 : U"Enter"; | |||||
S0x46 : U"RShift"; | |||||
S0x47 : U"RCtrl"; | |||||
S0x48 : U"Equals"; | |||||
S0x49 : U"Minus"; | |||||
S0x4A : U"LBrace"; | |||||
S0x4B : U"Backslash"; | |||||
S0x4C : U"Quote"; | |||||
S0x4D : U"Slash"; | |||||
S0x4E : U"RGui"; | |||||
S0x4F : U"RAlt"; | |||||
S0x50 : U"0"; | |||||
S0x51 : U"9"; | |||||
S0x52 : U"P"; | |||||
S0x53 : U"O"; | |||||
S0x54 : U";"; | |||||
S0x55 : U"L"; | |||||
S0x56 : U"."; | |||||
S0x57 : U","; | |||||
S0x58 : U"8"; | |||||
S0x59 : U"7"; | |||||
S0x5A : U"I"; | |||||
S0x5B : U"U"; | |||||
S0x5C : U"J"; | |||||
S0x5D : U"K"; | |||||
S0x5E : U"N"; | |||||
S0x5F : U"M"; | |||||
S0x60 : U"6"; | |||||
S0x61 : U"5"; | |||||
S0x62 : U"Y"; | |||||
S0x63 : U"T"; | |||||
S0x64 : U"H"; | |||||
S0x65 : U"G"; | |||||
S0x66 : U"B"; | |||||
S0x67 : U"Space"; | |||||
S0x68 : U"4"; | |||||
S0x69 : U"3"; | |||||
S0x6A : U"R"; | |||||
S0x6B : U"E"; | |||||
S0x6C : U"F"; | |||||
S0x6D : U"D"; | |||||
S0x6E : U"C"; | |||||
S0x6F : U"V"; | |||||
S0x70 : U"2"; | |||||
S0x71 : U"Q"; | |||||
S0x72 : U"W"; | |||||
S0x73 : U"A"; | |||||
S0x74 : U"S"; | |||||
S0x75 : U"X"; | |||||
S0x76 : U"Z"; | |||||
S0x77 : U"LAlt"; | |||||
S0x78 : U"1"; | |||||
S0x79 : U"Backtick"; | |||||
S0x7A : U"Tab"; | |||||
S0x7B : U"CapsLock"; | |||||
S0x7C : U"LShift"; | |||||
S0x7D : U"Inter1"; | |||||
S0x7E : U"LGui"; | |||||
S0x7F : U"LCtrl"; | |||||
Date = 2014-09-14; | Date = 2014-09-14; | ||||
# MOVE THIS SECTION to another file | |||||
usbKeyOut => Output_usbCodeSend_capability( usbCode : 1 ); | |||||
layerState => Macro_layerState_capability( layer : 2, state : 1 ); | |||||
layerLatch => Macro_layerLatch_capability( layer : 2 ); | |||||
layerLock => Macro_layerLock_capability( layer : 2 ); | |||||
layerShift => Macro_layerShift_capability( layer : 2 ); | |||||
# END SECTION | |||||
S0x00 : U"Esc"; | S0x00 : U"Esc"; | ||||
S0x01 : U"1"; | S0x01 : U"1"; | ||||
S0x02 : U"2"; | S0x02 : U"2"; |
TIMSK0 = (1 << TOIE0); | TIMSK0 = (1 << TOIE0); | ||||
// ARM | // ARM | ||||
#elif defined(_mk20dx128_) || defined(_mk20dx128vlf5_) || defined(_mk20dx256_) // ARM | |||||
#elif defined(_mk20dx128_) || defined(_mk20dx128vlf5_) || defined(_mk20dx256_) | |||||
// 48 MHz clock by default | // 48 MHz clock by default | ||||
// System Clock Gating Register Disable | // System Clock Gating Register Disable |