qmk_firmware/keyboards/work_louder/loop
Stefan Kerkmann 3f9d464412
[Core] usb_device_state: consolidate usb state handling across implementations (#24258)
* usb_device_state: add idle_rate, led and protocol

Previously all usb drivers and platform implementations (expect for our
oddball atsam) tracked the same two global variables:

- keyboard_protocol: to indicate if we are in report or boot protocol
- keyboard_idle: for the idle_rate of the keyboard endpoint

And a local variable that was exposed trough some indirection:

- keyboard_led_state: for the currently set indicator leds (caps lock etc.)

These have all been moved into the usb_device_state struct wich is
accessible by getters and setters.

This reduces code duplication and centralizes the state management
across platforms and drivers.

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>

* usb_device_state: reset protocol on reset

The usb hid specification section 7.2.6 states:

When initialized, all devices default to report protocol. However the
host should not make any assumptions about the device’s state and should
set the desired protocol whenever initializing a device.

Thus on reset we should always do exactly that.

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>

* keyboards: fix oversize warnings

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>

---------

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>
2024-10-18 09:57:08 +02:00
..
keymaps/default Separate RGBLight/RGB Matrix keycode handling (#23679) 2024-10-12 18:43:50 +02:00
rev1
rev3
config.h Separate RGBLight/RGB Matrix keycode handling (#23679) 2024-10-12 18:43:50 +02:00
info.json [Core] usb_device_state: consolidate usb state handling across implementations (#24258) 2024-10-18 09:57:08 +02:00
loop.c Separate RGBLight/RGB Matrix keycode handling (#23679) 2024-10-12 18:43:50 +02:00
post_config.h
readme.md
rules.mk

Work Louder Loop Pad

loop

A 9 key macro pad with 3 encoders and RGB.

  • Keyboard Maintainer: Work Louder
  • Hardware Supported: An ATmega32u4 based macro pad with per key and underglow RGB
  • Hardware Availability: Work Louder

Make example for this keyboard (after setting up your build environment):

make work_louder/loop:default

Flashing example for this keyboard:

make work_louder/loop:default:flash

Enter bootloader to flash the keyboard, you do either:

* Hold down the right most key while plugging in the keyboard
* Hold the third encoder down, and hit the first encoder

See the build environment setup and the make instructions for more information. Brand new to QMK? Start with our Complete Newbs Guide.