]> git.donarmstrong.com Git - qmk_firmware.git/blob - quantum/quantum.h
Moves features to their own files (process_*), adds tap dance feature (#460)
[qmk_firmware.git] / quantum / quantum.h
1 #ifndef QUANTUM_H
2 #define QUANTUM_H
3
4 #include <avr/pgmspace.h>
5 #include "matrix.h"
6 #include "keymap.h"
7 #ifdef BACKLIGHT_ENABLE
8     #include "backlight.h"
9 #endif
10 #ifdef RGBLIGHT_ENABLE
11   #include "rgblight.h"
12 #endif
13
14 #include "action_layer.h"
15 #include "eeconfig.h"
16 #include <stddef.h>
17 #include <avr/io.h>
18 #include <util/delay.h>
19 #include "bootloader.h"
20 #include "timer.h"
21 #include "config_common.h"
22 #include <avr/interrupt.h>
23 #include "led.h"
24 #include "action_util.h"
25
26
27 extern uint32_t default_layer_state;
28
29 #ifndef NO_ACTION_LAYER
30         extern uint32_t layer_state;
31 #endif
32
33 #ifdef MIDI_ENABLE
34         #include <lufa.h>
35         #include "process_midi.h"
36 #endif
37
38 #ifdef AUDIO_ENABLE
39         #include "audio.h"
40         #include "process_music.h"
41 #endif
42
43 #ifndef DISABLE_LEADER
44         #include "process_leader.h"
45 #endif
46
47 #define DISABLE_CHORDING
48 #ifndef DISABLE_CHORDING
49         #include "process_chording.h"
50 #endif
51
52 #ifdef UNICODE_ENABLE
53         #include "process_unicode.h"
54 #endif
55
56 #include "process_tap_dance.h"
57
58 #define SEND_STRING(str) send_string(PSTR(str))
59 void send_string(const char *str);
60
61 // For tri-layer
62 void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3);
63 #define IS_LAYER_ON(layer)  (layer_state & (1UL << (layer)))
64 #define IS_LAYER_OFF(layer) (~layer_state & (1UL << (layer)))
65
66 void matrix_init_kb(void);
67 void matrix_scan_kb(void);
68 void matrix_init_user(void);
69 void matrix_scan_user(void);
70 bool process_action_kb(keyrecord_t *record);
71 bool process_record_kb(uint16_t keycode, keyrecord_t *record);
72 bool process_record_user(uint16_t keycode, keyrecord_t *record);
73
74 void startup_user(void);
75 void shutdown_user(void);
76
77 #ifdef BACKLIGHT_ENABLE
78 void backlight_init_ports(void);
79
80 #ifdef BACKLIGHT_BREATHING
81 void breathing_enable(void);
82 void breathing_pulse(void);
83 void breathing_disable(void);
84 void breathing_self_disable(void);
85 void breathing_toggle(void);
86 bool is_breathing(void);
87
88 void breathing_defaults(void);
89 void breathing_intensity_default(void);
90 void breathing_speed_default(void);
91 void breathing_speed_set(uint8_t value);
92 void breathing_speed_inc(uint8_t value);
93 void breathing_speed_dec(uint8_t value);
94 #endif
95
96 #endif
97
98 void led_set_user(uint8_t usb_led);
99 void led_set_kb(uint8_t usb_led);
100
101 #endif