X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=quantum%2Fquantum.h;h=534819c818bf9df16b289d197572eded859d4c3f;hb=004826e1b833725b93f9f809ba77b1f967aa9232;hp=580d51202a429cb59914cb098f665b2d13bb6ddc;hpb=b851b0b2ae0a127dba6411a4c349fb67007ffd77;p=qmk_firmware.git diff --git a/quantum/quantum.h b/quantum/quantum.h index 580d51202..534819c81 100644 --- a/quantum/quantum.h +++ b/quantum/quantum.h @@ -1,3 +1,18 @@ +/* Copyright 2016-2017 Erez Zukerman, Jack Humbert + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ #ifndef QUANTUM_H #define QUANTUM_H @@ -25,7 +40,7 @@ #include "action_util.h" #include #include "print.h" - +#include "send_string_keycodes.h" extern uint32_t default_layer_state; @@ -35,11 +50,21 @@ extern uint32_t default_layer_state; #ifdef MIDI_ENABLE #include +#ifdef MIDI_ADVANCED #include "process_midi.h" #endif +#endif // MIDI_ENABLE #ifdef AUDIO_ENABLE - #include "audio.h" + #include "audio.h" + #include "process_audio.h" +#endif + +#ifdef STENO_ENABLE + #include "process_steno.h" +#endif + +#if defined(AUDIO_ENABLE) || (defined(MIDI_ENABLE) && defined(MIDI_BASIC)) #include "process_music.h" #endif @@ -70,16 +95,50 @@ extern uint32_t default_layer_state; #include "process_printer.h" #endif +#ifdef AUTO_SHIFT_ENABLE + #include "process_auto_shift.h" +#endif + #ifdef COMBO_ENABLE #include "process_combo.h" #endif -#define SEND_STRING(str) send_string(PSTR(str)) +#ifdef KEY_LOCK_ENABLE + #include "process_key_lock.h" +#endif + +#ifdef TERMINAL_ENABLE + #include "process_terminal.h" +#else + #include "process_terminal_nop.h" +#endif + +#define STRINGIZE(z) #z +#define ADD_SLASH_X(y) STRINGIZE(\x ## y) +#define SYMBOL_STR(x) ADD_SLASH_X(x) + +#define SS_TAP(keycode) "\1" SYMBOL_STR(keycode) +#define SS_DOWN(keycode) "\2" SYMBOL_STR(keycode) +#define SS_UP(keycode) "\3" SYMBOL_STR(keycode) + +#define SS_LCTRL(string) SS_DOWN(X_LCTRL) string SS_UP(X_LCTRL) +#define SS_LGUI(string) SS_DOWN(X_LGUI) string SS_UP(X_LGUI) +#define SS_LALT(string) SS_DOWN(X_LALT) string SS_UP(X_LALT) + +#define SEND_STRING(str) send_string_P(PSTR(str)) +extern const bool ascii_to_shift_lut[0x80]; +extern const uint8_t ascii_to_keycode_lut[0x80]; void send_string(const char *str); +void send_string_with_delay(const char *str, uint8_t interval); +void send_string_P(const char *str); +void send_string_with_delay_P(const char *str, uint8_t interval); +void send_char(char ascii_code); // For tri-layer void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3); +void set_single_persistent_default_layer(uint8_t default_layer); + void tap_random_base64(void); #define IS_LAYER_ON(layer) (layer_state & (1UL << (layer))) @@ -103,6 +162,7 @@ void unregister_code16 (uint16_t code); #ifdef BACKLIGHT_ENABLE void backlight_init_ports(void); +void backlight_task(void); #ifdef BACKLIGHT_BREATHING void breathing_enable(void);