qmk_firmware/data/xap/xap_0.2.0.hjson

201 lines
7.2 KiB
Plaintext
Raw Normal View History

{
version: 0.2.0
routes: {
0x04: {
type: router
2022-06-19 21:04:30 +00:00
name: Keymap
define: KEYMAP
description:
'''
2022-06-19 21:04:30 +00:00
This subsystem allows for query of currently configured keycodes.
'''
routes: {
2022-06-19 21:04:30 +00:00
0x01: {
type: command
name: Capabilities Query
define: CAPABILITIES_QUERY
description:
'''
2022-06-19 21:04:30 +00:00
Keymap subsystem capabilities query. Each bit should be considered as a "usable" route within this subsystem.
'''
return_type: u32
return_purpose: capabilities
2022-06-19 21:04:30 +00:00
return_constant: XAP_ROUTE_KEYMAP_CAPABILITIES
}
0x02: {
type: command
name: Get Layer Count
define: GET_LAYER_COUNT
description: Query maximum number of layers that can be addressed within the keymap.
return_type: u8
return_execute: keymap_get_layer_count
}
0x03: {
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.
request_type: struct
2022-04-19 02:33:56 +00:00
request_struct_length: 3
request_struct_members: [
{
type: u8
name: Layer
},
{
type: u8
name: Row
},
{
type: u8
name: Column
}
]
return_type: u16
2022-06-19 21:04:30 +00:00
return_execute: get_keymap_keycode
}
0x04: {
type: command
2022-06-19 21:04:30 +00:00
name: Get Encoder Keycode
define: GET_ENCODER_KEYCODE
description: Query the Keycode at the requested location.
enable_if_preprocessor: defined(ENCODER_MAP_ENABLE)
request_type: struct
2022-06-19 21:04:30 +00:00
request_struct_length: 3
request_struct_members: [
{
type: u8
name: Layer
},
{
type: u8
2022-06-19 21:04:30 +00:00
name: Encoder
},
{
type: u8
2022-06-19 21:04:30 +00:00
name: Clockwise
}
]
2022-06-19 21:04:30 +00:00
return_type: u16
return_execute: get_encoder_keycode
}
}
}
0x05: {
type: router
2022-06-19 21:04:30 +00:00
name: Remapping
define: REMAPPING
description:
'''
2022-06-19 21:04:30 +00:00
This subsystem allows for live reassignment of keycodes without rebuilding the firmware.
'''
2022-06-19 21:04:30 +00:00
enable_if_preprocessor: defined(DYNAMIC_KEYMAP_ENABLE)
routes: {
2022-06-19 21:04:30 +00:00
0x01: {
type: command
name: Capabilities Query
define: CAPABILITIES_QUERY
description:
'''
2022-06-19 21:04:30 +00:00
Remapping subsystem capabilities query. Each bit should be considered as a "usable" route within this subsystem.
'''
return_type: u32
return_purpose: capabilities
2022-06-19 21:04:30 +00:00
return_constant: XAP_ROUTE_REMAPPING_CAPABILITIES
}
2022-04-20 21:38:06 +00:00
0x02: {
type: command
name: Get Layer Count
define: GET_DYNAMIC_LAYER_COUNT
description: Query maximum number of layers that can be addressed within the keymap.
return_type: u8
return_constant: DYNAMIC_KEYMAP_LAYER_COUNT
}
0x03: {
2022-04-20 21:38:06 +00:00
type: command
2022-06-19 21:04:30 +00:00
name: Set Keycode
define: SET_KEYMAP_KEYCODE
description: Modify the Keycode at the requested location.
permissions: secure
2022-04-20 21:38:06 +00:00
request_type: struct
2022-06-19 21:04:30 +00:00
request_struct_length: 5
2022-04-20 21:38:06 +00:00
request_struct_members: [
{
type: u8
name: Layer
},
{
type: u8
2022-06-19 21:04:30 +00:00
name: Row
2022-04-20 21:38:06 +00:00
},
{
type: u8
2022-06-19 21:04:30 +00:00
name: Column
},
{
type: u16
name: Keycode
2022-04-20 21:38:06 +00:00
}
]
2022-06-19 21:04:30 +00:00
return_execute: dynamic_keymap_set_keycode
2022-04-20 21:38:06 +00:00
}
0x04: {
2022-04-20 21:38:06 +00:00
type: command
2022-06-19 21:04:30 +00:00
name: Set Encoder Keycode
2022-04-20 21:38:06 +00:00
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-06-19 21:04:30 +00:00
enable_if_preprocessor: defined(ENCODER_MAP_ENABLE)
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
}
}
}
0x06: {
type: router
name: Lighting
define: LIGHTING
description:
'''
This subsystem allows for control over the lighting subsystem.
'''
routes: {
2022-06-19 21:04:30 +00:00
0x01: {
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
}
}
}
}
}