summaryrefslogtreecommitdiffstats
path: root/keyboards/sixshooter/sixshooter.c
diff options
context:
space:
mode:
authorNicholas Shaff <nick@shadedream.com>2018-08-11 22:23:11 +0200
committerDrashna Jaelre <drashna@live.com>2018-08-11 22:23:11 +0200
commit317c624761741f71856f20ab55916e637183edb4 (patch)
treee3de6a0815beeeb0faf9fa8748a607fc841576b2 /keyboards/sixshooter/sixshooter.c
parente5f201edb426b01537abd659e1ca317260d87654 (diff)
downloadqmk_firmware-317c624761741f71856f20ab55916e637183edb4.tar.gz
qmk_firmware-317c624761741f71856f20ab55916e637183edb4.tar.xz
Keyboard: Six Shooter Keyboard (#3598)
* Created base sixshooter configuration * Added SixShooter basic LED on/off support. * Updated LED identifier numbers to align with layout identifiers (and IDs on PCB). * Minor sixshooter documentation cleanup. * Added sixshooter info.json file. * Moved sixshooter custom keycodes out of keymaps and into base keyboard files, small documentation tweaks. * Removed unnecessary boot section size definition. * Removing CONFIG_H if/define and replacing with #pragma once.
Diffstat (limited to 'keyboards/sixshooter/sixshooter.c')
-rw-r--r--keyboards/sixshooter/sixshooter.c57
1 files changed, 57 insertions, 0 deletions
diff --git a/keyboards/sixshooter/sixshooter.c b/keyboards/sixshooter/sixshooter.c
new file mode 100644
index 000000000..814d219a2
--- /dev/null
+++ b/keyboards/sixshooter/sixshooter.c
@@ -0,0 +1,57 @@
+#include "sixshooter.h"
+
+extern inline void sixshooter_led_0_on(void);
+extern inline void sixshooter_led_1_on(void);
+extern inline void sixshooter_led_2_on(void);
+extern inline void sixshooter_led_3_on(void);
+extern inline void sixshooter_led_4_on(void);
+extern inline void sixshooter_led_5_on(void);
+
+extern inline void sixshooter_led_0_off(void);
+extern inline void sixshooter_led_1_off(void);
+extern inline void sixshooter_led_2_off(void);
+extern inline void sixshooter_led_3_off(void);
+extern inline void sixshooter_led_4_off(void);
+extern inline void sixshooter_led_5_off(void);
+
+extern inline void sixshooter_led_all_on(void);
+extern inline void sixshooter_led_all_off(void);
+
+void matrix_init_kb(void) {
+ // put your keyboard start-up code here
+ // runs once when the firmware starts up
+
+ matrix_init_user();
+}
+
+void matrix_scan_kb(void) {
+ // put your looping keyboard code here
+ // runs every cycle (a lot)
+
+ matrix_scan_user();
+}
+
+bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
+ // put your per-action keyboard code here
+ // runs for every action, just before processing by the firmware
+ if (record->event.pressed) {
+
+ /* Check for custom keycodes for turning on and off LEDs */
+ switch(keycode) {
+ case SS_LON:
+ sixshooter_led_all_on();
+ return false;
+ case SS_LOFF:
+ sixshooter_led_all_off();
+ return false;
+ }
+ }
+
+ return process_record_user(keycode, record);
+}
+
+void led_set_kb(uint8_t usb_led) {
+ // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
+
+ led_set_user(usb_led);
+}