2021-08-11 11:08:32 +00:00
|
|
|
{
|
|
|
|
version: 0.2.0
|
|
|
|
|
|
|
|
routes: {
|
|
|
|
0x04: {
|
|
|
|
type: router
|
|
|
|
name: Dynamic Keymap
|
|
|
|
define: DYNAMIC_KEYMAP
|
|
|
|
description:
|
|
|
|
'''
|
|
|
|
This subsystem allows for live modifications of the keymap, allowing keys to be reassigned without rebuilding the firmware.
|
|
|
|
'''
|
|
|
|
enable_if_preprocessor: defined(DYNAMIC_KEYMAP_ENABLE)
|
|
|
|
routes: {
|
|
|
|
0x00: {
|
|
|
|
type: command
|
|
|
|
name: Capabilities Query
|
|
|
|
define: CAPABILITIES_QUERY
|
|
|
|
description:
|
|
|
|
'''
|
|
|
|
Dynamic Keymap subsystem capabilities query. Each bit should be considered as a "usable" route within this subsystem.
|
|
|
|
'''
|
|
|
|
return_type: u32
|
|
|
|
return_purpose: capabilities
|
|
|
|
return_constant: XAP_ROUTE_DYNAMIC_KEYMAP_CAPABILITIES
|
|
|
|
}
|
2022-04-01 22:37:58 +00:00
|
|
|
0x01: {
|
|
|
|
type: command
|
|
|
|
name: Get Layer Count
|
|
|
|
define: GET_LAYER_COUNT
|
2022-05-26 17:22:54 +00:00
|
|
|
description: Query maximum number of layers that can be addressed within the keymap.
|
2022-04-01 22:37:58 +00:00
|
|
|
return_type: u8
|
|
|
|
return_constant: DYNAMIC_KEYMAP_LAYER_COUNT
|
|
|
|
}
|
|
|
|
0x02: {
|
|
|
|
type: command
|
|
|
|
name: Get Keycode
|
|
|
|
define: GET_KEYMAP_KEYCODE
|
2022-05-26 17:22:54 +00:00
|
|
|
description: Query the Keycode at the requested location.
|
2022-04-01 22:37:58 +00:00
|
|
|
request_type: struct
|
2022-04-19 02:33:56 +00:00
|
|
|
request_struct_length: 3
|
2022-04-01 22:37:58 +00:00
|
|
|
request_struct_members: [
|
|
|
|
{
|
|
|
|
type: u8
|
|
|
|
name: Layer
|
|
|
|
},
|
|
|
|
{
|
|
|
|
type: u8
|
|
|
|
name: Row
|
|
|
|
},
|
|
|
|
{
|
|
|
|
type: u8
|
|
|
|
name: Column
|
|
|
|
}
|
|
|
|
]
|
|
|
|
return_type: u16
|
|
|
|
return_execute: dynamic_keymap_get_keycode
|
|
|
|
}
|
|
|
|
0x03: {
|
|
|
|
type: command
|
|
|
|
name: Set Keycode
|
|
|
|
define: SET_KEYMAP_KEYCODE
|
2022-05-26 17:22:54 +00:00
|
|
|
description: Modify the Keycode at the requested location.
|
2022-05-22 20:12:32 +00:00
|
|
|
permissions: secure
|
2022-04-01 22:37:58 +00:00
|
|
|
request_type: struct
|
2022-04-19 02:33:56 +00:00
|
|
|
request_struct_length: 5
|
2022-04-01 22:37:58 +00:00
|
|
|
request_struct_members: [
|
|
|
|
{
|
|
|
|
type: u8
|
|
|
|
name: Layer
|
|
|
|
},
|
|
|
|
{
|
|
|
|
type: u8
|
|
|
|
name: Row
|
|
|
|
},
|
|
|
|
{
|
|
|
|
type: u8
|
|
|
|
name: Column
|
|
|
|
},
|
|
|
|
{
|
|
|
|
type: u16
|
|
|
|
name: Keycode
|
|
|
|
}
|
|
|
|
]
|
|
|
|
return_execute: dynamic_keymap_set_keycode
|
|
|
|
}
|
2021-08-11 11:08:32 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
0x05: {
|
|
|
|
type: router
|
|
|
|
name: Dynamic Encoders
|
|
|
|
define: DYNAMIC_ENCODER
|
|
|
|
description:
|
|
|
|
'''
|
|
|
|
This subsystem allows for live modifications of the keymap, allowing encoder functionality to be reassigned without rebuilding the firmware.
|
|
|
|
'''
|
|
|
|
enable_if_preprocessor: defined(DYNAMIC_KEYMAP_ENABLE) && defined(ENCODER_MAP_ENABLE)
|
|
|
|
routes: {
|
|
|
|
0x00: {
|
|
|
|
type: command
|
|
|
|
name: Capabilities Query
|
|
|
|
define: CAPABILITIES_QUERY
|
|
|
|
description:
|
|
|
|
'''
|
|
|
|
Dynamic Encoders subsystem capabilities query. Each bit should be considered as a "usable" route within this subsystem.
|
|
|
|
'''
|
|
|
|
return_type: u32
|
|
|
|
return_purpose: capabilities
|
|
|
|
return_constant: XAP_ROUTE_DYNAMIC_ENCODER_CAPABILITIES
|
|
|
|
}
|
2022-04-20 21:38:06 +00:00
|
|
|
0x02: {
|
|
|
|
type: command
|
|
|
|
name: Get Keycode
|
|
|
|
define: GET_ENCODER_KEYCODE
|
2022-05-26 17:22:54 +00:00
|
|
|
description: Query the Keycode at the requested location.
|
2022-04-20 21:38:06 +00:00
|
|
|
request_type: struct
|
|
|
|
request_struct_length: 3
|
|
|
|
request_struct_members: [
|
|
|
|
{
|
|
|
|
type: u8
|
|
|
|
name: Layer
|
|
|
|
},
|
|
|
|
{
|
|
|
|
type: u8
|
|
|
|
name: Encoder
|
|
|
|
},
|
|
|
|
{
|
|
|
|
type: u8
|
|
|
|
name: Clockwise
|
|
|
|
}
|
|
|
|
]
|
|
|
|
return_type: u16
|
|
|
|
return_execute: dynamic_encoder_get_keycode
|
|
|
|
}
|
|
|
|
0x03: {
|
|
|
|
type: command
|
|
|
|
name: Set Keycode
|
|
|
|
define: SET_ENCODER_KEYCODE
|
2022-05-22 20:12:32 +00:00
|
|
|
permissions: secure
|
2022-05-26 17:22:54 +00:00
|
|
|
description: Modify the Keycode at the requested location.
|
2022-04-20 21:38:06 +00:00
|
|
|
request_type: struct
|
|
|
|
request_struct_length: 5
|
|
|
|
request_struct_members: [
|
|
|
|
{
|
|
|
|
type: u8
|
|
|
|
name: Layer
|
|
|
|
},
|
|
|
|
{
|
|
|
|
type: u8
|
|
|
|
name: Encoder
|
|
|
|
},
|
|
|
|
{
|
|
|
|
type: u8
|
|
|
|
name: Clockwise
|
|
|
|
},
|
|
|
|
{
|
|
|
|
type: u16
|
|
|
|
name: Keycode
|
|
|
|
}
|
|
|
|
]
|
|
|
|
return_execute: dynamic_encoder_set_keycode
|
|
|
|
}
|
2021-08-11 11:08:32 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
0x06: {
|
|
|
|
type: router
|
|
|
|
name: Lighting
|
|
|
|
define: LIGHTING
|
|
|
|
description:
|
|
|
|
'''
|
|
|
|
This subsystem allows for control over the lighting subsystem.
|
|
|
|
'''
|
|
|
|
enable_if_preprocessor: defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
|
|
|
|
routes: {
|
|
|
|
0x00: {
|
|
|
|
type: command
|
|
|
|
name: Capabilities Query
|
|
|
|
define: CAPABILITIES_QUERY
|
|
|
|
description:
|
|
|
|
'''
|
|
|
|
Lighting subsystem capabilities query. Each bit should be considered as a "usable" route within this subsystem.
|
|
|
|
'''
|
|
|
|
return_type: u32
|
|
|
|
return_purpose: capabilities
|
|
|
|
return_constant: XAP_ROUTE_LIGHTING_CAPABILITIES
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|