example_keyboards
Jack Humbert 9 years ago
commit e0ab1dcf4c

@ -1,7 +1,7 @@
BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = yes # Mouse keys(+4700) MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450) EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = no # Console for debug(+400) CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE = yes # Commands for debug and configuration COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality

@ -26,6 +26,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "backlight.h" #include "backlight.h"
#include "keymap_midi.h" #include "keymap_midi.h"
#include "bootloader.h" #include "bootloader.h"
#include "eeconfig.h"
extern keymap_config_t keymap_config; extern keymap_config_t keymap_config;
@ -33,15 +34,13 @@ extern keymap_config_t keymap_config;
#include <inttypes.h> #include <inttypes.h>
#ifdef AUDIO_ENABLE #ifdef AUDIO_ENABLE
#include "audio.h" #include "audio.h"
#ifndef TONE_GOODBYE #ifndef TONE_GOODBYE
#define TONE_GOODBYE { \ #define TONE_GOODBYE OLKB_GOODBYE
{440.0*pow(2.0,(31)/12.0), 8}, \ #endif /*! TONE_GOODBYE */
{440.0*pow(2.0,(24)/12.0), 8}, \
{440.0*pow(2.0,(19)/12.0), 12}, \ float tone_goodbye[][2] = SONG(TONE_GOODBYE);
} #endif /* AUDIO_ENABLE */
#endif
float tone_goodbye[][2] = TONE_GOODBYE;
#endif
static action_t keycode_to_action(uint16_t keycode); static action_t keycode_to_action(uint16_t keycode);

@ -32,7 +32,7 @@
#define WD_NOTE(n) WHOLE_DOT_NOTE(n) #define WD_NOTE(n) WHOLE_DOT_NOTE(n)
#define HD_NOTE(n) HALF_DOT_NOTE(n) #define HD_NOTE(n) HALF_DOT_NOTE(n)
#define QD_NOTE(n) QUARTER_DOT_NOTE(n) #define QD_NOTE(n) QUARTER_DOT_NOTE(n)
#define ED_NOTE(n) EIGTH_DOT_NOTE(n) #define ED_NOTE(n) EIGHTH_DOT_NOTE(n)
#define SD_NOTE(n) SIXTEENTH_DOT_NOTE(n) #define SD_NOTE(n) SIXTEENTH_DOT_NOTE(n)
// Note Styles // Note Styles

@ -15,4 +15,9 @@
QD_NOTE(_B4), E__NOTE(_D5), Q__NOTE(_G5), \ QD_NOTE(_B4), E__NOTE(_D5), Q__NOTE(_G5), \
H__NOTE(_FS5), H__NOTE(_FS5),
#endif #define OLKB_GOODBYE \
E__NOTE(_E7), \
E__NOTE(_A6), \
ED_NOTE(_E6),
#endif

@ -27,11 +27,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "action_util.h" #include "action_util.h"
#include "action.h" #include "action.h"
#ifdef DEBUG_ACTION //#ifdef DEBUG_ACTION
#include "debug.h" #include "debug.h"
#else //#else
#include "nodebug.h" //#include "nodebug.h"
#endif //#endif
void action_exec(keyevent_t event) void action_exec(keyevent_t event)

@ -4,14 +4,14 @@
#include "util.h" #include "util.h"
#include "action_layer.h" #include "action_layer.h"
#ifdef DEBUG_ACTION //#ifdef DEBUG_ACTION
#include "debug.h" #include "debug.h"
#else //#else
#include "nodebug.h" //#include "nodebug.h"
#endif //#endif
/* /*
* Default Layer State * Default Layer State
*/ */
uint32_t default_layer_state = 0; uint32_t default_layer_state = 0;
@ -52,7 +52,7 @@ void default_layer_xor(uint32_t state)
#ifndef NO_ACTION_LAYER #ifndef NO_ACTION_LAYER
/* /*
* Keymap Layer State * Keymap Layer State
*/ */
uint32_t layer_state = 0; uint32_t layer_state = 0;

@ -19,11 +19,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "action_macro.h" #include "action_macro.h"
#include "wait.h" #include "wait.h"
#ifdef DEBUG_ACTION //#ifdef DEBUG_ACTION
#include "debug.h" #include "debug.h"
#else //#else
#include "nodebug.h" //#include "nodebug.h"
#endif //#endif
#ifndef NO_ACTION_MACRO #ifndef NO_ACTION_MACRO

