qmk/keyboards/takashicompany/minidivide/keyboard.json
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

107 lines
3.6 KiB
JSON

{
"manufacturer": "takashicompany",
"keyboard_name": "miniDivide",
"maintainer": "takashicompany",
"build": {
"lto": true
},
"development_board": "promicro",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true,
"oled": true,
"rgblight": true
},
"matrix_pins": {
"cols": ["D4", "C6", "D7", "E6", "B4"],
"rows": ["F4", "F5", "F6", "F7"]
},
"pin_compatible": "promicro",
"rgblight": {
"animations": {
"alternating": true,
"breathing": true,
"christmas": true,
"knight": true,
"rainbow_mood": true,
"rainbow_swirl": true,
"snake": true,
"static_gradient": true,
"twinkle": true
},
"led_count": 10,
"sleep": true,
"split_count": [5, 5]
},
"split": {
"enabled": true,
"matrix_pins": {
"right": {
"cols": ["B4", "E6", "D7", "C6", "D4"],
"rows": ["F4", "F5", "F6", "F7"]
}
},
"serial": {
"pin": "D2"
}
},
"url": "",
"usb": {
"device_version": "0.0.1",
"pid": "0x0037",
"vid": "0x7463"
},
"ws2812": {
"pin": "D3"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0.42},
{"matrix": [0, 1], "x": 0.84, "y": 0.21},
{"matrix": [0, 2], "x": 1.68, "y": 0},
{"matrix": [0, 3], "x": 2.52, "y": 0.21},
{"matrix": [0, 4], "x": 3.36, "y": 0.42},
{"matrix": [4, 0], "x": 6.3, "y": 0.42},
{"matrix": [4, 1], "x": 7.14, "y": 0.21},
{"matrix": [4, 2], "x": 7.98, "y": 0},
{"matrix": [4, 3], "x": 8.82, "y": 0.21},
{"matrix": [4, 4], "x": 9.66, "y": 0.42},
{"matrix": [1, 0], "x": 0, "y": 1.26},
{"matrix": [1, 1], "x": 0.84, "y": 1.05},
{"matrix": [1, 2], "x": 1.68, "y": 0.84},
{"matrix": [1, 3], "x": 2.52, "y": 1.05},
{"matrix": [1, 4], "x": 3.36, "y": 1.26},
{"matrix": [5, 0], "x": 6.3, "y": 1.26},
{"matrix": [5, 1], "x": 7.14, "y": 1.05},
{"matrix": [5, 2], "x": 7.98, "y": 0.84},
{"matrix": [5, 3], "x": 8.82, "y": 1.05},
{"matrix": [5, 4], "x": 9.66, "y": 1.26},
{"matrix": [2, 0], "x": 0, "y": 2.1},
{"matrix": [2, 1], "x": 0.84, "y": 1.89},
{"matrix": [2, 2], "x": 1.68, "y": 1.68},
{"matrix": [2, 3], "x": 2.52, "y": 1.89},
{"matrix": [2, 4], "x": 3.36, "y": 2.1},
{"matrix": [6, 0], "x": 6.3, "y": 2.1},
{"matrix": [6, 1], "x": 7.14, "y": 1.89},
{"matrix": [6, 2], "x": 7.98, "y": 1.68},
{"matrix": [6, 3], "x": 8.82, "y": 1.89},
{"matrix": [6, 4], "x": 9.66, "y": 2.1},
{"matrix": [3, 1], "x": 1.68, "y": 3.15},
{"matrix": [3, 2], "x": 2.52, "y": 3.15},
{"matrix": [3, 3], "x": 3.36, "y": 3.15},
{"matrix": [3, 4], "x": 4.2, "y": 3.15},
{"matrix": [7, 0], "x": 5.46, "y": 3.15},
{"matrix": [7, 1], "x": 6.3, "y": 3.15},
{"matrix": [7, 2], "x": 7.14, "y": 3.15},
{"matrix": [7, 3], "x": 7.98, "y": 3.15}
]
}
}
}