vialrgb: initial
parent
baf67139c6
commit
9b93011637
|
|
@ -41,6 +41,10 @@ QMK_RGBLIGHT_EFFECT = 0x81
|
|||
QMK_RGBLIGHT_EFFECT_SPEED = 0x82
|
||||
QMK_RGBLIGHT_COLOR = 0x83
|
||||
|
||||
VIALRGB_GET_MODE = 0x40
|
||||
|
||||
VIALRGB_SET_MODE = 0x40
|
||||
|
||||
CMD_VIAL_GET_KEYBOARD_ID = 0x00
|
||||
CMD_VIAL_GET_SIZE = 0x01
|
||||
CMD_VIAL_GET_DEFINITION = 0x02
|
||||
|
|
@ -194,10 +198,13 @@ class Keyboard:
|
|||
self.vibl = False
|
||||
self.custom_keycodes = None
|
||||
|
||||
self.lighting_qmk_rgblight = self.lighting_qmk_backlight = False
|
||||
self.lighting_qmk_rgblight = self.lighting_qmk_backlight = self.lighting_vialrgb = False
|
||||
self.underglow_brightness = self.underglow_effect = self.underglow_effect_speed = -1
|
||||
self.backlight_brightness = self.backlight_effect = -1
|
||||
self.underglow_color = (0, 0)
|
||||
# vialrgb
|
||||
self.rgb_mode = self.rgb_speed = -1
|
||||
self.rgb_hsv = (0, 0, 0)
|
||||
|
||||
self.via_protocol = self.vial_protocol = self.keyboard_id = -1
|
||||
|
||||
|
|
@ -364,6 +371,7 @@ class Keyboard:
|
|||
if "lighting" in self.definition:
|
||||
self.lighting_qmk_rgblight = self.definition["lighting"] in ["qmk_rgblight", "qmk_backlight_rgblight"]
|
||||
self.lighting_qmk_backlight = self.definition["lighting"] in ["qmk_backlight", "qmk_backlight_rgblight"]
|
||||
self.lighting_vialrgb = self.definition["lighting"] == "vialrgb"
|
||||
|
||||
if self.lighting_qmk_rgblight:
|
||||
self.underglow_brightness = self.usb_send(
|
||||
|
|
@ -383,6 +391,12 @@ class Keyboard:
|
|||
self.backlight_effect = self.usb_send(
|
||||
self.dev, struct.pack(">BB", CMD_VIA_LIGHTING_GET_VALUE, QMK_BACKLIGHT_EFFECT), retries=20)[2]
|
||||
|
||||
if self.lighting_vialrgb:
|
||||
data = self.usb_send(self.dev, struct.pack("BB", CMD_VIA_LIGHTING_GET_VALUE, VIALRGB_GET_MODE))[2:]
|
||||
self.rgb_mode = data[0]
|
||||
self.rgb_speed = data[1]
|
||||
self.rgb_hsv = (data[2], data[3], data[4])
|
||||
|
||||
def reload_settings(self):
|
||||
self.settings = dict()
|
||||
self.supported_settings = set()
|
||||
|
|
@ -782,6 +796,15 @@ class Keyboard:
|
|||
self.usb_send(self.dev, struct.pack("BBBB", CMD_VIA_VIAL_PREFIX, CMD_VIAL_DYNAMIC_ENTRY_OP,
|
||||
DYNAMIC_VIAL_COMBO_SET, idx) + serialized, retries=20)
|
||||
|
||||
def _vialrgb_set_mode(self):
|
||||
self.usb_send(self.dev, struct.pack("BBBBBBB", CMD_VIA_LIGHTING_SET_VALUE, VIALRGB_SET_MODE,
|
||||
self.rgb_mode, self.rgb_speed,
|
||||
self.rgb_hsv[0], self.rgb_hsv[1], self.rgb_hsv[2]))
|
||||
|
||||
def set_vialrgb_brightness(self, value):
|
||||
self.rgb_hsv = (self.rgb_hsv[0], self.rgb_hsv[1], value)
|
||||
self._vialrgb_set_mode()
|
||||
|
||||
|
||||
class DummyKeyboard(Keyboard):
|
||||
|
||||
|
|
|
|||
|
|
@ -240,6 +240,50 @@ class QmkBacklightHandler(BasicHandler):
|
|||
self.device.keyboard.set_qmk_backlight_effect(int(checked))
|
||||
|
||||
|
||||
class VialRGBHandler(BasicHandler):
|
||||
|
||||
def __init__(self, container):
|
||||
super().__init__(container)
|
||||
|
||||
row = container.rowCount()
|
||||
|
||||
self.lbl_rgb_brightness = QLabel(tr("RGBConfigurator", "RGB Brightness"))
|
||||
container.addWidget(self.lbl_rgb_brightness, row + 1, 0)
|
||||
self.rgb_brightness = QSlider(QtCore.Qt.Horizontal)
|
||||
self.rgb_brightness.setMinimum(0)
|
||||
self.rgb_brightness.setMaximum(255)
|
||||
self.rgb_brightness.valueChanged.connect(self.on_rgb_brightness_changed)
|
||||
container.addWidget(self.rgb_brightness, row + 1, 1)
|
||||
|
||||
self.widgets = [self.lbl_rgb_brightness, self.rgb_brightness]
|
||||
|
||||
def on_rgb_brightness_changed(self, value):
|
||||
self.device.keyboard.set_vialrgb_brightness(value)
|
||||
|
||||
def show(self):
|
||||
for w in self.widgets:
|
||||
w.show()
|
||||
|
||||
def hide(self):
|
||||
for w in self.widgets:
|
||||
w.hide()
|
||||
|
||||
def block_signals(self):
|
||||
for w in self.widgets:
|
||||
w.blockSignals(True)
|
||||
|
||||
def unblock_signals(self):
|
||||
for w in self.widgets:
|
||||
w.blockSignals(False)
|
||||
|
||||
def update_from_keyboard(self):
|
||||
print("hsv", self.device.keyboard.rgb_hsv)
|
||||
self.rgb_brightness.setValue(self.device.keyboard.rgb_hsv[2])
|
||||
|
||||
def valid(self):
|
||||
return isinstance(self.device, VialKeyboard) and self.device.keyboard.lighting_vialrgb
|
||||
|
||||
|
||||
class RGBConfigurator(BasicEditor):
|
||||
|
||||
def __init__(self):
|
||||
|
|
@ -258,7 +302,9 @@ class RGBConfigurator(BasicEditor):
|
|||
self.handler_backlight.update.connect(self.update_from_keyboard)
|
||||
self.handler_rgblight = QmkRgblightHandler(self.container)
|
||||
self.handler_rgblight.update.connect(self.update_from_keyboard)
|
||||
self.handlers = [self.handler_backlight, self.handler_rgblight]
|
||||
self.handler_vialrgb = VialRGBHandler(self.container)
|
||||
self.handler_vialrgb.update.connect(self.update_from_keyboard)
|
||||
self.handlers = [self.handler_backlight, self.handler_rgblight, self.handler_vialrgb]
|
||||
|
||||
self.addStretch()
|
||||
buttons = QHBoxLayout()
|
||||
|
|
@ -273,7 +319,8 @@ class RGBConfigurator(BasicEditor):
|
|||
|
||||
def valid(self):
|
||||
return isinstance(self.device, VialKeyboard) and \
|
||||
(self.device.keyboard.lighting_qmk_rgblight or self.device.keyboard.lighting_qmk_backlight)
|
||||
(self.device.keyboard.lighting_qmk_rgblight or self.device.keyboard.lighting_qmk_backlight
|
||||
or self.device.keyboard.lighting_vialrgb)
|
||||
|
||||
def block_signals(self):
|
||||
for h in self.handlers:
|
||||
|
|
|
|||
Loading…
Reference in New Issue