5 // The first section contains all of the arguements
6 // The second converts the arguments into a two-dimensional array
7 #define LAYOUT_default( \
8 K000, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, \
9 K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K115, \
10 K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K215, \
11 K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K315, \
12 K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K415, \
13 K500, K501, K502, K505, K509, K510, K511, K512, K513, K515 \
15 { K000, KC_NO, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, KC_NO, KC_NO }, \
16 { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, KC_NO, K115 }, \
17 { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO, K215 }, \
18 { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO, KC_NO, K315 }, \
19 { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, KC_NO, K415 }, \
20 { K500, K501, K502, KC_NO, KC_NO, K505, KC_NO, KC_NO, KC_NO, K509, K510, K511, K512, K513, KC_NO, K515 } \
23 /* screen off after this many milliseconds */
24 #define ScreenOffInterval 60000 /* milliseconds */
35 // Start these at the USER code range in VIA
52 ENC_MODE_CLOCK_SET // This shouldn't be included in the default modes, so we put it after NUM_ENCODER_MODES
63 // Keyboard Information
64 extern volatile uint8_t led_numlock;
65 extern volatile uint8_t led_capslock;
66 extern volatile uint8_t led_scrolllock;
70 extern uint16_t last_flush;
71 extern bool queue_for_send;
72 extern uint8_t oled_mode;
73 extern bool oled_sleeping;
76 extern uint8_t encoder_value;
77 extern uint8_t encoder_mode;
78 extern uint8_t enabled_encoder_modes;
81 extern RTCDateTime last_timespec;
82 extern uint16_t last_minute;
85 extern bool clock_set_mode;
86 extern uint8_t time_config_idx;
87 extern int8_t hour_config;
88 extern int16_t minute_config;
89 extern int8_t year_config;
90 extern int8_t month_config;
91 extern int8_t day_config;
92 extern uint8_t previous_encoder_mode;
95 extern backlight_config_t kb_backlight_config;
96 extern bool kb_backlight_breathing;
98 void pre_encoder_mode_change(void);
99 void post_encoder_mode_change(void);
100 void change_encoder_mode(bool negative);
101 uint16_t handle_encoder_clockwise(void);
102 uint16_t handle_encoder_ccw(void);
103 uint16_t handle_encoder_press(void);
105 void update_time_config(int8_t increment);
107 __attribute__ ((weak))
109 void draw_default(void);
110 void draw_clock(void);
112 void backlight_init_ports(void);
113 void backlight_set(uint8_t level);
114 bool is_breathing(void);
115 void breathing_enable(void);
116 void breathing_disable(void);
117 // void backlight_save_to_eeprom(uint8_t level);
118 // uint8_t backlight_config_load();