Finished porting RGB to extensionss

This commit is contained in:
Kyle Brown
2020-10-23 13:40:24 -07:00
parent 9972e8d23d
commit 54592a01b0
3 changed files with 49 additions and 35 deletions

View File

@@ -14,7 +14,11 @@ class AnimationModes:
STATIC = 1 STATIC = 1
STATIC_STANDBY = 2 STATIC_STANDBY = 2
BREATHING = 3 BREATHING = 3
USER = 4 RAINBOW = 4
BREATHING_RAINBOW = 5
KNIGHT = 6
SWIRL = 7
USER = 8
class RGB(Extension): class RGB(Extension):
@@ -51,8 +55,7 @@ class RGB(Extension):
auto_write=not disable_auto_write, auto_write=not disable_auto_write,
) )
if len(rgb_order) == 4: self.rgbw = bool(len(rgb_order) == 4)
self.rgbw = True
self.num_pixels = num_pixels self.num_pixels = num_pixels
self.hue_step = hue_step self.hue_step = hue_step
@@ -130,9 +133,6 @@ class RGB(Extension):
on_release=handler_passthrough, on_release=handler_passthrough,
) )
def during_bootup(self, keyboard):
pass
def after_hid_send(self, keyboard): def after_hid_send(self, keyboard):
if self.animation_mode: if self.animation_mode:
self.loopcounter += 1 self.loopcounter += 1
@@ -420,21 +420,21 @@ class RGB(Extension):
if self.effect_init: if self.effect_init:
self._init_effect() self._init_effect()
if self.animation_mode == 'breathing': if self.animation_mode == AnimationModes.BREATHING:
return self.effect_breathing() return self.effect_breathing()
elif self.animation_mode == 'rainbow': elif self.animation_mode == AnimationModes.RAINBOW:
return self.effect_rainbow() return self.effect_rainbow()
elif self.animation_mode == 'breathing_rainbow': elif self.animation_mode == AnimationModes.BREATHING_RAINBOW:
return self.effect_breathing_rainbow() return self.effect_breathing_rainbow()
elif self.animation_mode == 'static': elif self.animation_mode == AnimationModes.STATIC:
return self.effect_static() return self.effect_static()
elif self.animation_mode == 'knight': elif self.animation_mode == AnimationModes.KNIGHT:
return self.effect_knight() return self.effect_knight()
elif self.animation_mode == 'swirl': elif self.animation_mode == AnimationModes.SWIRL:
return self.effect_swirl() return self.effect_swirl()
elif self.animation_mode == 'user': elif self.animation_mode == AnimationModes.USER:
return self.user_animation(self) return self.user_animation(self)
elif self.animation_mode == 'static_standby': elif self.animation_mode == AnimationModes.STATIC_STANDBY:
pass pass
else: else:
self.off() self.off()
@@ -452,11 +452,11 @@ class RGB(Extension):
def _init_effect(self): def _init_effect(self):
if ( if (
self.animation_mode == 'breathing' self.animation_mode == AnimationModes.BREATHING
or self.animation_mode == 'breathing_rainbow' or self.animation_mode == AnimationModes.BREATHING_RAINBOW
): ):
self.intervals = (30, 20, 10, 5) self.intervals = (30, 20, 10, 5)
elif self.animation_mode == 'swirl': elif self.animation_mode == AnimationModes.SWIRL:
self.intervals = (50, 50) self.intervals = (50, 50)
self.pos = 0 self.pos = 0
@@ -465,15 +465,15 @@ class RGB(Extension):
return self return self
def _check_update(self): def _check_update(self):
return bool(self.animation_mode == 'static_standby') return bool(self.animation_mode == AnimationModes.STATIC_STANDBY)
def _do_update(self): def _do_update(self):
if self.animation_mode == 'static_standby': if self.animation_mode == AnimationModes.STATIC_STANDBY:
self.animation_mode = 'static' self.animation_mode = AnimationModes.STATIC
def effect_static(self): def effect_static(self):
self.set_hsv_fill(self.hue, self.sat, self.val) self.set_hsv_fill(self.hue, self.sat, self.val)
self.animation_mode = 'static_standby' self.animation_mode = AnimationModes.STATIC_STANDBY
return self return self
def effect_breathing(self): def effect_breathing(self):
@@ -579,30 +579,30 @@ class RGB(Extension):
def _rgb_mode_static(self, key, state, *args, **kwargs): def _rgb_mode_static(self, key, state, *args, **kwargs):
self.effect_init = True self.effect_init = True
self.animation_mode = 'static' self.animation_mode = AnimationModes.STATIC
return state return state
def _rgb_mode_breathe(self, key, state, *args, **kwargs): def _rgb_mode_breathe(self, key, state, *args, **kwargs):
self.effect_init = True self.effect_init = True
self.animation_mode = 'breathing' self.animation_mode = AnimationModes.BREATHING
return state return state
def _rgb_mode_breathe_rainbow(self, key, state, *args, **kwargs): def _rgb_mode_breathe_rainbow(self, key, state, *args, **kwargs):
self.effect_init = True self.effect_init = True
self.animation_mode = 'breathing_rainbow' self.animation_mode = AnimationModes.BREATHING_RAINBOW
return state return state
def _rgb_mode_rainbow(self, key, state, *args, **kwargs): def _rgb_mode_rainbow(self, key, state, *args, **kwargs):
self.effect_init = True self.effect_init = True
self.animation_mode = 'rainbow' self.animation_mode = AnimationModes.RAINBOW
return state return state
def _rgb_mode_swirl(self, key, state, *args, **kwargs): def _rgb_mode_swirl(self, key, state, *args, **kwargs):
self.effect_init = True self.effect_init = True
self.animation_mode = 'swirl' self.animation_mode = AnimationModes.SWIRL
return state return state
def _rgb_mode_knight(self, key, state, *args, **kwargs): def _rgb_mode_knight(self, key, state, *args, **kwargs):
self.effect_init = True self.effect_init = True
self.animation_mode = 'knight' self.animation_mode = AnimationModes.KNIGHT
return state return state

