aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJack Humbert <jack.humb@gmail.com>2017-04-25 14:09:41 -0400
committerGitHub <noreply@github.com>2017-04-25 14:09:41 -0400
commit7bd4559b4b8f323107de46ebf90d31bfa9880e78 (patch)
tree6ee4f42efbee53f956da420468529fbc9913e92b
parent9fa7a788d3147a5a34c5cb64cb73e8df2093a795 (diff)
parent215dd126d08b29939c53bf0eaa006ce6ecdedb83 (diff)
downloadqmk_firmware-7bd4559b4b8f323107de46ebf90d31bfa9880e78.tar.gz
qmk_firmware-7bd4559b4b8f323107de46ebf90d31bfa9880e78.zip
Merge pull request #1231 from Dbroqua/master
S60-X RGB support
-rw-r--r--keyboards/s60-x/Makefile2
-rw-r--r--keyboards/s60-x/config.h120
-rw-r--r--keyboards/s60-x/default/Makefile3
-rw-r--r--keyboards/s60-x/default/config.h25
-rw-r--r--keyboards/s60-x/default/default.c28
-rw-r--r--keyboards/s60-x/default/default.h69
-rw-r--r--keyboards/s60-x/default/rules.mk1
-rw-r--r--keyboards/s60-x/keymaps/dbroqua/keymap.c194
-rw-r--r--keyboards/s60-x/rgb/Makefile3
-rw-r--r--keyboards/s60-x/rgb/config.h31
-rw-r--r--keyboards/s60-x/rgb/rgb.c1
-rw-r--r--keyboards/s60-x/rgb/rgb.h37
-rw-r--r--keyboards/s60-x/rgb/rules.mk56
-rw-r--r--keyboards/s60-x/s60-x.c29
-rw-r--r--keyboards/s60-x/s60-x.h68
15 files changed, 458 insertions, 209 deletions
diff --git a/keyboards/s60-x/Makefile b/keyboards/s60-x/Makefile
index 4e2a6f00f..879e493a2 100644
--- a/keyboards/s60-x/Makefile
+++ b/keyboards/s60-x/Makefile
@@ -1,3 +1,5 @@
1SUBPROJECT_DEFAULT = default
2
1ifndef MAKEFILE_INCLUDED 3ifndef MAKEFILE_INCLUDED
2 include ../../Makefile 4 include ../../Makefile
3endif \ No newline at end of file 5endif \ No newline at end of file
diff --git a/keyboards/s60-x/config.h b/keyboards/s60-x/config.h
index ac7951c24..8e7bc78be 100644
--- a/keyboards/s60-x/config.h
+++ b/keyboards/s60-x/config.h
@@ -27,138 +27,20 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
27#define PRODUCT_ID 0x6060 27#define PRODUCT_ID 0x6060
28#define DEVICE_VER 0x0001 28#define DEVICE_VER 0x0001
29#define MANUFACTURER Massdrop 29#define MANUFACTURER Massdrop
30#define PRODUCT S60-X
31#define DESCRIPTION q.m.k. keyboard firmware for S60-X
32 30
33/* key matrix size */ 31/* key matrix size */
34#define MATRIX_ROWS 5 32#define MATRIX_ROWS 5
35#define MATRIX_COLS 15 33#define MATRIX_COLS 15
36 34
37/*
38 * Keyboard Matrix Assignments
39 *
40 * Change this to how you wired your keyboard
41 * COLS: AVR pins used for columns, left to right
42 * ROWS: AVR pins used for rows, top to bottom
43 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
44 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
45 *
46*/
47#define MATRIX_ROW_PINS { B7, B3, B2, B1, B0 }
48#define MATRIX_COL_PINS { D0, D1, D2, D3, D5, D4, D6, D7, B4, B5, B6, C6, C7, E6, F1 }
49#define UNUSED_PINS { F0 }
50
51/* COL2ROW or ROW2COL */ 35/* COL2ROW or ROW2COL */
52#define DIODE_DIRECTION COL2ROW 36#define DIODE_DIRECTION COL2ROW
53
54// #define BACKLIGHT_PIN B7
55// #define BACKLIGHT_BREATHING
56// #define BACKLIGHT_LEVELS 3
57
58 37
59/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ 38/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
60#define DEBOUNCING_DELAY 5 39#define DEBOUNCING_DELAY 5
61 40
62/* define if matrix has ghost (lacks anti-ghosting diodes) */ 41/* key combination for command */
63//#define MATRIX_HAS_GHOST
64
65/* number of backlight levels */
66
67/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
68#define LOCKING_SUPPORT_ENABLE
69/* Locking resynchronize hack */
70#define LOCKING_RESYNC_ENABLE
71
72/*
73 * Force NKRO
74 *
75 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
76 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
77 * makefile for this to work.)
78 *
79 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
80 * until the next keyboard reset.
81 *
82 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
83 * fully operational during normal computer usage.
84 *
85 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
86 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
87 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
88 * power-up.
89 *
90 */
91//#define FORCE_NKRO
92
93/*
94 * Magic Key Options
95 *
96 * Magic keys are hotkey commands that allow control over firmware functions of
97 * the keyboard. They are best used in combination with the HID Listen program,
98 * found here: https://www.pjrc.com/teensy/hid_listen.html
99 *
100 * The options below allow the magic key functionality to be changed. This is
101 * useful if your keyboard/keypad is missing keys and you want magic key support.
102 *
103 */
104
105/* key combination for magic key command */
106#define IS_COMMAND() ( \ 42#define IS_COMMAND() ( \
107 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 43 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
108) 44)
109 45
110/* control how magic key switches layers */
111//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
112//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
113//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
114
115/* override magic key keymap */
116//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
117//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
118//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
119//#define MAGIC_KEY_HELP1 H
120//#define MAGIC_KEY_HELP2 SLASH
121//#define MAGIC_KEY_DEBUG D
122//#define MAGIC_KEY_DEBUG_MATRIX X
123//#define MAGIC_KEY_DEBUG_KBD K
124//#define MAGIC_KEY_DEBUG_MOUSE M
125//#define MAGIC_KEY_VERSION V
126//#define MAGIC_KEY_STATUS S
127//#define MAGIC_KEY_CONSOLE C
128//#define MAGIC_KEY_LAYER0_ALT1 ESC
129//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
130//#define MAGIC_KEY_LAYER0 0
131//#define MAGIC_KEY_LAYER1 1
132//#define MAGIC_KEY_LAYER2 2
133//#define MAGIC_KEY_LAYER3 3
134//#define MAGIC_KEY_LAYER4 4
135//#define MAGIC_KEY_LAYER5 5
136//#define MAGIC_KEY_LAYER6 6
137//#define MAGIC_KEY_LAYER7 7
138//#define MAGIC_KEY_LAYER8 8
139//#define MAGIC_KEY_LAYER9 9
140//#define MAGIC_KEY_BOOTLOADER PAUSE
141//#define MAGIC_KEY_LOCK CAPS
142//#define MAGIC_KEY_EEPROM E
143//#define MAGIC_KEY_NKRO N
144//#define MAGIC_KEY_SLEEP_LED Z
145
146/*
147 * Feature disable options
148 * These options are also useful to firmware size reduction.
149 */
150
151/* disable debug print */
152//#define NO_DEBUG
153
154/* disable print */
155//#define NO_PRINT
156
157/* disable action features */
158//#define NO_ACTION_LAYER
159//#define NO_ACTION_TAPPING
160#define NO_ACTION_ONESHOT
161#define NO_ACTION_MACRO
162#define NO_ACTION_FUNCTION
163
164#endif 46#endif
diff --git a/keyboards/s60-x/default/Makefile b/keyboards/s60-x/default/Makefile
new file mode 100644
index 000000000..191c6bb66
--- /dev/null
+++ b/keyboards/s60-x/default/Makefile
@@ -0,0 +1,3 @@
1ifndef MAKEFILE_INCLUDED
2 include ../../../Makefile
3endif \ No newline at end of file
diff --git a/keyboards/s60-x/default/config.h b/keyboards/s60-x/default/config.h
new file mode 100644
index 000000000..436c6fa8b
--- /dev/null
+++ b/keyboards/s60-x/default/config.h
@@ -0,0 +1,25 @@
1#ifndef DEFAULT_CONFIG_H
2#define DEFAULT_CONFIG_H
3
4#include "../config.h"
5
6#define PRODUCT S60-X
7#define DESCRIPTION q.m.k. keyboard firmware for S60-X
8
9#define MATRIX_ROW_PINS { B7, B3, B2, B1, B0 }
10#define MATRIX_COL_PINS { D0, D1, D2, D3, D5, D4, D6, D7, B4, B5, B6, C6, C7, E6, F1 }
11#define UNUSED_PINS { F0 }
12
13#define LOCKING_SUPPORT_ENABLE
14#define LOCKING_RESYNC_ENABLE
15
16/* key combination for magic key command */
17#define IS_COMMAND() ( \
18 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
19)
20
21#define NO_ACTION_ONESHOT
22#define NO_ACTION_MACRO
23#define NO_ACTION_FUNCTION
24
25#endif
diff --git a/keyboards/s60-x/default/default.c b/keyboards/s60-x/default/default.c
new file mode 100644
index 000000000..253f5495c
--- /dev/null
+++ b/keyboards/s60-x/default/default.c
@@ -0,0 +1,28 @@
1#include "default.h"
2
3void matrix_init_kb(void) {
4 // put your keyboard start-up code here
5 // runs once when the firmware starts up
6
7 matrix_init_user();
8}
9
10void matrix_scan_kb(void) {
11 // put your looping keyboard code here
12 // runs every cycle (a lot)
13
14 matrix_scan_user();
15}
16
17bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
18 // put your per-action keyboard code here
19 // runs for every action, just before processing by the firmware
20
21 return process_record_user(keycode, record);
22}
23
24void led_set_kb(uint8_t usb_led) {
25 // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
26
27 led_set_user(usb_led);
28}
diff --git a/keyboards/s60-x/default/default.h b/keyboards/s60-x/default/default.h
new file mode 100644
index 000000000..86233ef7e
--- /dev/null
+++ b/keyboards/s60-x/default/default.h
@@ -0,0 +1,69 @@
1/*
2Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
3Copyright 2015 Vin�cius Nery Cordeiro <vinicius.nery.cordeiro@gmail.com>
4Copyright 2016 Felix Uhl <ifreilicht@gmail.com>
5
6This program is free software: you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation, either version 2 of the License, or
9(at your option) any later version.
10
11This program is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with this program. If not, see <http://www.gnu.org/licenses/>.
18*/
19
20#ifndef DEFAULT_H
21#define DEFAULT_H
22
23#include "quantum.h"
24
25#ifdef __INTELLISENSE__
26#define PROGMEM
27#include "../config.h"
28#endif
29
30/* S60-X keymap definition macro
31* K31 is the extra key next to short left ISO shift
32* K2C is the moved key next to enter on ISO boards
33* K3C is the extra key next to short right JIS shift
34* K0D is extra key from split backspace
35* K3E is extra key from HHKB-style split right shift
36*/
37
38#define KEYMAP( \
39 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
40 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
41 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
42 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
43 K40, K41, K42, K46, K4A, K4B, K4C, K4D \
44) { \
45 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
46 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \
47 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, KC_NO }, \
48 { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
49 { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, KC_NO } \
50}
51
52/*This special definition is used for S60-X keymaps that were ported from TMK
53 * QMK has a lot of keycodes that don't start with KC_, so using the regular KEYMAP macro is recommended
54 */
55#define LEGACY_KEYMAP( \
56 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
57 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
58 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
59 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
60 K40, K41, K42, K46, K4A, K4B, K4C, K4D \
61) { \
62 { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D, KC_##K0E }, \
63 { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D, KC_NO }, \
64 { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_NO }, \
65 { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D, KC_##K3E }, \
66 { KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_NO, KC_NO, KC_##K46, KC_NO, KC_NO, KC_NO, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D, KC_NO } \
67}
68
69#endif \ No newline at end of file
diff --git a/keyboards/s60-x/default/rules.mk b/keyboards/s60-x/default/rules.mk
new file mode 100644
index 000000000..b8ff76260
--- /dev/null
+++ b/keyboards/s60-x/default/rules.mk
@@ -0,0 +1 @@
RGBLIGHT_ENABLE ?= no \ No newline at end of file
diff --git a/keyboards/s60-x/keymaps/dbroqua/keymap.c b/keyboards/s60-x/keymaps/dbroqua/keymap.c
new file mode 100644
index 000000000..940119e52
--- /dev/null
+++ b/keyboards/s60-x/keymaps/dbroqua/keymap.c
@@ -0,0 +1,194 @@
1#include "s60-x.h"
2
3#define _DEFAULT 0
4#define _FN 1
5#define _SFX 2
6
7// Fillers to make layering more clear
8#define ______ KC_TRNS
9
10const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
11/* Qwerty gui/alt/space/alt/gui
12 * ,-----------------------------------------------------------------------------------------.
13 * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` |
14 * |-----------------------------------------------------------------------------------------+
15 * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp |
16 * |-----------------------------------------------------------------------------------------+
17 * | Ctrl | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
18 * |-----------------------------------------------------------------------------------------+
19 * | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | FN |
20 * |-----------------------------------------------------------------------------------------+
21 * |LGUI | LAlt | Space | RAlt |RGUI |
22 * `-----------------------------------------------------------------'
23 */
24 [_DEFAULT] = KEYMAP( /* Basic QWERTY */
25 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \
26 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \
27 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, ______, KC_ENT, \
28 KC_LSFT, ______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, ______, KC_RSFT, MO(_FN), \
29 ______, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, ______, ______ \
30 ),
31
32/* FN Layer
33 * ,-----------------------------------------------------------------------------------------.
34 * | SFX | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del |
35 * |-----------------------------------------------------------------------------------------+
36 * | CAPS | | | | | | | | Psc | Slck| Paus| Up | | |
37 * |-----------------------------------------------------------------------------------------+
38 * | | Vol-| Vol+| Mute| | | * | / | Home| PgUp| Left|Right| |
39 * |-----------------------------------------------------------------------------------------+
40 * | | Prev| Play| Next| | | + | - | End |PgDn| Down| | |
41 * |-----------------------------------------------------------------------------------------+
42 * | | | | Stop | |
43 * `-----------------------------------------------------------------'
44 */
45 [_FN] = KEYMAP( /* Layer 1 */
46 TG(_SFX),KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, \
47 KC_CAPS, ______, ______, ______, ______, ______, ______, ______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, ______, ______, \
48 ______, KC_VOLD, KC_VOLU, KC_MUTE, ______, ______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT,______, ______, \
49 ______, ______, KC_MPRV, KC_MPLY, KC_MNXT,______, ______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN,______, ______, ______, \
50 ______, ______, ______, ______, KC_MSTP, ______, ______, ______ \
51 ),
52
53
54/* SFX Layer
55 * ,-----------------------------------------------------------------------------------------.
56 * | | | | | | | | | | | | | | | |
57 * |-----------------------------------------------------------------------------------------+
58 * | | BL- | BL+ | BL | | | | | | | | | | |
59 * |-----------------------------------------------------------------------------------------+
60 * | | RGBT| RGBM| | | | | | | | | | |
61 * |-----------------------------------------------------------------------------------------+
62 * | | Hue+| Hue-| Sat+| Sat-| Val+| Val-| | | | | | |
63 * |-----------------------------------------------------------------------------------------+
64 * | | | | | |
65 * `-----------------------------------------------------------------'
66 */
67 [_SFX] = KEYMAP(
68 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
69 ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
70 ______, F(0), F(1), ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, \
71 ______, ______, F(2), F(3), F(4), F(5), F(6), F(7), ______, ______, ______, ______, ______, ______, ______, \
72 ______, ______, ______, ______, ______, ______, ______, ______ \
73 )
74};
75
76const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
77 keyevent_t event = record->event;
78
79 switch (id) {
80
81 }
82 return MACRO_NONE;
83}
84
85enum function_id {
86 RGBLED_TOGGLE,
87 RGBLED_STEP_MODE,
88 RGBLED_INCREASE_HUE,
89 RGBLED_DECREASE_HUE,
90 RGBLED_INCREASE_SAT,
91 RGBLED_DECREASE_SAT,
92 RGBLED_INCREASE_VAL,
93 RGBLED_DECREASE_VAL
94};
95
96const uint16_t PROGMEM fn_actions[] = {
97 [0] = ACTION_FUNCTION(RGBLED_TOGGLE),
98 [1] = ACTION_FUNCTION(RGBLED_STEP_MODE),
99 [2] = ACTION_FUNCTION(RGBLED_INCREASE_HUE),
100 [3] = ACTION_FUNCTION(RGBLED_DECREASE_HUE),
101 [4] = ACTION_FUNCTION(RGBLED_INCREASE_SAT),
102 [5] = ACTION_FUNCTION(RGBLED_DECREASE_SAT),
103 [6] = ACTION_FUNCTION(RGBLED_INCREASE_VAL),
104 [7] = ACTION_FUNCTION(RGBLED_DECREASE_VAL)
105};
106
107void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
108 switch (id) {
109 case RGBLED_TOGGLE:
110 if (record->event.pressed) {
111 rgblight_toggle();
112 }
113 break;
114 case RGBLED_INCREASE_HUE:
115 if (record->event.pressed) {
116 rgblight_increase_hue();
117 }
118 break;
119 case RGBLED_DECREASE_HUE:
120 if (record->event.pressed) {
121 rgblight_decrease_hue();
122 }
123 break;
124 case RGBLED_INCREASE_SAT:
125 if (record->event.pressed) {
126 rgblight_increase_sat();
127 }
128 break;
129 case RGBLED_DECREASE_SAT:
130 if (record->event.pressed) {
131 rgblight_decrease_sat();
132 }
133 break;
134 case RGBLED_INCREASE_VAL:
135 if (record->event.pressed) {
136 rgblight_increase_val();
137 }
138 break;
139 case RGBLED_DECREASE_VAL:
140 if (record->event.pressed) {
141 rgblight_decrease_val();
142 }
143 break;
144 case RGBLED_STEP_MODE:
145 if (record->event.pressed) {
146 rgblight_step();
147 }
148 break;
149 }
150}
151
152void matrix_init_user(void) {
153}
154
155void matrix_scan_user(void) {
156}
157
158bool process_record_user(uint16_t keycode, keyrecord_t *record) {
159 return true;
160}
161
162void led_set_user(uint8_t usb_led) {
163
164 if (usb_led & (1 << USB_LED_NUM_LOCK)) {
165
166 } else {
167
168 }
169
170 if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
171
172 } else {
173
174 }
175
176 if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
177
178 } else {
179
180 }
181
182 if (usb_led & (1 << USB_LED_COMPOSE)) {
183
184 } else {
185
186 }
187
188 if (usb_led & (1 << USB_LED_KANA)) {
189
190 } else {
191
192 }
193
194} \ No newline at end of file
diff --git a/keyboards/s60-x/rgb/Makefile b/keyboards/s60-x/rgb/Makefile
new file mode 100644
index 000000000..bd09e5885
--- /dev/null
+++ b/keyboards/s60-x/rgb/Makefile
@@ -0,0 +1,3 @@
1ifndef MAKEFILE_INCLUDED
2 include ../../../Makefile
3endif
diff --git a/keyboards/s60-x/rgb/config.h b/keyboards/s60-x/rgb/config.h
new file mode 100644
index 000000000..26b246e57
--- /dev/null
+++ b/keyboards/s60-x/rgb/config.h
@@ -0,0 +1,31 @@
1#ifndef RBG_CONFIG_H
2#define RBG_CONFIG_H
3
4#include "../config.h"
5
6#define PRODUCT S60-X-RGB
7#define DESCRIPTION q.m.k. keyboard firmware for S60-X RGB
8
9/* key matrix pins */
10#define MATRIX_ROW_PINS { B5, B4, D7, D6, D4 }
11#define MATRIX_COL_PINS { D0, D1, D2, D3, D5, B6, C6, C7, F1, F0, E6, B3, B2, B1, B0 }
12
13/* number of backlight levels */
14#define BACKLIGHT_PIN B7
15#ifdef BACKLIGHT_PIN
16#define BACKLIGHT_LEVELS 3
17#endif
18
19/* prevent stuck modifiers */
20#define PREVENT_STUCK_MODIFIERS
21
22#define RGB_DI_PIN F6
23#ifdef RGB_DI_PIN
24#define RGBLIGHT_ANIMATIONS
25#define RGBLED_NUM 10
26#define RGBLIGHT_HUE_STEP 8
27#define RGBLIGHT_SAT_STEP 8
28#define RGBLIGHT_VAL_STEP 8
29#endif
30
31#endif \ No newline at end of file
diff --git a/keyboards/s60-x/rgb/rgb.c b/keyboards/s60-x/rgb/rgb.c
new file mode 100644
index 000000000..0117e14ae
--- /dev/null
+++ b/keyboards/s60-x/rgb/rgb.c
@@ -0,0 +1 @@
#include "rgb.h"
diff --git a/keyboards/s60-x/rgb/rgb.h b/keyboards/s60-x/rgb/rgb.h
new file mode 100644
index 000000000..cb7a5f567
--- /dev/null
+++ b/keyboards/s60-x/rgb/rgb.h
@@ -0,0 +1,37 @@
1#ifndef S60XRGB_H
2#define S60XRGB_H
3
4#include "quantum.h"
5
6#define KEYMAP( \
7 K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
8 K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \
9 K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \
10 K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \
11 K400, K401, K402, K406, K410, K411, K412, K413 \
12) { \
13 { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \
14 { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, KC_NO }, \
15 { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \
16 { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \
17 { K400, K401, K402, KC_NO, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, K412, K413, KC_NO } \
18}
19
20/*This special definition is used for S60-X keymaps that were ported from TMK
21 * QMK has a lot of keycodes that don't start with KC_, so using the regular KEYMAP macro is recommended
22 */
23#define LEGACY_KEYMAP( \
24 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
25 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
26 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
27 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
28 K40, K41, K42, K46, K4A, K4B, K4C, K4D \
29) { \
30 { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D, KC_##K0E }, \
31 { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D, KC_NO }, \
32 { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_NO }, \
33 { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D, KC_##K3E }, \
34 { KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_NO, KC_NO, KC_##K46, KC_NO, KC_NO, KC_NO, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D, KC_NO } \
35}
36
37#endif \ No newline at end of file
diff --git a/keyboards/s60-x/rgb/rules.mk b/keyboards/s60-x/rgb/rules.mk
new file mode 100644
index 000000000..c303af4bc
--- /dev/null
+++ b/keyboards/s60-x/rgb/rules.mk
@@ -0,0 +1,56 @@
1# MCU name
2MCU = atmega32u4
3
4# Processor frequency.
5# This will define a symbol, F_CPU, in all source code files equal to the
6# processor frequency in Hz. You can then use this symbol in your source code to
7# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
8# automatically to create a 32-bit value in your source code.
9#
10# This will be an integer division of F_USB below, as it is sourced by
11# F_USB after it has run through any CPU prescalers. Note that this value
12# does not *change* the processor frequency - it should merely be updated to
13# reflect the processor speed set externally so that the code can use accurate
14# software delays.
15F_CPU = 16000000
16
17#
18# LUFA specific
19#
20# Target architecture (see library "Board Types" documentation).
21ARCH = AVR8
22
23# Input clock frequency.
24# This will define a symbol, F_USB, in all source code files equal to the
25# input clock frequency (before any prescaling is performed) in Hz. This value may
26# differ from F_CPU if prescaling is used on the latter, and is required as the
27# raw input clock is fed directly to the PLL sections of the AVR for high speed
28# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
29# at the end, this will be done automatically to create a 32-bit value in your
30# source code.
31#
32# If no clock division is performed on the input clock inside the AVR (via the
33# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
34F_USB = $(F_CPU)
35
36# Interrupt driven control endpoint task(+60)
37OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
38
39
40# Boot Section Size in *bytes*
41OPT_DEFS += -DBOOTLOADER_SIZE=4096
42
43
44# Build Options
45# comment out to disable the options.
46#
47BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
48MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
49EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
50CONSOLE_ENABLE ?= no # Console for debug(+400)
51COMMAND_ENABLE ?= no # Commands for debug and configuration
52SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
53NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
54BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
55AUDIO_ENABLE ?= no
56RGBLIGHT_ENABLE ?= yes \ No newline at end of file
diff --git a/keyboards/s60-x/s60-x.c b/keyboards/s60-x/s60-x.c
index 417358140..f031dd770 100644
--- a/keyboards/s60-x/s60-x.c
+++ b/keyboards/s60-x/s60-x.c
@@ -1,28 +1 @@
1#include "s60-x.h" #include "s60-x.h" \ No newline at end of file
2
3void matrix_init_kb(void) {
4 // put your keyboard start-up code here
5 // runs once when the firmware starts up
6
7 matrix_init_user();
8}
9
10void matrix_scan_kb(void) {
11 // put your looping keyboard code here
12 // runs every cycle (a lot)
13
14 matrix_scan_user();
15}
16
17bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
18 // put your per-action keyboard code here
19 // runs for every action, just before processing by the firmware
20
21 return process_record_user(keycode, record);
22}
23
24void led_set_kb(uint8_t usb_led) {
25 // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
26
27 led_set_user(usb_led);
28}
diff --git a/keyboards/s60-x/s60-x.h b/keyboards/s60-x/s60-x.h
index 29a2a27b2..5bf8cfcef 100644
--- a/keyboards/s60-x/s60-x.h
+++ b/keyboards/s60-x/s60-x.h
@@ -1,69 +1,13 @@
1/*
2Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
3Copyright 2015 Vinícius Nery Cordeiro <vinicius.nery.cordeiro@gmail.com>
4Copyright 2016 Felix Uhl <ifreilicht@gmail.com>
5
6This program is free software: you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation, either version 2 of the License, or
9(at your option) any later version.
10
11This program is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with this program. If not, see <http://www.gnu.org/licenses/>.
18*/
19
20#ifndef S60X_H 1#ifndef S60X_H
21#define S60X_H 2#define S60X_H
22 3
23#include "quantum.h" 4#ifdef SUBPROJECT_default
24 5 #include "default.h"
25#ifdef __INTELLISENSE__ 6#endif
26#define PROGMEM 7#ifdef SUBPROJECT_rgb
27#include "config.h" 8 #include "rgb.h"
28#endif 9#endif
29 10
30/* S60-X keymap definition macro 11#include "quantum.h"
31* K31 is the extra key next to short left ISO shift
32* K2C is the moved key next to enter on ISO boards
33* K3C is the extra key next to short right JIS shift
34* K0D is extra key from split backspace
35* K3E is extra key from HHKB-style split right shift
36*/
37
38#define KEYMAP( \
39 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
40 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
41 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
42 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
43 K40, K41, K42, K46, K4A, K4B, K4C, K4D \
44) { \
45 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
46 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \
47 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, KC_NO }, \
48 { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
49 { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, KC_NO } \
50}
51
52/*This special definition is used for S60-X keymaps that were ported from TMK
53 * QMK has a lot of keycodes that don't start with KC_, so using the regular KEYMAP macro is recommended
54 */
55#define LEGACY_KEYMAP( \
56 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
57 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
58 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
59 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
60 K40, K41, K42, K46, K4A, K4B, K4C, K4D \
61) { \
62 { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D, KC_##K0E }, \
63 { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D, KC_NO }, \
64 { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_NO }, \
65 { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D, KC_##K3E }, \
66 { KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_NO, KC_NO, KC_##K46, KC_NO, KC_NO, KC_NO, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D, KC_NO } \
67}
68 12
69#endif 13#endif