@ -6,11 +6,11 @@
#include "keycode.h" #include "keycode.h"
#include "timer.h" #include "timer.h"
#ifdef DEBUG_ACTION //#ifdef DEBUG_ACTION
#include "debug.h" #include "debug.h"
#else //#else
#include "nodebug.h" //#include "nodebug.h"
#endif //#endif
#ifndef NO_ACTION_TAPPING #ifndef NO_ACTION_TAPPING
@ -139,7 +139,7 @@ bool process_tapping(keyrecord_t *keyp)
if (event.pressed) { if (event.pressed) {
tapping_key.tap.interrupted = true; tapping_key.tap.interrupted = true;
} }
// enqueue // enqueue
return false; return false;
} }
} }
@ -324,6 +324,7 @@ bool waiting_buffer_typed(keyevent_t event)
return false; return false;
} }
__attribute__((unused))
bool waiting_buffer_has_anykey_pressed(void) bool waiting_buffer_has_anykey_pressed(void)
{ {
for (uint8_t i = waiting_buffer_tail; i != waiting_buffer_head; i = (i + 1) % WAITING_BUFFER_SIZE) { for (uint8_t i = waiting_buffer_tail; i != waiting_buffer_head; i = (i + 1) % WAITING_BUFFER_SIZE) {

@ -122,7 +122,7 @@ static void command_common_help(void)
STR(MAGIC_KEY_VERSION ) ": Version\n" STR(MAGIC_KEY_VERSION ) ": Version\n"
STR(MAGIC_KEY_STATUS ) ": Status\n" STR(MAGIC_KEY_STATUS ) ": Status\n"
STR(MAGIC_KEY_CONSOLE ) ": Activate Console Mode\n" STR(MAGIC_KEY_CONSOLE ) ": Activate Console Mode\n"
#if MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM #if MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
STR(MAGIC_KEY_LAYER0 ) ": Switch to Layer 0\n" STR(MAGIC_KEY_LAYER0 ) ": Switch to Layer 0\n"
STR(MAGIC_KEY_LAYER1 ) ": Switch to Layer 1\n" STR(MAGIC_KEY_LAYER1 ) ": Switch to Layer 1\n"
@ -136,11 +136,11 @@ static void command_common_help(void)
STR(MAGIC_KEY_LAYER9 ) ": Switch to Layer 9\n" STR(MAGIC_KEY_LAYER9 ) ": Switch to Layer 9\n"
#endif #endif
#if MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS #if MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
"F1-F10: Switch to Layer 0-9 (F10 = L0)\n" "F1-F10: Switch to Layer 0-9 (F10 = L0)\n"
#endif #endif
#if MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS #if MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
"0-9: Switch to Layer 0-9\n" "0-9: Switch to Layer 0-9\n"
#endif #endif
@ -251,6 +251,7 @@ static void print_status(void)
#ifdef BOOTMAGIC_ENABLE #ifdef BOOTMAGIC_ENABLE
static void print_eeconfig(void) static void print_eeconfig(void)
{ {
#ifndef NO_PRINT
print("default_layer: "); print_dec(eeconfig_read_default_layer()); print("\n"); print("default_layer: "); print_dec(eeconfig_read_default_layer()); print("\n");
debug_config_t dc; debug_config_t dc;
@ -279,9 +280,12 @@ static void print_eeconfig(void)
print("backlight_config.raw: "); print_hex8(bc.raw); print("\n"); print("backlight_config.raw: "); print_hex8(bc.raw); print("\n");
print(".enable: "); print_dec(bc.enable); print("\n"); print(".enable: "); print_dec(bc.enable); print("\n");
print(".level: "); print_dec(bc.level); print("\n"); print(".level: "); print_dec(bc.level); print("\n");
#endif #endif /* BACKLIGHT_ENABLE */
#endif /* !NO_PRINT */
} }
#endif #endif /* BOOTMAGIC_ENABLE */
static bool command_common(uint8_t code) static bool command_common(uint8_t code)
{ {
@ -305,7 +309,7 @@ static bool command_common(uint8_t code)
#ifdef BOOTMAGIC_ENABLE #ifdef BOOTMAGIC_ENABLE
// print stored eeprom config // print stored eeprom config
case MAGIC_KC(MAGIC_KEY_EEPROM): case MAGIC_KC(MAGIC_KEY_EEPROM):
print("eeconfig:\n"); print("eeconfig:\n");
print_eeconfig(); print_eeconfig();
break; break;
@ -369,7 +373,7 @@ static bool command_common(uint8_t code)
break; break;
// debug matrix toggle // debug matrix toggle
case MAGIC_KC(MAGIC_KEY_DEBUG_MATRIX): case MAGIC_KC(MAGIC_KEY_DEBUG_MATRIX):
debug_matrix = !debug_matrix; debug_matrix = !debug_matrix;
if (debug_matrix) { if (debug_matrix) {
print("\nmatrix: on\n"); print("\nmatrix: on\n");
@ -380,7 +384,7 @@ static bool command_common(uint8_t code)
break; break;
// debug keyboard toggle // debug keyboard toggle
case MAGIC_KC(MAGIC_KEY_DEBUG_KBD): case MAGIC_KC(MAGIC_KEY_DEBUG_KBD):
debug_keyboard = !debug_keyboard; debug_keyboard = !debug_keyboard;
if (debug_keyboard) { if (debug_keyboard) {
print("\nkeyboard: on\n"); print("\nkeyboard: on\n");
@ -551,6 +555,7 @@ static uint8_t mousekey_param = 0;
static void mousekey_param_print(void) static void mousekey_param_print(void)
{ {
#ifndef NO_PRINT
print("\n\t- Values -\n"); print("\n\t- Values -\n");
print("1: delay(*10ms): "); pdec(mk_delay); print("\n"); print("1: delay(*10ms): "); pdec(mk_delay); print("\n");
print("2: interval(ms): "); pdec(mk_interval); print("\n"); print("2: interval(ms): "); pdec(mk_interval); print("\n");
@ -558,6 +563,8 @@ static void mousekey_param_print(void)
print("4: time_to_max: "); pdec(mk_time_to_max); print("\n"); print("4: time_to_max: "); pdec(mk_time_to_max); print("\n");
print("5: wheel_max_speed: "); pdec(mk_wheel_max_speed); print("\n"); print("5: wheel_max_speed: "); pdec(mk_wheel_max_speed); print("\n");
print("6: wheel_time_to_max: "); pdec(mk_wheel_time_to_max); print("\n"); print("6: wheel_time_to_max: "); pdec(mk_wheel_time_to_max); print("\n");
#endif /* !NO_PRINT */
} }
//#define PRINT_SET_VAL(v) print(#v " = "); print_dec(v); print("\n"); //#define PRINT_SET_VAL(v) print(#v " = "); print_dec(v); print("\n");
@ -677,7 +684,7 @@ static void mousekey_console_help(void)
"pgdown: -10\n" "pgdown: -10\n"
"\n" "\n"
"speed = delta * max_speed * (repeat / time_to_max)\n"); "speed = delta * max_speed * (repeat / time_to_max)\n");
xprintf("where delta: cursor=%d, wheel=%d\n" xprintf("where delta: cursor=%d, wheel=%d\n"
"See http://en.wikipedia.org/wiki/Mouse_keys\n", MOUSEKEY_MOVE_DELTA, MOUSEKEY_WHEEL_DELTA); "See http://en.wikipedia.org/wiki/Mouse_keys\n", MOUSEKEY_MOVE_DELTA, MOUSEKEY_WHEEL_DELTA);
} }

@ -2,17 +2,17 @@
/* Very basic print functions, intended to be used with usb_debug_only.c /* Very basic print functions, intended to be used with usb_debug_only.c
* http://www.pjrc.com/teensy/ * http://www.pjrc.com/teensy/
* Copyright (c) 2008 PJRC.COM, LLC * Copyright (c) 2008 PJRC.COM, LLC
* *
* Permission is hereby granted, free of charge, to any person obtaining a copy * Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal * of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights * in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is * copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions: * furnished to do so, subject to the following conditions:
* *
* The above copyright notice and this permission notice shall be included in * The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software. * all copies or substantial portions of the Software.
* *
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@ -91,9 +91,9 @@ void print_set_sendchar(int8_t (*print_sendchar_func)(uint8_t));
#else /* NO_PRINT */ #else /* NO_PRINT */
#define xprintf #define xprintf(fmt, ...)
#define print #define print(s)
#define println #define println(s)
#define print_set_sendchar(func) #define print_set_sendchar(func)
#define print_dec(data) #define print_dec(data)
#define print_decs(data) #define print_decs(data)

@ -1,4 +1,4 @@
/* /*
* Copyright 2012 Jun Wako <wakojun@gmail.com> * Copyright 2012 Jun Wako <wakojun@gmail.com>
* This file is based on: * This file is based on:
* LUFA-120219/Demos/Device/Lowlevel/KeyboardMouse * LUFA-120219/Demos/Device/Lowlevel/KeyboardMouse
@ -152,10 +152,10 @@ static void Console_Task(void)
{ {
/* Create a temporary buffer to hold the read in report from the host */ /* Create a temporary buffer to hold the read in report from the host */
uint8_t ConsoleData[CONSOLE_EPSIZE]; uint8_t ConsoleData[CONSOLE_EPSIZE];
/* Read Console Report Data */ /* Read Console Report Data */
Endpoint_Read_Stream_LE(&ConsoleData, sizeof(ConsoleData), NULL); Endpoint_Read_Stream_LE(&ConsoleData, sizeof(ConsoleData), NULL);
/* Process Console Report Data */ /* Process Console Report Data */
//ProcessConsoleHIDReport(ConsoleData); //ProcessConsoleHIDReport(ConsoleData);
} }
@ -183,10 +183,6 @@ static void Console_Task(void)
Endpoint_SelectEndpoint(ep); Endpoint_SelectEndpoint(ep);
} }
#else
static void Console_Task(void)
{
}
#endif #endif
@ -216,7 +212,7 @@ void EVENT_USB_Device_Disconnect(void)
print("[D]"); print("[D]");
/* For battery powered device */ /* For battery powered device */
USB_IsInitialized = false; USB_IsInitialized = false;
/* TODO: This doesn't work. After several plug in/outs can not be enumerated. /* TODO: This doesn't work. After several plug in/outs can not be enumerated.
if (USB_IsInitialized) { if (USB_IsInitialized) {
USB_Disable(); // Disable all interrupts USB_Disable(); // Disable all interrupts
USB_Controller_Enable(); USB_Controller_Enable();
@ -313,7 +309,7 @@ void EVENT_USB_Device_ConfigurationChanged(void)
#ifdef MIDI_ENABLE #ifdef MIDI_ENABLE
ConfigSuccess &= Endpoint_ConfigureEndpoint(MIDI_STREAM_IN_EPADDR, EP_TYPE_BULK, MIDI_STREAM_EPSIZE, ENDPOINT_BANK_SINGLE); ConfigSuccess &= Endpoint_ConfigureEndpoint(MIDI_STREAM_IN_EPADDR, EP_TYPE_BULK, MIDI_STREAM_EPSIZE, ENDPOINT_BANK_SINGLE);
ConfigSuccess &= Endpoint_ConfigureEndpoint(MIDI_STREAM_OUT_EPADDR, EP_TYPE_BULK, MIDI_STREAM_EPSIZE, ENDPOINT_BANK_SINGLE); ConfigSuccess &= Endpoint_ConfigureEndpoint(MIDI_STREAM_OUT_EPADDR, EP_TYPE_BULK, MIDI_STREAM_EPSIZE, ENDPOINT_BANK_SINGLE);
#endif #endif
} }
@ -439,7 +435,7 @@ void EVENT_USB_Device_ControlRequest(void)
} }
/******************************************************************************* /*******************************************************************************
* Host driver * Host driver
******************************************************************************/ ******************************************************************************/
static uint8_t keyboard_leds(void) static uint8_t keyboard_leds(void)
{ {
@ -563,7 +559,7 @@ static void send_consumer(uint16_t data)
bluefruit_serial_send(0x00); bluefruit_serial_send(0x00);
bluefruit_serial_send(0x02); bluefruit_serial_send(0x02);
bluefruit_serial_send((bitmap>>8)&0xFF); bluefruit_serial_send((bitmap>>8)&0xFF);
bluefruit_serial_send(bitmap&0xFF); bluefruit_serial_send(bitmap&0xFF);
bluefruit_serial_send(0x00); bluefruit_serial_send(0x00);
bluefruit_serial_send(0x00); bluefruit_serial_send(0x00);
bluefruit_serial_send(0x00); bluefruit_serial_send(0x00);

Loading…
Cancel
Save