View File

@@ -341,6 +341,7 @@ class KMKKeyboard:
self._extensions = [] + getattr(self, 'extensions', []) self._extensions = [] + getattr(self, 'extensions', [])
try: try:
print('EXTENSIONS', self.extensions)
del self.extensions del self.extensions
except Exception: except Exception:
pass pass
@@ -358,6 +359,7 @@ class KMKKeyboard:
ext.during_bootup(self) ext.during_bootup(self)
except Exception: except Exception:
# TODO FIXME log the exceptions or something # TODO FIXME log the exceptions or something
print('Failed to load ', ext)
pass pass
self._init_matrix() self._init_matrix()

View File

@@ -1,3 +1,5 @@
import board
from kmk.boards.converter.keebio.nyquist_r2 import KMKKeyboard from kmk.boards.converter.keebio.nyquist_r2 import KMKKeyboard
from kmk.extensions.leader import Leader, LeaderMode from kmk.extensions.leader import Leader, LeaderMode
from kmk.extensions.rgb import RGB from kmk.extensions.rgb import RGB
@@ -36,6 +38,16 @@ BASE = KC.DF(0)
LT2_SP = KC.LT(3, KC.SPC) LT2_SP = KC.LT(3, KC.SPC)
GAMING = KC.DF(1) GAMING = KC.DF(1)
leader_ext = Leader(mode=LeaderMode.ENTER, sequences={
'hello': send_string('hello world from kmk macros'),
'ls': KC.LGUI(KC.HOME),
'dbg': KC.DBG,
})
rgb_ext = RGB(pixel_pin=board.TX, num_pixels=12, val_limit=150, hue_step=10, sat_step=5, val_step=5, hue_default=260, sat_default=100, val_default=40, animation_speed=1)
keyboard.extensions = [leader_ext, rgb_ext]
HACHEEJ = simple_key_sequence(( HACHEEJ = simple_key_sequence((
KC.LSFT(KC.SCOLON), KC.H, KC.A, KC.C, KC.H, KC.E, KC.E, KC.J, KC.A, KC.I, KC.L, KC.N1, KC.LSFT(KC.SCOLON), KC.LSFT(KC.SCOLON), KC.H, KC.A, KC.C, KC.H, KC.E, KC.E, KC.J, KC.A, KC.I, KC.L, KC.N1, KC.LSFT(KC.SCOLON),
KC.LSFT(KC.SCOLON), KC.H, KC.A, KC.C, KC.H, KC.E, KC.E, KC.J, KC.A, KC.I, KC.L, KC.N2, KC.LSFT(KC.SCOLON), KC.LSFT(KC.SCOLON), KC.H, KC.A, KC.C, KC.H, KC.E, KC.E, KC.J, KC.A, KC.I, KC.L, KC.N2, KC.LSFT(KC.SCOLON),
@@ -112,7 +124,7 @@ keyboard.keymap = [
# r1 # r1
KC.GESC, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, KC.DEL, KC.GESC, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, KC.DEL,
KC.TILD, KC.EXLM, KC.AT, KC.HASH, KC.DLR, KC.PERC, KC.CIRC, KC.AMPR, KC.ASTR, KC.LPRN, KC.RPRN, KC.DEL, KC.TILD, KC.EXLM, KC.AT, KC.HASH, KC.DLR, KC.PERC, KC.CIRC, KC.AMPR, KC.ASTR, KC.LPRN, KC.RPRN, KC.DEL,
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC.LBRC, KC.RBRC, KC.BSLS, KC.LEAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC.LBRC, KC.RBRC, KC.BSLS,
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC.INS, _______, _______, KC.MINS, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC.INS, _______, _______, KC.MINS,
KC.RESET, _______, _______, _______, _______, _______, _______, KC.EQL, KC.HOME, KC.PGDN, KC.PGUP, KC.END, KC.RESET, _______, _______, _______, _______, _______, _______, KC.EQL, KC.HOME, KC.PGDN, KC.PGUP, KC.END,
], ],