aboutsummaryrefslogtreecommitdiff
path: root/keyboard/lightsaber
diff options
context:
space:
mode:
Diffstat (limited to 'keyboard/lightsaber')
-rw-r--r--keyboard/lightsaber/backlight.c48
-rw-r--r--keyboard/lightsaber/backlight.h9
-rw-r--r--keyboard/lightsaber/keymap_winkey.h14
3 files changed, 59 insertions, 12 deletions
diff --git a/keyboard/lightsaber/backlight.c b/keyboard/lightsaber/backlight.c
index b28200807..59b8b4a63 100644
--- a/keyboard/lightsaber/backlight.c
+++ b/keyboard/lightsaber/backlight.c
@@ -26,8 +26,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
26 * Backside PD6 (high) 26 * Backside PD6 (high)
27 * TopRight PD7 (low) 27 * TopRight PD7 (low)
28 * F-Row PE6 (high) 28 * F-Row PE6 (high)
29 *
30 */ 29 */
30
31void backlight_set(uint8_t level) 31void backlight_set(uint8_t level)
32{ 32{
33 // Set as output. 33 // Set as output.
@@ -35,22 +35,52 @@ void backlight_set(uint8_t level)
35 DDRD |= (1<<6) | (1<<7); 35 DDRD |= (1<<6) | (1<<7);
36 DDRE |= (1<<6); 36 DDRE |= (1<<6);
37 37
38 if(level & (1<<0)) 38 if (level & BACKLIGHT_ALPHA)
39 { 39 {
40 PORTB &= ~(1<<1); 40 PORTB |= (1<<1);
41 PORTB &= ~(1<<2);
42 PORTB &= ~(1<<3);
43 PORTD &= ~(1<<6);
44 PORTD |= (1<<7);
45 PORTE &= ~(1<<6);
46 } 41 }
47 else 42 else
48 { 43 {
49 PORTB |= (1<<1); 44 PORTB &= ~(1<<1);
45 }
46 if (level & BACKLIGHT_NUMERIC)
47 {
50 PORTB |= (1<<2); 48 PORTB |= (1<<2);
49 }
50 else
51 {
52 PORTB &= ~(1<<2);
53 }
54 if (level & BACKLIGHT_MODNUM)
55 {
51 PORTB |= (1<<3); 56 PORTB |= (1<<3);
57 }
58 else
59 {
60 PORTB &= ~(1<<3);
61 }
62 if (level & BACKLIGHT_BACKSIDE)
63 {
52 PORTD |= (1<<6); 64 PORTD |= (1<<6);
65 }
66 else
67 {
68 PORTD &= ~(1<<6);
69 }
70 if (level & BACKLIGHT_TOPRIGHT)
71 {
53 PORTD &= ~(1<<7); 72 PORTD &= ~(1<<7);
73 }
74 else
75 {
76 PORTD |= (1<<7);
77 }
78 if (level & BACKLIGHT_FROW)
79 {
54 PORTE |= (1<<6); 80 PORTE |= (1<<6);
55 } 81 }
82 else
83 {
84 PORTE &= ~(1<<6);
85 }
56} 86}
diff --git a/keyboard/lightsaber/backlight.h b/keyboard/lightsaber/backlight.h
new file mode 100644
index 000000000..6dc7967a6
--- /dev/null
+++ b/keyboard/lightsaber/backlight.h
@@ -0,0 +1,9 @@
1
2enum backlight_level {
3 BACKLIGHT_ALPHA = 0b0000001,
4 BACKLIGHT_NUMERIC = 0b0000010,
5 BACKLIGHT_MODNUM = 0b0000100,
6 BACKLIGHT_BACKSIDE = 0b0001000,
7 BACKLIGHT_TOPRIGHT = 0b0010000,
8 BACKLIGHT_FROW = 0b0100000,
9};
diff --git a/keyboard/lightsaber/keymap_winkey.h b/keyboard/lightsaber/keymap_winkey.h
index 59ffd4a8f..3e8367083 100644
--- a/keyboard/lightsaber/keymap_winkey.h
+++ b/keyboard/lightsaber/keymap_winkey.h
@@ -1,3 +1,5 @@
1#include "backlight.h"
2
1static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 3static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
2 KEYMAP(\ 4 KEYMAP(\
3 ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, INS, PSCR, SLCK, BRK, \ 5 ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, INS, PSCR, SLCK, BRK, \
@@ -8,14 +10,20 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
8 LCTL,LGUI,LALT, SPC, NO, RALT,RGUI,RCTL, KP_0, NO, KP_DOT, NO), \ 10 LCTL,LGUI,LALT, SPC, NO, RALT,RGUI,RCTL, KP_0, NO, KP_DOT, NO), \
9 KEYMAP(\ 11 KEYMAP(\
10 CALC,MYCM,WSCH,WHOM,MAIL,MUTE,VOLD,VOLU,MSEL,MSTP,MPLY,MPRV,MNXT,TRNS, TRNS, WAKE, PWR, SLEP, \ 12 CALC,MYCM,WSCH,WHOM,MAIL,MUTE,VOLD,VOLU,MSEL,MSTP,MPLY,MPRV,MNXT,TRNS, TRNS, WAKE, PWR, SLEP, \
11 TRNS,TRNS,TRNS,TRNS,END ,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, TRNS, TRNS, TRNS, \ 13 FN1, FN2, FN3, FN4, FN5, FN6, FN7, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, TRNS, TRNS, TRNS, \
12 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, TRNS, TRNS, TRNS, \ 14 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, TRNS, TRNS, TRNS, \
13 TRNS,TRNS,TRNS,TRNS,PGDN,TRNS,LEFT,DOWN,UP ,RGHT,TRNS,TRNS,TRNS,TRNS, TRNS, TRNS, TRNS, TRNS, \ 15 TRNS,TRNS,TRNS,TRNS,PGDN,TRNS,LEFT,DOWN,UP ,RGHT,TRNS,TRNS,TRNS,TRNS, TRNS, TRNS, TRNS, TRNS, \
14 TRNS, TRNS,TRNS,TRNS,TRNS,PGUP,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, TRNS, TRNS, TRNS, \ 16 TRNS, TRNS,TRNS,TRNS,TRNS,PGUP,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, TRNS, TRNS, TRNS, \
15 TRNS,TRNS,TRNS, FN1, TRNS,TRNS,TRNS,TRNS, TRNS, TRNS, TRNS, TRNS) 17 TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS, TRNS, TRNS, TRNS, TRNS)
16}; 18};
17 19
18static const uint16_t PROGMEM fn_actions[] = { 20static const uint16_t PROGMEM fn_actions[] = {
19 [0] = ACTION_LAYER_MOMENTARY(1), 21 [0] = ACTION_LAYER_MOMENTARY(1),
20 [1] = ACTION_BACKLIGHT_STEP() 22 [1] = ACTION_BACKLIGHT_TOGGLE(),
23 [2] = ACTION_BACKLIGHT_LEVEL(BACKLIGHT_ALPHA),
24 [3] = ACTION_BACKLIGHT_LEVEL(BACKLIGHT_MODNUM),
25 [4] = ACTION_BACKLIGHT_LEVEL(BACKLIGHT_NUMERIC),
26 [5] = ACTION_BACKLIGHT_LEVEL(BACKLIGHT_FROW),
27 [6] = ACTION_BACKLIGHT_LEVEL(BACKLIGHT_BACKSIDE),
28 [7] = ACTION_BACKLIGHT_LEVEL(BACKLIGHT_TOPRIGHT)
21}; 29};