mirror of https://github.com/zmkfirmware/zmk.git
rename kconfig symbols, cleaner macros, and other
This commit is contained in:
parent
ddfe21baae
commit
1fc1fbbfc8
|
|
@ -94,7 +94,7 @@ target_sources_ifdef(CONFIG_ZMK_BACKLIGHT app PRIVATE src/behaviors/behavior_bac
|
|||
if(CONFIG_ZMK_BATTERY_REPORTING)
|
||||
target_sources(app PRIVATE src/events/battery_state_changed.c)
|
||||
target_sources(app PRIVATE src/battery.c)
|
||||
target_sources_ifndef(CONFIG_BT_BAS app PRIVATE src/battery_reporting.c)
|
||||
target_sources_ifdef(CONFIG_ZMK_BATTERY_REPORTING_SPLIT_PROXY app PRIVATE src/battery_reporting.c)
|
||||
endif()
|
||||
|
||||
target_sources_ifdef(CONFIG_ZMK_HID_INDICATORS app PRIVATE src/events/hid_indicators_changed.c)
|
||||
|
|
|
|||
|
|
@ -381,13 +381,13 @@ config ZMK_BATTERY_REPORTING_FETCH_MODE_LITHIUM_VOLTAGE
|
|||
|
||||
endchoice
|
||||
|
||||
config ZMK_BATTERY_REPORTING_BAS
|
||||
bool "Report Battery Level over BLE"
|
||||
config ZMK_BATTERY_REPORTING_BLE
|
||||
bool "Report Battery Level over BLE Battery Service"
|
||||
default y
|
||||
depends on ZMK_BLE
|
||||
select BT_BAS if (!ZMK_SPLIT || (ZMK_SPLIT && !ZMK_SPLIT_ROLE_CENTRAL))
|
||||
|
||||
config ZMK_BATTERY_REPORTING_HID
|
||||
config ZMK_BATTERY_REPORTING_USB
|
||||
bool "Report Battery Level over USB HID"
|
||||
depends on ZMK_USB
|
||||
|
||||
|
|
@ -395,14 +395,12 @@ if ZMK_SPLIT_ROLE_CENTRAL
|
|||
|
||||
config ZMK_BATTERY_REPORTING_SPLIT_FETCHING
|
||||
bool "Fetch Peripheral Battery Level Info"
|
||||
default y if ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING
|
||||
help
|
||||
Adds internal support for fetching the battery levels from peripherals
|
||||
and generating events in the ZMK eventing system.
|
||||
|
||||
config ZMK_BATTERY_REPORTING_SPLIT_PROXY
|
||||
bool "Proxy Battery Level Info"
|
||||
depends on ZMK_BATTERY_REPORTING_BAS
|
||||
default y if ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_PROXY
|
||||
help
|
||||
Adds support for reporting the battery levels of connected split
|
||||
|
|
|
|||
|
|
@ -12,29 +12,11 @@ child-binding:
|
|||
display-name:
|
||||
type: string
|
||||
required: false
|
||||
description: |
|
||||
A human-readable name for this battery. Defaults to readable form of CPF.
|
||||
cpf:
|
||||
type: int
|
||||
required: false
|
||||
enum: [
|
||||
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
|
||||
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
|
||||
0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
|
||||
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
|
||||
0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
|
||||
0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
|
||||
0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
|
||||
0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
|
||||
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
|
||||
0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F,
|
||||
0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
|
||||
0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
|
||||
0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
|
||||
0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
|
||||
0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
|
||||
0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF,
|
||||
0x100, 0x101, 0x102, 0x103, 0x104, 0x105, 0x106, 0x107, 0x108,
|
||||
0x109, 0x10A, 0x10B, 0x10C, 0x10D, 0x10E, 0x10F, 0x110, 0x111
|
||||
]
|
||||
description: |
|
||||
Characteristic Presentation Format descriptor
|
||||
for battery reporting
|
||||
|
|
|
|||
|
|
@ -0,0 +1,790 @@
|
|||
/*
|
||||
* Copyright (c) 2025 The ZMK Contributors
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#define ZMK_CPF_DESC_UNKNOWN 0x0000
|
||||
|
||||
#define ZMK_CPF_DESC_FIRST 0X0001
|
||||
#define ZMK_CPF_DESC_1 ZMK_CPF_DESC_FIRST
|
||||
|
||||
#define ZMK_CPF_DESC_SECOND 0X0002
|
||||
#define ZMK_CPF_DESC_2 ZMK_CPF_DESC_SECOND
|
||||
|
||||
#define ZMK_CPF_DESC_THIRD 0X0003
|
||||
#define ZMK_CPF_DESC_3 ZMK_CPF_DESC_THIRD
|
||||
|
||||
#define ZMK_CPF_DESC_FOURTH 0X0004
|
||||
#define ZMK_CPF_DESC_4 ZMK_CPF_DESC_FOURTH
|
||||
|
||||
#define ZMK_CPF_DESC_FIFTH 0X0005
|
||||
#define ZMK_CPF_DESC_5 ZMK_CPF_DESC_FIFTH
|
||||
|
||||
#define ZMK_CPF_DESC_SIXTH 0X0006
|
||||
#define ZMK_CPF_DESC_6 ZMK_CPF_DESC_SIXTH
|
||||
|
||||
#define ZMK_CPF_DESC_SEVENTH 0X0007
|
||||
#define ZMK_CPF_DESC_7 ZMK_CPF_DESC_SEVENTH
|
||||
|
||||
#define ZMK_CPF_DESC_EIGHTH 0X0008
|
||||
#define ZMK_CPF_DESC_8 ZMK_CPF_DESC_EIGHTH
|
||||
|
||||
#define ZMK_CPF_DESC_NINTH 0X0009
|
||||
#define ZMK_CPF_DESC_9 ZMK_CPF_DESC_NINTH
|
||||
|
||||
#define ZMK_CPF_DESC_TENTH 0X000A
|
||||
#define ZMK_CPF_DESC_10 ZMK_CPF_DESC_TENTH
|
||||
|
||||
#define ZMK_CPF_DESC_ELEVENTH 0X000B
|
||||
#define ZMK_CPF_DESC_11 ZMK_CPF_DESC_ELEVENTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWELFTH 0X000C
|
||||
#define ZMK_CPF_DESC_12 ZMK_CPF_DESC_TWELFTH
|
||||
|
||||
#define ZMK_CPF_DESC_THIRTEENTH 0X000D
|
||||
#define ZMK_CPF_DESC_13 ZMK_CPF_DESC_THIRTEENTH
|
||||
|
||||
#define ZMK_CPF_DESC_FOURTEENTH 0X000E
|
||||
#define ZMK_CPF_DESC_14 ZMK_CPF_DESC_FOURTEENTH
|
||||
|
||||
#define ZMK_CPF_DESC_FIFTEENTH 0X000F
|
||||
#define ZMK_CPF_DESC_15 ZMK_CPF_DESC_FIFTEENTH
|
||||
|
||||
#define ZMK_CPF_DESC_SIXTEENTH 0X0010
|
||||
#define ZMK_CPF_DESC_16 ZMK_CPF_DESC_SIXTEENTH
|
||||
|
||||
#define ZMK_CPF_DESC_SEVENTEENTH 0X0011
|
||||
#define ZMK_CPF_DESC_17 ZMK_CPF_DESC_SEVENTEENTH
|
||||
|
||||
#define ZMK_CPF_DESC_EIGHTEENTH 0X0012
|
||||
#define ZMK_CPF_DESC_18 ZMK_CPF_DESC_EIGHTEENTH
|
||||
|
||||
#define ZMK_CPF_DESC_NINETEENTH 0X0013
|
||||
#define ZMK_CPF_DESC_19 ZMK_CPF_DESC_NINETEENTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWENTIETH 0X0014
|
||||
#define ZMK_CPF_DESC_20 ZMK_CPF_DESC_TWENTIETH
|
||||
|
||||
#define ZMK_CPF_DESC_TWENTY_FIRST 0X0015
|
||||
#define ZMK_CPF_DESC_21 ZMK_CPF_DESC_TWENTY_FIRST
|
||||
|
||||
#define ZMK_CPF_DESC_TWENTY_SECOND 0X0016
|
||||
#define ZMK_CPF_DESC_22 ZMK_CPF_DESC_TWENTY_SECOND
|
||||
|
||||
#define ZMK_CPF_DESC_TWENTY_THIRD 0X0017
|
||||
#define ZMK_CPF_DESC_23 ZMK_CPF_DESC_TWENTY_THIRD
|
||||
|
||||
#define ZMK_CPF_DESC_TWENTY_FOURTH 0X0018
|
||||
#define ZMK_CPF_DESC_24 ZMK_CPF_DESC_TWENTY_FOURTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWENTY_FIFTH 0X0019
|
||||
#define ZMK_CPF_DESC_25 ZMK_CPF_DESC_TWENTY_FIFTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWENTY_SIXTH 0X001A
|
||||
#define ZMK_CPF_DESC_26 ZMK_CPF_DESC_TWENTY_SIXTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWENTY_SEVENTH 0X001B
|
||||
#define ZMK_CPF_DESC_27 ZMK_CPF_DESC_TWENTY_SEVENTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWENTY_EIGHTH 0X001C
|
||||
#define ZMK_CPF_DESC_28 ZMK_CPF_DESC_TWENTY_EIGHTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWENTY_NINTH 0X001D
|
||||
#define ZMK_CPF_DESC_29 ZMK_CPF_DESC_TWENTY_NINTH
|
||||
|
||||
#define ZMK_CPF_DESC_THIRTIETH 0X001E
|
||||
#define ZMK_CPF_DESC_30 ZMK_CPF_DESC_THIRTIETH
|
||||
|
||||
#define ZMK_CPF_DESC_THIRTY_FIRST 0X001F
|
||||
#define ZMK_CPF_DESC_31 ZMK_CPF_DESC_THIRTY_FIRST
|
||||
|
||||
#define ZMK_CPF_DESC_THIRTY_SECOND 0X0020
|
||||
#define ZMK_CPF_DESC_32 ZMK_CPF_DESC_THIRTY_SECOND
|
||||
|
||||
#define ZMK_CPF_DESC_THIRTY_THIRD 0X0021
|
||||
#define ZMK_CPF_DESC_33 ZMK_CPF_DESC_THIRTY_THIRD
|
||||
|
||||
#define ZMK_CPF_DESC_THIRTY_FOURTH 0X0022
|
||||
#define ZMK_CPF_DESC_34 ZMK_CPF_DESC_THIRTY_FOURTH
|
||||
|
||||
#define ZMK_CPF_DESC_THIRTY_FIFTH 0X0023
|
||||
#define ZMK_CPF_DESC_35 ZMK_CPF_DESC_THIRTY_FIFTH
|
||||
|
||||
#define ZMK_CPF_DESC_THIRTY_SIXTH 0X0024
|
||||
#define ZMK_CPF_DESC_36 ZMK_CPF_DESC_THIRTY_SIXTH
|
||||
|
||||
#define ZMK_CPF_DESC_THIRTY_SEVENTH 0X0025
|
||||
#define ZMK_CPF_DESC_37 ZMK_CPF_DESC_THIRTY_SEVENTH
|
||||
|
||||
#define ZMK_CPF_DESC_THIRTY_EIGHTH 0X0026
|
||||
#define ZMK_CPF_DESC_38 ZMK_CPF_DESC_THIRTY_EIGHTH
|
||||
|
||||
#define ZMK_CPF_DESC_THIRTY_NINTH 0X0027
|
||||
#define ZMK_CPF_DESC_39 ZMK_CPF_DESC_THIRTY_NINTH
|
||||
|
||||
#define ZMK_CPF_DESC_FORTIETH 0X0028
|
||||
#define ZMK_CPF_DESC_40 ZMK_CPF_DESC_FORTIETH
|
||||
|
||||
#define ZMK_CPF_DESC_FORTY_FIRST 0X0029
|
||||
#define ZMK_CPF_DESC_41 ZMK_CPF_DESC_FORTY_FIRST
|
||||
|
||||
#define ZMK_CPF_DESC_FORTY_SECOND 0X002A
|
||||
#define ZMK_CPF_DESC_42 ZMK_CPF_DESC_FORTY_SECOND
|
||||
|
||||
#define ZMK_CPF_DESC_FORTY_THIRD 0X002B
|
||||
#define ZMK_CPF_DESC_43 ZMK_CPF_DESC_FORTY_THIRD
|
||||
|
||||
#define ZMK_CPF_DESC_FORTY_FOURTH 0X002C
|
||||
#define ZMK_CPF_DESC_44 ZMK_CPF_DESC_FORTY_FOURTH
|
||||
|
||||
#define ZMK_CPF_DESC_FORTY_FIFTH 0X002D
|
||||
#define ZMK_CPF_DESC_45 ZMK_CPF_DESC_FORTY_FIFTH
|
||||
|
||||
#define ZMK_CPF_DESC_FORTY_SIXTH 0X002E
|
||||
#define ZMK_CPF_DESC_46 ZMK_CPF_DESC_FORTY_SIXTH
|
||||
|
||||
#define ZMK_CPF_DESC_FORTY_SEVENTH 0X002F
|
||||
#define ZMK_CPF_DESC_47 ZMK_CPF_DESC_FORTY_SEVENTH
|
||||
|
||||
#define ZMK_CPF_DESC_FORTY_EIGHTH 0X0030
|
||||
#define ZMK_CPF_DESC_48 ZMK_CPF_DESC_FORTY_EIGHTH
|
||||
|
||||
#define ZMK_CPF_DESC_FORTY_NINTH 0X0031
|
||||
#define ZMK_CPF_DESC_49 ZMK_CPF_DESC_FORTY_NINTH
|
||||
|
||||
#define ZMK_CPF_DESC_FIFTIETH 0X0032
|
||||
#define ZMK_CPF_DESC_50 ZMK_CPF_DESC_FIFTIETH
|
||||
|
||||
#define ZMK_CPF_DESC_FIFTY_FIRST 0X0033
|
||||
#define ZMK_CPF_DESC_51 ZMK_CPF_DESC_FIFTY_FIRST
|
||||
|
||||
#define ZMK_CPF_DESC_FIFTY_SECOND 0X0034
|
||||
#define ZMK_CPF_DESC_52 ZMK_CPF_DESC_FIFTY_SECOND
|
||||
|
||||
#define ZMK_CPF_DESC_FIFTY_THIRD 0X0035
|
||||
#define ZMK_CPF_DESC_53 ZMK_CPF_DESC_FIFTY_THIRD
|
||||
|
||||
#define ZMK_CPF_DESC_FIFTY_FOURTH 0X0036
|
||||
#define ZMK_CPF_DESC_54 ZMK_CPF_DESC_FIFTY_FOURTH
|
||||
|
||||
#define ZMK_CPF_DESC_FIFTY_FIFTH 0X0037
|
||||
#define ZMK_CPF_DESC_55 ZMK_CPF_DESC_FIFTY_FIFTH
|
||||
|
||||
#define ZMK_CPF_DESC_FIFTY_SIXTH 0X0038
|
||||
#define ZMK_CPF_DESC_56 ZMK_CPF_DESC_FIFTY_SIXTH
|
||||
|
||||
#define ZMK_CPF_DESC_FIFTY_SEVENTH 0X0039
|
||||
#define ZMK_CPF_DESC_57 ZMK_CPF_DESC_FIFTY_SEVENTH
|
||||
|
||||
#define ZMK_CPF_DESC_FIFTY_EIGHTH 0X003A
|
||||
#define ZMK_CPF_DESC_58 ZMK_CPF_DESC_FIFTY_EIGHTH
|
||||
|
||||
#define ZMK_CPF_DESC_FIFTY_NINTH 0X003B
|
||||
#define ZMK_CPF_DESC_59 ZMK_CPF_DESC_FIFTY_NINTH
|
||||
|
||||
#define ZMK_CPF_DESC_SIXTIETH 0X003C
|
||||
#define ZMK_CPF_DESC_60 ZMK_CPF_DESC_SIXTIETH
|
||||
|
||||
#define ZMK_CPF_DESC_SIXTY_FIRST 0X003D
|
||||
#define ZMK_CPF_DESC_61 ZMK_CPF_DESC_SIXTY_FIRST
|
||||
|
||||
#define ZMK_CPF_DESC_SIXTY_SECOND 0X003E
|
||||
#define ZMK_CPF_DESC_62 ZMK_CPF_DESC_SIXTY_SECOND
|
||||
|
||||
#define ZMK_CPF_DESC_SIXTY_THIRD 0X003F
|
||||
#define ZMK_CPF_DESC_63 ZMK_CPF_DESC_SIXTY_THIRD
|
||||
|
||||
#define ZMK_CPF_DESC_SIXTY_FOURTH 0X0040
|
||||
#define ZMK_CPF_DESC_64 ZMK_CPF_DESC_SIXTY_FOURTH
|
||||
|
||||
#define ZMK_CPF_DESC_SIXTY_FIFTH 0X0041
|
||||
#define ZMK_CPF_DESC_65 ZMK_CPF_DESC_SIXTY_FIFTH
|
||||
|
||||
#define ZMK_CPF_DESC_SIXTY_SIXTH 0X0042
|
||||
#define ZMK_CPF_DESC_66 ZMK_CPF_DESC_SIXTY_SIXTH
|
||||
|
||||
#define ZMK_CPF_DESC_SIXTY_SEVENTH 0X0043
|
||||
#define ZMK_CPF_DESC_67 ZMK_CPF_DESC_SIXTY_SEVENTH
|
||||
|
||||
#define ZMK_CPF_DESC_SIXTY_EIGHTH 0X0044
|
||||
#define ZMK_CPF_DESC_68 ZMK_CPF_DESC_SIXTY_EIGHTH
|
||||
|
||||
#define ZMK_CPF_DESC_SIXTY_NINTH 0X0045
|
||||
#define ZMK_CPF_DESC_69 ZMK_CPF_DESC_SIXTY_NINTH
|
||||
|
||||
#define ZMK_CPF_DESC_SEVENTIETH 0X0046
|
||||
#define ZMK_CPF_DESC_70 ZMK_CPF_DESC_SEVENTIETH
|
||||
|
||||
#define ZMK_CPF_DESC_SEVENTY_FIRST 0X0047
|
||||
#define ZMK_CPF_DESC_71 ZMK_CPF_DESC_SEVENTY_FIRST
|
||||
|
||||
#define ZMK_CPF_DESC_SEVENTY_SECOND 0X0048
|
||||
#define ZMK_CPF_DESC_72 ZMK_CPF_DESC_SEVENTY_SECOND
|
||||
|
||||
#define ZMK_CPF_DESC_SEVENTY_THIRD 0X0049
|
||||
#define ZMK_CPF_DESC_73 ZMK_CPF_DESC_SEVENTY_THIRD
|
||||
|
||||
#define ZMK_CPF_DESC_SEVENTY_FOURTH 0X004A
|
||||
#define ZMK_CPF_DESC_74 ZMK_CPF_DESC_SEVENTY_FOURTH
|
||||
|
||||
#define ZMK_CPF_DESC_SEVENTY_FIFTH 0X004B
|
||||
#define ZMK_CPF_DESC_75 ZMK_CPF_DESC_SEVENTY_FIFTH
|
||||
|
||||
#define ZMK_CPF_DESC_SEVENTY_SIXTH 0X004C
|
||||
#define ZMK_CPF_DESC_76 ZMK_CPF_DESC_SEVENTY_SIXTH
|
||||
|
||||
#define ZMK_CPF_DESC_SEVENTY_SEVENTH 0X004D
|
||||
#define ZMK_CPF_DESC_77 ZMK_CPF_DESC_SEVENTY_SEVENTH
|
||||
|
||||
#define ZMK_CPF_DESC_SEVENTY_EIGHTH 0X004E
|
||||
#define ZMK_CPF_DESC_78 ZMK_CPF_DESC_SEVENTY_EIGHTH
|
||||
|
||||
#define ZMK_CPF_DESC_SEVENTY_NINTH 0X004F
|
||||
#define ZMK_CPF_DESC_79 ZMK_CPF_DESC_SEVENTY_NINTH
|
||||
|
||||
#define ZMK_CPF_DESC_EIGHTIETH 0X0050
|
||||
#define ZMK_CPF_DESC_80 ZMK_CPF_DESC_EIGHTIETH
|
||||
|
||||
#define ZMK_CPF_DESC_EIGHTY_FIRST 0X0051
|
||||
#define ZMK_CPF_DESC_81 ZMK_CPF_DESC_EIGHTY_FIRST
|
||||
|
||||
#define ZMK_CPF_DESC_EIGHTY_SECOND 0X0052
|
||||
#define ZMK_CPF_DESC_82 ZMK_CPF_DESC_EIGHTY_SECOND
|
||||
|
||||
#define ZMK_CPF_DESC_EIGHTY_THIRD 0X0053
|
||||
#define ZMK_CPF_DESC_83 ZMK_CPF_DESC_EIGHTY_THIRD
|
||||
|
||||
#define ZMK_CPF_DESC_EIGHTY_FOURTH 0X0054
|
||||
#define ZMK_CPF_DESC_84 ZMK_CPF_DESC_EIGHTY_FOURTH
|
||||
|
||||
#define ZMK_CPF_DESC_EIGHTY_FIFTH 0X0055
|
||||
#define ZMK_CPF_DESC_85 ZMK_CPF_DESC_EIGHTY_FIFTH
|
||||
|
||||
#define ZMK_CPF_DESC_EIGHTY_SIXTH 0X0056
|
||||
#define ZMK_CPF_DESC_86 ZMK_CPF_DESC_EIGHTY_SIXTH
|
||||
|
||||
#define ZMK_CPF_DESC_EIGHTY_SEVENTH 0X0057
|
||||
#define ZMK_CPF_DESC_87 ZMK_CPF_DESC_EIGHTY_SEVENTH
|
||||
|
||||
#define ZMK_CPF_DESC_EIGHTY_EIGHTH 0X0058
|
||||
#define ZMK_CPF_DESC_88 ZMK_CPF_DESC_EIGHTY_EIGHTH
|
||||
|
||||
#define ZMK_CPF_DESC_EIGHTY_NINTH 0X0059
|
||||
#define ZMK_CPF_DESC_89 ZMK_CPF_DESC_EIGHTY_NINTH
|
||||
|
||||
#define ZMK_CPF_DESC_NINETIETH 0X005A
|
||||
#define ZMK_CPF_DESC_90 ZMK_CPF_DESC_NINETIETH
|
||||
|
||||
#define ZMK_CPF_DESC_NINETY_FIRST 0X005B
|
||||
#define ZMK_CPF_DESC_91 ZMK_CPF_DESC_NINETY_FIRST
|
||||
|
||||
#define ZMK_CPF_DESC_NINETY_SECOND 0X005C
|
||||
#define ZMK_CPF_DESC_92 ZMK_CPF_DESC_NINETY_SECOND
|
||||
|
||||
#define ZMK_CPF_DESC_NINETY_THIRD 0X005D
|
||||
#define ZMK_CPF_DESC_93 ZMK_CPF_DESC_NINETY_THIRD
|
||||
|
||||
#define ZMK_CPF_DESC_NINETY_FOURTH 0X005E
|
||||
#define ZMK_CPF_DESC_94 ZMK_CPF_DESC_NINETY_FOURTH
|
||||
|
||||
#define ZMK_CPF_DESC_NINETY_FIFTH 0X005F
|
||||
#define ZMK_CPF_DESC_95 ZMK_CPF_DESC_NINETY_FIFTH
|
||||
|
||||
#define ZMK_CPF_DESC_NINETY_SIXTH 0X0060
|
||||
#define ZMK_CPF_DESC_96 ZMK_CPF_DESC_NINETY_SIXTH
|
||||
|
||||
#define ZMK_CPF_DESC_NINETY_SEVENTH 0X0061
|
||||
#define ZMK_CPF_DESC_97 ZMK_CPF_DESC_NINETY_SEVENTH
|
||||
|
||||
#define ZMK_CPF_DESC_NINETY_EIGHTH 0X0062
|
||||
#define ZMK_CPF_DESC_98 ZMK_CPF_DESC_NINETY_EIGHTH
|
||||
|
||||
#define ZMK_CPF_DESC_NINETY_NINTH 0X0063
|
||||
#define ZMK_CPF_DESC_99 ZMK_CPF_DESC_NINETY_NINTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDREDTH 0X0064
|
||||
#define ZMK_CPF_DESC_100 ZMK_CPF_DESC_ONE_HUNDREDTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_FIRST 0X0065
|
||||
#define ZMK_CPF_DESC_101 ZMK_CPF_DESC_ONE_HUNDRED_AND_FIRST
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_SECOND 0X0066
|
||||
#define ZMK_CPF_DESC_102 ZMK_CPF_DESC_ONE_HUNDRED_AND_SECOND
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_THIRD 0X0067
|
||||
#define ZMK_CPF_DESC_103 ZMK_CPF_DESC_ONE_HUNDRED_AND_THIRD
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_FOURTH 0X0068
|
||||
#define ZMK_CPF_DESC_104 ZMK_CPF_DESC_ONE_HUNDRED_AND_FOURTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_FIFTH 0X0069
|
||||
#define ZMK_CPF_DESC_105 ZMK_CPF_DESC_ONE_HUNDRED_AND_FIFTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_SIXTH 0X006A
|
||||
#define ZMK_CPF_DESC_106 ZMK_CPF_DESC_ONE_HUNDRED_AND_SIXTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_SEVENTH 0X006B
|
||||
#define ZMK_CPF_DESC_107 ZMK_CPF_DESC_ONE_HUNDRED_AND_SEVENTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_EIGHTH 0X006C
|
||||
#define ZMK_CPF_DESC_108 ZMK_CPF_DESC_ONE_HUNDRED_AND_EIGHTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_NINTH 0X006D
|
||||
#define ZMK_CPF_DESC_109 ZMK_CPF_DESC_ONE_HUNDRED_AND_NINTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_TENTH 0X006E
|
||||
#define ZMK_CPF_DESC_110 ZMK_CPF_DESC_ONE_HUNDRED_AND_TENTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_ELEVENTH 0X006F
|
||||
#define ZMK_CPF_DESC_111 ZMK_CPF_DESC_ONE_HUNDRED_AND_ELEVENTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_TWELFTH 0X0070
|
||||
#define ZMK_CPF_DESC_112 ZMK_CPF_DESC_ONE_HUNDRED_AND_TWELFTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_THIRTEENTH 0X0071
|
||||
#define ZMK_CPF_DESC_113 ZMK_CPF_DESC_ONE_HUNDRED_AND_THIRTEENTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_FOURTEENTH 0X0072
|
||||
#define ZMK_CPF_DESC_114 ZMK_CPF_DESC_ONE_HUNDRED_AND_FOURTEENTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_FIFTEENTH 0X0073
|
||||
#define ZMK_CPF_DESC_115 ZMK_CPF_DESC_ONE_HUNDRED_AND_FIFTEENTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_SIXTEENTH 0X0074
|
||||
#define ZMK_CPF_DESC_116 ZMK_CPF_DESC_ONE_HUNDRED_AND_SIXTEENTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_SEVENTEENTH 0X0075
|
||||
#define ZMK_CPF_DESC_117 ZMK_CPF_DESC_ONE_HUNDRED_AND_SEVENTEENTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_EIGHTEENTH 0X0076
|
||||
#define ZMK_CPF_DESC_118 ZMK_CPF_DESC_ONE_HUNDRED_AND_EIGHTEENTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_NINETEENTH 0X0077
|
||||
#define ZMK_CPF_DESC_119 ZMK_CPF_DESC_ONE_HUNDRED_AND_NINETEENTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_TWENTIETH 0X0078
|
||||
#define ZMK_CPF_DESC_120 ZMK_CPF_DESC_ONE_HUNDRED_TWENTIETH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_TWENTY_FIRST 0X0079
|
||||
#define ZMK_CPF_DESC_121 ZMK_CPF_DESC_ONE_HUNDRED_AND_TWENTY_FIRST
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_TWENTY_SECOND 0X007A
|
||||
#define ZMK_CPF_DESC_122 ZMK_CPF_DESC_ONE_HUNDRED_AND_TWENTY_SECOND
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_TWENTY_THIRD 0X007B
|
||||
#define ZMK_CPF_DESC_123 ZMK_CPF_DESC_ONE_HUNDRED_AND_TWENTY_THIRD
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_TWENTY_FOURTH 0X007C
|
||||
#define ZMK_CPF_DESC_124 ZMK_CPF_DESC_ONE_HUNDRED_AND_TWENTY_FOURTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_TWENTY_FIFTH 0X007D
|
||||
#define ZMK_CPF_DESC_125 ZMK_CPF_DESC_ONE_HUNDRED_AND_TWENTY_FIFTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_TWENTY_SIXTH 0X007E
|
||||
#define ZMK_CPF_DESC_126 ZMK_CPF_DESC_ONE_HUNDRED_AND_TWENTY_SIXTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_TWENTY_SEVENTH 0X007F
|
||||
#define ZMK_CPF_DESC_127 ZMK_CPF_DESC_ONE_HUNDRED_AND_TWENTY_SEVENTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_TWENTY_EIGHTH 0X0080
|
||||
#define ZMK_CPF_DESC_128 ZMK_CPF_DESC_ONE_HUNDRED_AND_TWENTY_EIGHTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_TWENTY_NINTH 0X0081
|
||||
#define ZMK_CPF_DESC_129 ZMK_CPF_DESC_ONE_HUNDRED_AND_TWENTY_NINTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_THIRTIETH 0X0082
|
||||
#define ZMK_CPF_DESC_130 ZMK_CPF_DESC_ONE_HUNDRED_THIRTIETH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_THIRTY_FIRST 0X0083
|
||||
#define ZMK_CPF_DESC_131 ZMK_CPF_DESC_ONE_HUNDRED_AND_THIRTY_FIRST
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_THIRTY_SECOND 0X0084
|
||||
#define ZMK_CPF_DESC_132 ZMK_CPF_DESC_ONE_HUNDRED_AND_THIRTY_SECOND
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_THIRTY_THIRD 0X0085
|
||||
#define ZMK_CPF_DESC_133 ZMK_CPF_DESC_ONE_HUNDRED_AND_THIRTY_THIRD
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_THIRTY_FOURTH 0X0086
|
||||
#define ZMK_CPF_DESC_134 ZMK_CPF_DESC_ONE_HUNDRED_AND_THIRTY_FOURTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_THIRTY_FIFTH 0X0087
|
||||
#define ZMK_CPF_DESC_135 ZMK_CPF_DESC_ONE_HUNDRED_AND_THIRTY_FIFTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_THIRTY_SIXTH 0X0088
|
||||
#define ZMK_CPF_DESC_136 ZMK_CPF_DESC_ONE_HUNDRED_AND_THIRTY_SIXTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_THIRTY_SEVENTH 0X0089
|
||||
#define ZMK_CPF_DESC_137 ZMK_CPF_DESC_ONE_HUNDRED_AND_THIRTY_SEVENTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_THIRTY_EIGHTH 0X008A
|
||||
#define ZMK_CPF_DESC_138 ZMK_CPF_DESC_ONE_HUNDRED_AND_THIRTY_EIGHTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_THIRTY_NINTH 0X008B
|
||||
#define ZMK_CPF_DESC_139 ZMK_CPF_DESC_ONE_HUNDRED_AND_THIRTY_NINTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_FORTIETH 0X008C
|
||||
#define ZMK_CPF_DESC_140 ZMK_CPF_DESC_ONE_HUNDRED_FORTIETH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_FORTY_FIRST 0X008D
|
||||
#define ZMK_CPF_DESC_141 ZMK_CPF_DESC_ONE_HUNDRED_AND_FORTY_FIRST
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_FORTY_SECOND 0X008E
|
||||
#define ZMK_CPF_DESC_142 ZMK_CPF_DESC_ONE_HUNDRED_AND_FORTY_SECOND
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_FORTY_THIRD 0X008F
|
||||
#define ZMK_CPF_DESC_143 ZMK_CPF_DESC_ONE_HUNDRED_AND_FORTY_THIRD
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_FORTY_FOURTH 0X0090
|
||||
#define ZMK_CPF_DESC_144 ZMK_CPF_DESC_ONE_HUNDRED_AND_FORTY_FOURTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_FORTY_FIFTH 0X0091
|
||||
#define ZMK_CPF_DESC_145 ZMK_CPF_DESC_ONE_HUNDRED_AND_FORTY_FIFTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_FORTY_SIXTH 0X0092
|
||||
#define ZMK_CPF_DESC_146 ZMK_CPF_DESC_ONE_HUNDRED_AND_FORTY_SIXTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_FORTY_SEVENTH 0X0093
|
||||
#define ZMK_CPF_DESC_147 ZMK_CPF_DESC_ONE_HUNDRED_AND_FORTY_SEVENTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_FORTY_EIGHTH 0X0094
|
||||
#define ZMK_CPF_DESC_148 ZMK_CPF_DESC_ONE_HUNDRED_AND_FORTY_EIGHTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_FORTY_NINTH 0X0095
|
||||
#define ZMK_CPF_DESC_149 ZMK_CPF_DESC_ONE_HUNDRED_AND_FORTY_NINTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_FIFTIETH 0X0096
|
||||
#define ZMK_CPF_DESC_150 ZMK_CPF_DESC_ONE_HUNDRED_FIFTIETH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_FIFTY_FIRST 0X0097
|
||||
#define ZMK_CPF_DESC_151 ZMK_CPF_DESC_ONE_HUNDRED_AND_FIFTY_FIRST
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_FIFTY_SECOND 0X0098
|
||||
#define ZMK_CPF_DESC_152 ZMK_CPF_DESC_ONE_HUNDRED_AND_FIFTY_SECOND
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_FIFTY_THIRD 0X0099
|
||||
#define ZMK_CPF_DESC_153 ZMK_CPF_DESC_ONE_HUNDRED_AND_FIFTY_THIRD
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_FIFTY_FOURTH 0X009A
|
||||
#define ZMK_CPF_DESC_154 ZMK_CPF_DESC_ONE_HUNDRED_AND_FIFTY_FOURTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_FIFTY_FIFTH 0X009B
|
||||
#define ZMK_CPF_DESC_155 ZMK_CPF_DESC_ONE_HUNDRED_AND_FIFTY_FIFTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_FIFTY_SIXTH 0X009C
|
||||
#define ZMK_CPF_DESC_156 ZMK_CPF_DESC_ONE_HUNDRED_AND_FIFTY_SIXTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_FIFTY_SEVENTH 0X009D
|
||||
#define ZMK_CPF_DESC_157 ZMK_CPF_DESC_ONE_HUNDRED_AND_FIFTY_SEVENTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_FIFTY_EIGHTH 0X009E
|
||||
#define ZMK_CPF_DESC_158 ZMK_CPF_DESC_ONE_HUNDRED_AND_FIFTY_EIGHTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_FIFTY_NINTH 0X009F
|
||||
#define ZMK_CPF_DESC_159 ZMK_CPF_DESC_ONE_HUNDRED_AND_FIFTY_NINTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_SIXTIETH 0X00A0
|
||||
#define ZMK_CPF_DESC_160 ZMK_CPF_DESC_ONE_HUNDRED_SIXTIETH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_SIXTY_FIRST 0X00A1
|
||||
#define ZMK_CPF_DESC_161 ZMK_CPF_DESC_ONE_HUNDRED_AND_SIXTY_FIRST
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_SIXTY_SECOND 0X00A2
|
||||
#define ZMK_CPF_DESC_162 ZMK_CPF_DESC_ONE_HUNDRED_AND_SIXTY_SECOND
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_SIXTY_THIRD 0X00A3
|
||||
#define ZMK_CPF_DESC_163 ZMK_CPF_DESC_ONE_HUNDRED_AND_SIXTY_THIRD
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_SIXTY_FOURTH 0X00A4
|
||||
#define ZMK_CPF_DESC_164 ZMK_CPF_DESC_ONE_HUNDRED_AND_SIXTY_FOURTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_SIXTY_FIFTH 0X00A5
|
||||
#define ZMK_CPF_DESC_165 ZMK_CPF_DESC_ONE_HUNDRED_AND_SIXTY_FIFTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_SIXTY_SIXTH 0X00A6
|
||||
#define ZMK_CPF_DESC_166 ZMK_CPF_DESC_ONE_HUNDRED_AND_SIXTY_SIXTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_SIXTY_SEVENTH 0X00A7
|
||||
#define ZMK_CPF_DESC_167 ZMK_CPF_DESC_ONE_HUNDRED_AND_SIXTY_SEVENTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_SIXTY_EIGHTH 0X00A8
|
||||
#define ZMK_CPF_DESC_168 ZMK_CPF_DESC_ONE_HUNDRED_AND_SIXTY_EIGHTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_SIXTY_NINTH 0X00A9
|
||||
#define ZMK_CPF_DESC_169 ZMK_CPF_DESC_ONE_HUNDRED_AND_SIXTY_NINTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_SEVENTIETH 0X00AA
|
||||
#define ZMK_CPF_DESC_170 ZMK_CPF_DESC_ONE_HUNDRED_SEVENTIETH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_SEVENTY_FIRST 0X00AB
|
||||
#define ZMK_CPF_DESC_171 ZMK_CPF_DESC_ONE_HUNDRED_AND_SEVENTY_FIRST
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_SEVENTY_SECOND 0X00AC
|
||||
#define ZMK_CPF_DESC_172 ZMK_CPF_DESC_ONE_HUNDRED_AND_SEVENTY_SECOND
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_SEVENTY_THIRD 0X00AD
|
||||
#define ZMK_CPF_DESC_173 ZMK_CPF_DESC_ONE_HUNDRED_AND_SEVENTY_THIRD
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_SEVENTY_FOURTH 0X00AE
|
||||
#define ZMK_CPF_DESC_174 ZMK_CPF_DESC_ONE_HUNDRED_AND_SEVENTY_FOURTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_SEVENTY_FIFTH 0X00AF
|
||||
#define ZMK_CPF_DESC_175 ZMK_CPF_DESC_ONE_HUNDRED_AND_SEVENTY_FIFTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_SEVENTY_SIXTH 0X00B0
|
||||
#define ZMK_CPF_DESC_176 ZMK_CPF_DESC_ONE_HUNDRED_AND_SEVENTY_SIXTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_SEVENTY_SEVENTH 0X00B1
|
||||
#define ZMK_CPF_DESC_177 ZMK_CPF_DESC_ONE_HUNDRED_AND_SEVENTY_SEVENTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_SEVENTY_EIGHTH 0X00B2
|
||||
#define ZMK_CPF_DESC_178 ZMK_CPF_DESC_ONE_HUNDRED_AND_SEVENTY_EIGHTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_SEVENTY_NINTH 0X00B3
|
||||
#define ZMK_CPF_DESC_179 ZMK_CPF_DESC_ONE_HUNDRED_AND_SEVENTY_NINTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_EIGHTIETH 0X00B4
|
||||
#define ZMK_CPF_DESC_180 ZMK_CPF_DESC_ONE_HUNDRED_EIGHTIETH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_EIGHTY_FIRST 0X00B5
|
||||
#define ZMK_CPF_DESC_181 ZMK_CPF_DESC_ONE_HUNDRED_AND_EIGHTY_FIRST
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_EIGHTY_SECOND 0X00B6
|
||||
#define ZMK_CPF_DESC_182 ZMK_CPF_DESC_ONE_HUNDRED_AND_EIGHTY_SECOND
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_EIGHTY_THIRD 0X00B7
|
||||
#define ZMK_CPF_DESC_183 ZMK_CPF_DESC_ONE_HUNDRED_AND_EIGHTY_THIRD
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_EIGHTY_FOURTH 0X00B8
|
||||
#define ZMK_CPF_DESC_184 ZMK_CPF_DESC_ONE_HUNDRED_AND_EIGHTY_FOURTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_EIGHTY_FIFTH 0X00B9
|
||||
#define ZMK_CPF_DESC_185 ZMK_CPF_DESC_ONE_HUNDRED_AND_EIGHTY_FIFTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_EIGHTY_SIXTH 0X00BA
|
||||
#define ZMK_CPF_DESC_186 ZMK_CPF_DESC_ONE_HUNDRED_AND_EIGHTY_SIXTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_EIGHTY_SEVENTH 0X00BB
|
||||
#define ZMK_CPF_DESC_187 ZMK_CPF_DESC_ONE_HUNDRED_AND_EIGHTY_SEVENTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_EIGHTY_EIGHTH 0X00BC
|
||||
#define ZMK_CPF_DESC_188 ZMK_CPF_DESC_ONE_HUNDRED_AND_EIGHTY_EIGHTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_EIGHTY_NINTH 0X00BD
|
||||
#define ZMK_CPF_DESC_189 ZMK_CPF_DESC_ONE_HUNDRED_AND_EIGHTY_NINTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_NINETIETH 0X00BE
|
||||
#define ZMK_CPF_DESC_190 ZMK_CPF_DESC_ONE_HUNDRED_NINETIETH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_NINETY_FIRST 0X00BF
|
||||
#define ZMK_CPF_DESC_191 ZMK_CPF_DESC_ONE_HUNDRED_AND_NINETY_FIRST
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_NINETY_SECOND 0X00C0
|
||||
#define ZMK_CPF_DESC_192 ZMK_CPF_DESC_ONE_HUNDRED_AND_NINETY_SECOND
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_NINETY_THIRD 0X00C1
|
||||
#define ZMK_CPF_DESC_193 ZMK_CPF_DESC_ONE_HUNDRED_AND_NINETY_THIRD
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_NINETY_FOURTH 0X00C2
|
||||
#define ZMK_CPF_DESC_194 ZMK_CPF_DESC_ONE_HUNDRED_AND_NINETY_FOURTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_NINETY_FIFTH 0X00C3
|
||||
#define ZMK_CPF_DESC_195 ZMK_CPF_DESC_ONE_HUNDRED_AND_NINETY_FIFTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_NINETY_SIXTH 0X00C4
|
||||
#define ZMK_CPF_DESC_196 ZMK_CPF_DESC_ONE_HUNDRED_AND_NINETY_SIXTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_NINETY_SEVENTH 0X00C5
|
||||
#define ZMK_CPF_DESC_197 ZMK_CPF_DESC_ONE_HUNDRED_AND_NINETY_SEVENTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_NINETY_EIGHTH 0X00C6
|
||||
#define ZMK_CPF_DESC_198 ZMK_CPF_DESC_ONE_HUNDRED_AND_NINETY_EIGHTH
|
||||
|
||||
#define ZMK_CPF_DESC_ONE_HUNDRED_AND_NINETY_NINTH 0X00C7
|
||||
#define ZMK_CPF_DESC_199 ZMK_CPF_DESC_ONE_HUNDRED_AND_NINETY_NINTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDREDTH 0X00C8
|
||||
#define ZMK_CPF_DESC_200 ZMK_CPF_DESC_TWO_HUNDREDTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_FIRST 0X00C9
|
||||
#define ZMK_CPF_DESC_201 ZMK_CPF_DESC_TWO_HUNDRED_AND_FIRST
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_SECOND 0X00CA
|
||||
#define ZMK_CPF_DESC_202 ZMK_CPF_DESC_TWO_HUNDRED_AND_SECOND
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_THIRD 0X00CB
|
||||
#define ZMK_CPF_DESC_203 ZMK_CPF_DESC_TWO_HUNDRED_AND_THIRD
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_FOURTH 0X00CC
|
||||
#define ZMK_CPF_DESC_204 ZMK_CPF_DESC_TWO_HUNDRED_AND_FOURTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_FIFTH 0X00CD
|
||||
#define ZMK_CPF_DESC_205 ZMK_CPF_DESC_TWO_HUNDRED_AND_FIFTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_SIXTH 0X00CE
|
||||
#define ZMK_CPF_DESC_206 ZMK_CPF_DESC_TWO_HUNDRED_AND_SIXTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_SEVENTH 0X00CF
|
||||
#define ZMK_CPF_DESC_207 ZMK_CPF_DESC_TWO_HUNDRED_AND_SEVENTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_EIGHTH 0X00D0
|
||||
#define ZMK_CPF_DESC_208 ZMK_CPF_DESC_TWO_HUNDRED_AND_EIGHTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_NINTH 0X00D1
|
||||
#define ZMK_CPF_DESC_209 ZMK_CPF_DESC_TWO_HUNDRED_AND_NINTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_TENTH 0X00D2
|
||||
#define ZMK_CPF_DESC_210 ZMK_CPF_DESC_TWO_HUNDRED_AND_TENTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_ELEVENTH 0X00D3
|
||||
#define ZMK_CPF_DESC_211 ZMK_CPF_DESC_TWO_HUNDRED_AND_ELEVENTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_TWELFTH 0X00D4
|
||||
#define ZMK_CPF_DESC_212 ZMK_CPF_DESC_TWO_HUNDRED_AND_TWELFTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_THIRTEENTH 0X00D5
|
||||
#define ZMK_CPF_DESC_213 ZMK_CPF_DESC_TWO_HUNDRED_AND_THIRTEENTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_FOURTEENTH 0X00D6
|
||||
#define ZMK_CPF_DESC_214 ZMK_CPF_DESC_TWO_HUNDRED_AND_FOURTEENTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_FIFTEENTH 0X00D7
|
||||
#define ZMK_CPF_DESC_215 ZMK_CPF_DESC_TWO_HUNDRED_AND_FIFTEENTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_SIXTEENTH 0X00D8
|
||||
#define ZMK_CPF_DESC_216 ZMK_CPF_DESC_TWO_HUNDRED_AND_SIXTEENTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_SEVENTEENTH 0X00D9
|
||||
#define ZMK_CPF_DESC_217 ZMK_CPF_DESC_TWO_HUNDRED_AND_SEVENTEENTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_EIGHTEENTH 0X00DA
|
||||
#define ZMK_CPF_DESC_218 ZMK_CPF_DESC_TWO_HUNDRED_AND_EIGHTEENTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_NINETEENTH 0X00DB
|
||||
#define ZMK_CPF_DESC_219 ZMK_CPF_DESC_TWO_HUNDRED_AND_NINETEENTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_TWENTIETH 0X00DC
|
||||
#define ZMK_CPF_DESC_220 ZMK_CPF_DESC_TWO_HUNDRED_TWENTIETH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_TWENTY_FIRST 0X00DD
|
||||
#define ZMK_CPF_DESC_221 ZMK_CPF_DESC_TWO_HUNDRED_AND_TWENTY_FIRST
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_TWENTY_SECOND 0X00DE
|
||||
#define ZMK_CPF_DESC_222 ZMK_CPF_DESC_TWO_HUNDRED_AND_TWENTY_SECOND
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_TWENTY_THIRD 0X00DF
|
||||
#define ZMK_CPF_DESC_223 ZMK_CPF_DESC_TWO_HUNDRED_AND_TWENTY_THIRD
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_TWENTY_FOURTH 0X00E0
|
||||
#define ZMK_CPF_DESC_224 ZMK_CPF_DESC_TWO_HUNDRED_AND_TWENTY_FOURTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_TWENTY_FIFTH 0X00E1
|
||||
#define ZMK_CPF_DESC_225 ZMK_CPF_DESC_TWO_HUNDRED_AND_TWENTY_FIFTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_TWENTY_SIXTH 0X00E2
|
||||
#define ZMK_CPF_DESC_226 ZMK_CPF_DESC_TWO_HUNDRED_AND_TWENTY_SIXTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_TWENTY_SEVENTH 0X00E3
|
||||
#define ZMK_CPF_DESC_227 ZMK_CPF_DESC_TWO_HUNDRED_AND_TWENTY_SEVENTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_TWENTY_EIGHTH 0X00E4
|
||||
#define ZMK_CPF_DESC_228 ZMK_CPF_DESC_TWO_HUNDRED_AND_TWENTY_EIGHTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_TWENTY_NINTH 0X00E5
|
||||
#define ZMK_CPF_DESC_229 ZMK_CPF_DESC_TWO_HUNDRED_AND_TWENTY_NINTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_THIRTIETH 0X00E6
|
||||
#define ZMK_CPF_DESC_230 ZMK_CPF_DESC_TWO_HUNDRED_THIRTIETH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_THIRTY_FIRST 0X00E7
|
||||
#define ZMK_CPF_DESC_231 ZMK_CPF_DESC_TWO_HUNDRED_AND_THIRTY_FIRST
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_THIRTY_SECOND 0X00E8
|
||||
#define ZMK_CPF_DESC_232 ZMK_CPF_DESC_TWO_HUNDRED_AND_THIRTY_SECOND
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_THIRTY_THIRD 0X00E9
|
||||
#define ZMK_CPF_DESC_233 ZMK_CPF_DESC_TWO_HUNDRED_AND_THIRTY_THIRD
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_THIRTY_FOURTH 0X00EA
|
||||
#define ZMK_CPF_DESC_234 ZMK_CPF_DESC_TWO_HUNDRED_AND_THIRTY_FOURTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_THIRTY_FIFTH 0X00EB
|
||||
#define ZMK_CPF_DESC_235 ZMK_CPF_DESC_TWO_HUNDRED_AND_THIRTY_FIFTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_THIRTY_SIXTH 0X00EC
|
||||
#define ZMK_CPF_DESC_236 ZMK_CPF_DESC_TWO_HUNDRED_AND_THIRTY_SIXTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_THIRTY_SEVENTH 0X00ED
|
||||
#define ZMK_CPF_DESC_237 ZMK_CPF_DESC_TWO_HUNDRED_AND_THIRTY_SEVENTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_THIRTY_EIGHTH 0X00EE
|
||||
#define ZMK_CPF_DESC_238 ZMK_CPF_DESC_TWO_HUNDRED_AND_THIRTY_EIGHTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_THIRTY_NINTH 0X00EF
|
||||
#define ZMK_CPF_DESC_239 ZMK_CPF_DESC_TWO_HUNDRED_AND_THIRTY_NINTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_FORTIETH 0X00F0
|
||||
#define ZMK_CPF_DESC_240 ZMK_CPF_DESC_TWO_HUNDRED_FORTIETH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_FORTY_FIRST 0X00F1
|
||||
#define ZMK_CPF_DESC_241 ZMK_CPF_DESC_TWO_HUNDRED_AND_FORTY_FIRST
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_FORTY_SECOND 0X00F2
|
||||
#define ZMK_CPF_DESC_242 ZMK_CPF_DESC_TWO_HUNDRED_AND_FORTY_SECOND
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_FORTY_THIRD 0X00F3
|
||||
#define ZMK_CPF_DESC_243 ZMK_CPF_DESC_TWO_HUNDRED_AND_FORTY_THIRD
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_FORTY_FOURTH 0X00F4
|
||||
#define ZMK_CPF_DESC_244 ZMK_CPF_DESC_TWO_HUNDRED_AND_FORTY_FOURTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_FORTY_FIFTH 0X00F5
|
||||
#define ZMK_CPF_DESC_245 ZMK_CPF_DESC_TWO_HUNDRED_AND_FORTY_FIFTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_FORTY_SIXTH 0X00F6
|
||||
#define ZMK_CPF_DESC_246 ZMK_CPF_DESC_TWO_HUNDRED_AND_FORTY_SIXTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_FORTY_SEVENTH 0X00F7
|
||||
#define ZMK_CPF_DESC_247 ZMK_CPF_DESC_TWO_HUNDRED_AND_FORTY_SEVENTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_FORTY_EIGHTH 0X00F8
|
||||
#define ZMK_CPF_DESC_248 ZMK_CPF_DESC_TWO_HUNDRED_AND_FORTY_EIGHTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_FORTY_NINTH 0X00F9
|
||||
#define ZMK_CPF_DESC_249 ZMK_CPF_DESC_TWO_HUNDRED_AND_FORTY_NINTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_FIFTIETH 0X00FA
|
||||
#define ZMK_CPF_DESC_250 ZMK_CPF_DESC_TWO_HUNDRED_FIFTIETH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_FIFTY_FIRST 0X00FB
|
||||
#define ZMK_CPF_DESC_251 ZMK_CPF_DESC_TWO_HUNDRED_AND_FIFTY_FIRST
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_FIFTY_SECOND 0X00FC
|
||||
#define ZMK_CPF_DESC_252 ZMK_CPF_DESC_TWO_HUNDRED_AND_FIFTY_SECOND
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_FIFTY_THIRD 0X00FD
|
||||
#define ZMK_CPF_DESC_253 ZMK_CPF_DESC_TWO_HUNDRED_AND_FIFTY_THIRD
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_FIFTY_FOURTH 0X00FE
|
||||
#define ZMK_CPF_DESC_254 ZMK_CPF_DESC_TWO_HUNDRED_AND_FIFTY_FOURTH
|
||||
|
||||
#define ZMK_CPF_DESC_TWO_HUNDRED_AND_FIFTY_FIFTH 0X00FF
|
||||
#define ZMK_CPF_DESC_255 ZMK_CPF_DESC_TWO_HUNDRED_AND_FIFTY_FIFTH
|
||||
|
||||
#define ZMK_CPF_DESC_FRONT 0x0100
|
||||
#define ZMK_CPF_DESC_BACK 0x0101
|
||||
#define ZMK_CPF_DESC_TOP 0x0102
|
||||
#define ZMK_CPF_DESC_BOTTOM 0x0103
|
||||
#define ZMK_CPF_DESC_UPPER 0x0104
|
||||
#define ZMK_CPF_DESC_LOWER 0x0105
|
||||
#define ZMK_CPF_DESC_MAIN 0x0106
|
||||
#define ZMK_CPF_DESC_BACKUP 0x0107
|
||||
#define ZMK_CPF_DESC_AUXILIARY 0x0108
|
||||
#define ZMK_CPF_DESC_SUPPLEMENTARY 0x0109
|
||||
#define ZMK_CPF_DESC_FLASH 0x010A
|
||||
#define ZMK_CPF_DESC_INSIDE 0x010B
|
||||
#define ZMK_CPF_DESC_OUTSIDE 0x010C
|
||||
#define ZMK_CPF_DESC_LEFT 0x010D
|
||||
#define ZMK_CPF_DESC_RIGHT 0x010E
|
||||
#define ZMK_CPF_DESC_INTERNAL 0x010F
|
||||
#define ZMK_CPF_DESC_EXTERNAL 0x0110
|
||||
|
|
@ -0,0 +1,285 @@
|
|||
/*
|
||||
* Copyright (c) 2025 The ZMK Contributors
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <zephyr/sys/util.h>
|
||||
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_0 "Unknown"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_1 "First"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_2 "Second"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_3 "Third"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_4 "Fourth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_5 "Fifth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_6 "Sixth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_7 "Seventh"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_8 "Eighth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_9 "Ninth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_10 "Tenth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_11 "Eleventh"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_12 "Twelfth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_13 "Thirteenth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_14 "Fourteenth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_15 "Fifteenth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_16 "Sixteenth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_17 "Seventeenth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_18 "Eighteenth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_19 "Nineteenth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_20 "Twentieth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_21 "Twenty first"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_22 "Twenty second"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_23 "Twenty third"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_24 "Twenty fourth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_25 "Twenty fifth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_26 "Twenty sixth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_27 "Twenty seventh"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_28 "Twenty eighth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_29 "Twenty ninth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_30 "Thirtieth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_31 "Thirty first"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_32 "Thirty second"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_33 "Thirty third"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_34 "Thirty fourth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_35 "Thirty fifth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_36 "Thirty sixth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_37 "Thirty seventh"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_38 "Thirty eighth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_39 "Thirty ninth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_40 "Fortieth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_41 "Forty first"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_42 "Forty second"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_43 "Forty third"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_44 "Forty fourth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_45 "Forty fifth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_46 "Forty sixth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_47 "Forty seventh"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_48 "Forty eighth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_49 "Forty ninth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_50 "Fiftieth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_51 "Fifty first"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_52 "Fifty second"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_53 "Fifty third"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_54 "Fifty fourth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_55 "Fifty fifth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_56 "Fifty sixth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_57 "Fifty seventh"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_58 "Fifty eighth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_59 "Fifty ninth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_60 "Sixtieth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_61 "Sixty first"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_62 "Sixty second"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_63 "Sixty third"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_64 "Sixty fourth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_65 "Sixty fifth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_66 "Sixty sixth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_67 "Sixty seventh"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_68 "Sixty eighth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_69 "Sixty ninth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_70 "Seventieth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_71 "Seventy first"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_72 "Seventy second"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_73 "Seventy third"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_74 "Seventy fourth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_75 "Seventy fifth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_76 "Seventy sixth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_77 "Seventy seventh"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_78 "Seventy eighth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_79 "Seventy ninth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_80 "Eightieth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_81 "Eighty first"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_82 "Eighty second"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_83 "Eighty third"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_84 "Eighty fourth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_85 "Eighty fifth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_86 "Eighty sixth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_87 "Eighty seventh"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_88 "Eighty eighth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_89 "Eighty ninth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_90 "Ninetieth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_91 "Ninety first"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_92 "Ninety second"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_93 "Ninety third"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_94 "Ninety fourth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_95 "Ninety fifth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_96 "Ninety sixth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_97 "Ninety seventh"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_98 "Ninety eighth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_99 "Ninety ninth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_100 "One hundredth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_101 "One hundred and first"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_102 "One hundred and second"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_103 "One hundred and third"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_104 "One hundred and fourth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_105 "One hundred and fifth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_106 "One hundred and sixth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_107 "One hundred and seventh"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_108 "One hundred and eighth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_109 "One hundred and ninth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_110 "One hundred and tenth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_111 "One hundred and eleventh"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_112 "One hundred and twelfth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_113 "One hundred and thirteenth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_114 "One hundred and fourteenth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_115 "One hundred and fifteenth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_116 "One hundred and sixteenth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_117 "One hundred and seventeenth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_118 "One hundred and eighteenth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_119 "One hundred and nineteenth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_120 "One hundred twentieth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_121 "One hundred and twenty first"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_122 "One hundred and twenty second"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_123 "One hundred and twenty third"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_124 "One hundred and twenty fourth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_125 "One hundred and twenty fifth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_126 "One hundred and twenty sixth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_127 "One hundred and twenty seventh"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_128 "One hundred and twenty eighth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_129 "One hundred and twenty ninth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_130 "One hundred thirtieth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_131 "One hundred and thirty first"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_132 "One hundred and thirty second"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_133 "One hundred and thirty third"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_134 "One hundred and thirty fourth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_135 "One hundred and thirty fifth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_136 "One hundred and thirty sixth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_137 "One hundred and thirty seventh"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_138 "One hundred and thirty eighth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_139 "One hundred and thirty ninth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_140 "One hundred fortieth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_141 "One hundred and forty first"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_142 "One hundred and forty second"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_143 "One hundred and forty third"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_144 "One hundred and forty fourth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_145 "One hundred and forty fifth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_146 "One hundred and forty sixth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_147 "One hundred and forty seventh"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_148 "One hundred and forty eighth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_149 "One hundred and forty ninth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_150 "One hundred fiftieth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_151 "One hundred and fifty first"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_152 "One hundred and fifty second"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_153 "One hundred and fifty third"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_154 "One hundred and fifty fourth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_155 "One hundred and fifty fifth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_156 "One hundred and fifty sixth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_157 "One hundred and fifty seventh"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_158 "One hundred and fifty eighth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_159 "One hundred and fifty ninth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_160 "One hundred sixtieth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_161 "One hundred and sixty first"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_162 "One hundred and sixty second"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_163 "One hundred and sixty third"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_164 "One hundred and sixty fourth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_165 "One hundred and sixty fifth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_166 "One hundred and sixty sixth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_167 "One hundred and sixty seventh"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_168 "One hundred and sixty eighth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_169 "One hundred and sixty ninth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_170 "One hundred seventieth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_171 "One hundred and seventy first"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_172 "One hundred and seventy second"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_173 "One hundred and seventy third"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_174 "One hundred and seventy fourth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_175 "One hundred and seventy fifth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_176 "One hundred and seventy sixth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_177 "One hundred and seventy seventh"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_178 "One hundred and seventy eighth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_179 "One hundred and seventy ninth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_180 "One hundred eightieth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_181 "One hundred and eighty first"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_182 "One hundred and eighty second"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_183 "One hundred and eighty third"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_184 "One hundred and eighty fourth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_185 "One hundred and eighty fifth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_186 "One hundred and eighty sixth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_187 "One hundred and eighty seventh"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_188 "One hundred and eighty eighth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_189 "One hundred and eighty ninth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_190 "One hundred ninetieth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_191 "One hundred and ninety first"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_192 "One hundred and ninety second"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_193 "One hundred and ninety third"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_194 "One hundred and ninety fourth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_195 "One hundred and ninety fifth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_196 "One hundred and ninety sixth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_197 "One hundred and ninety seventh"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_198 "One hundred and ninety eighth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_199 "One hundred and ninety ninth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_200 "Two hundredth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_201 "Two hundred and first"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_202 "Two hundred and second"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_203 "Two hundred and third"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_204 "Two hundred and fourth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_205 "Two hundred and fifth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_206 "Two hundred and sixth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_207 "Two hundred and seventh"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_208 "Two hundred and eighth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_209 "Two hundred and ninth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_210 "Two hundred and tenth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_211 "Two hundred and eleventh"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_212 "Two hundred and twelfth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_213 "Two hundred and thirteenth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_214 "Two hundred and fourteenth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_215 "Two hundred and fifteenth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_216 "Two hundred and sixteenth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_217 "Two hundred and seventeenth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_218 "Two hundred and eighteenth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_219 "Two hundred and nineteenth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_220 "Two hundred and twentieth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_221 "Two hundred and twenty first"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_222 "Two hundred and twenty second"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_223 "Two hundred and twenty third"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_224 "Two hundred and twenty fourth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_225 "Two hundred and twenty fifth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_226 "Two hundred and twenty sixth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_227 "Two hundred and twenty seventh"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_228 "Two hundred and twenty eighth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_229 "Two hundred and twenty ninth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_230 "Two hundred and thirtieth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_231 "Two hundred and thirty first"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_232 "Two hundred and thirty second"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_233 "Two hundred and thirty third"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_234 "Two hundred and thirty fourth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_235 "Two hundred and thirty fifth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_236 "Two hundred and thirty sixth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_237 "Two hundred and thirty seventh"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_238 "Two hundred and thirty eighth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_239 "Two hundred and thirty ninth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_240 "Two hundred and fortieth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_241 "Two hundred and forty first"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_242 "Two hundred and forty second"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_243 "Two hundred and forty third"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_244 "Two hundred and forty fourth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_245 "Two hundred and forty fifth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_246 "Two hundred and forty sixth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_247 "Two hundred and forty seventh"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_248 "Two hundred and forty eighth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_249 "Two hundred and forty ninth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_250 "Two hundred and fiftieth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_251 "Two hundred and fifty first"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_252 "Two hundred and fifty second"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_253 "Two hundred and fifty third"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_254 "Two hundred and fifty fourth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_255 "Two hundred and fifty fifth"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_256 "Front"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_257 "Back"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_258 "Top"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_259 "Bottom"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_260 "Upper"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_261 "Lower"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_262 "Main"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_263 "Backup"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_264 "Auxiliary"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_265 "Supplementary"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_266 "Flash"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_267 "Inside"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_268 "Outside"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_269 "Left"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_270 "Right"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_271 "Internal"
|
||||
#define ZMK_BATTERY_CPF_TO_NAME_272 "External"
|
||||
|
||||
#define GET_BATTERY_DISPLAY_NAME_BY_CPF(cpf) UTIL_CAT(ZMK_BATTERY_CPF_TO_NAME_, cpf)
|
||||
|
|
@ -255,22 +255,13 @@ static const uint8_t zmk_hid_report_desc[] = {
|
|||
HID_END_COLLECTION,
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_POINTING)
|
||||
|
||||
#if !defined(SUPPRESS_BATTERY_HID_REPORT) && IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_HID)
|
||||
#if !defined(SUPPRESS_BATTERY_HID_REPORT) && IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_USB)
|
||||
HID_USAGE_PAGE(HID_USAGE_POWER),
|
||||
HID_USAGE(HID_USAGE_POWER_POWER_SUPPLY),
|
||||
HID_COLLECTION(HID_COLLECTION_APPLICATION),
|
||||
HID_USAGE_PAGE(HID_USAGE_BATTERY_SYSTEM),
|
||||
HID_REPORT_ID(ZMK_HID_REPORT_ID_BATTERY),
|
||||
|
||||
HID_USAGE(HID_USAGE_BATTERY_SYSTEM_CHARGING),
|
||||
HID_LOGICAL_MIN8(0),
|
||||
HID_LOGICAL_MAX8(1),
|
||||
HID_PHYSICAL_MIN8(0),
|
||||
HID_PHYSICAL_MAX8(1),
|
||||
HID_REPORT_SIZE(0x08),
|
||||
HID_REPORT_COUNT(0x01),
|
||||
HID_INPUT(ZMK_HID_MAIN_VAL_DATA | ZMK_HID_MAIN_VAL_VAR | ZMK_HID_MAIN_VAL_ABS),
|
||||
|
||||
HID_USAGE(HID_USAGE_BATTERY_SYSTEM_ABSOLUTE_STATE_OF_CHARGE),
|
||||
HID_LOGICAL_MIN8(0),
|
||||
HID_LOGICAL_MAX8(100),
|
||||
|
|
@ -280,6 +271,15 @@ static const uint8_t zmk_hid_report_desc[] = {
|
|||
HID_REPORT_COUNT(0x01),
|
||||
HID_INPUT(ZMK_HID_MAIN_VAL_DATA | ZMK_HID_MAIN_VAL_VAR | ZMK_HID_MAIN_VAL_ABS),
|
||||
|
||||
HID_USAGE(HID_USAGE_BATTERY_SYSTEM_CHARGING),
|
||||
HID_LOGICAL_MIN8(0),
|
||||
HID_LOGICAL_MAX8(1),
|
||||
HID_PHYSICAL_MIN8(0),
|
||||
HID_PHYSICAL_MAX8(1),
|
||||
HID_REPORT_SIZE(0x08),
|
||||
HID_REPORT_COUNT(0x01),
|
||||
HID_INPUT(ZMK_HID_MAIN_VAL_DATA | ZMK_HID_MAIN_VAL_VAR | ZMK_HID_MAIN_VAL_ABS),
|
||||
|
||||
HID_END_COLLECTION,
|
||||
#endif
|
||||
};
|
||||
|
|
@ -370,15 +370,15 @@ struct zmk_hid_mouse_resolution_feature_report {
|
|||
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_POINTING)
|
||||
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_HID)
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_USB)
|
||||
|
||||
struct zmk_hid_battery_report {
|
||||
uint8_t report_id;
|
||||
uint8_t charging;
|
||||
uint8_t battery_level;
|
||||
uint8_t charging;
|
||||
} __packed;
|
||||
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_HID)
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_USB)
|
||||
|
||||
zmk_mod_flags_t zmk_hid_get_explicit_mods(void);
|
||||
int zmk_hid_register_mod(zmk_mod_t modifier);
|
||||
|
|
@ -419,9 +419,9 @@ void zmk_hid_mouse_clear(void);
|
|||
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_POINTING)
|
||||
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_HID)
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_USB)
|
||||
void zmk_hid_battery_set(uint8_t battery_level);
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_HID)
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_USB)
|
||||
|
||||
struct zmk_hid_keyboard_report *zmk_hid_get_keyboard_report(void);
|
||||
struct zmk_hid_consumer_report *zmk_hid_get_consumer_report(void);
|
||||
|
|
@ -434,6 +434,6 @@ zmk_hid_boot_report_t *zmk_hid_get_boot_report();
|
|||
struct zmk_hid_mouse_report *zmk_hid_get_mouse_report();
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_POINTING)
|
||||
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_HID)
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_USB)
|
||||
struct zmk_hid_battery_report *zmk_hid_get_battery_report();
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_HID)
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_USB)
|
||||
|
|
|
|||
|
|
@ -15,8 +15,8 @@ int zmk_usb_hid_send_consumer_report(void);
|
|||
int zmk_usb_hid_send_mouse_report(void);
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_POINTING)
|
||||
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_HID)
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_USB)
|
||||
int zmk_usb_hid_send_battery_report(void);
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_HID)
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_USB)
|
||||
|
||||
void zmk_usb_hid_set_protocol(uint8_t protocol);
|
||||
|
|
|
|||
|
|
@ -25,12 +25,12 @@
|
|||
// display-name = "Left";
|
||||
// cpf = <50>;
|
||||
};
|
||||
// right{
|
||||
// display-name = "Right";
|
||||
// hidden;
|
||||
// };
|
||||
// pad{
|
||||
// display-name = "Extra Pad";
|
||||
// };
|
||||
right{
|
||||
display-name = "Right";
|
||||
hidden;
|
||||
};
|
||||
pad{
|
||||
display-name = "Extra Pad";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -14,6 +14,11 @@
|
|||
#include <zephyr/bluetooth/services/bas.h>
|
||||
#endif
|
||||
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_USB)
|
||||
#include <zmk/hid.h>
|
||||
#include <zmk/usb_hid.h>
|
||||
#endif
|
||||
|
||||
#include <zephyr/logging/log.h>
|
||||
|
||||
LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL);
|
||||
|
|
@ -25,11 +30,6 @@ LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL);
|
|||
#include <zmk/activity.h>
|
||||
#include <zmk/workqueue.h>
|
||||
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_HID)
|
||||
#include <zmk/hid.h>
|
||||
#include <zmk/usb_hid.h>
|
||||
#endif
|
||||
|
||||
static uint8_t last_state_of_charge = 0;
|
||||
|
||||
uint8_t zmk_battery_state_of_charge(void) { return last_state_of_charge; }
|
||||
|
|
@ -102,7 +102,7 @@ static int zmk_battery_update(const struct device *battery) {
|
|||
if (last_state_of_charge != state_of_charge.val1) {
|
||||
last_state_of_charge = state_of_charge.val1;
|
||||
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_HID) && !IS_ENABLED(CONFIG_ZMK_SPLIT)
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_USB)
|
||||
zmk_hid_battery_set(last_state_of_charge);
|
||||
zmk_usb_hid_send_battery_report();
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
#include <sys/types.h>
|
||||
#include <zephyr/kernel.h>
|
||||
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_BAS)
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_BLE)
|
||||
#include <zephyr/bluetooth/gatt.h>
|
||||
#endif
|
||||
|
||||
|
|
@ -25,29 +25,32 @@ LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL);
|
|||
#include <zmk/events/battery_state_changed.h>
|
||||
#include <zmk/split/central.h>
|
||||
#include <zmk/workqueue.h>
|
||||
#include <zmk/battery_names.h>
|
||||
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_HID)
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_USB)
|
||||
#include <zmk/hid.h>
|
||||
#include <zmk/usb_hid.h>
|
||||
#endif
|
||||
|
||||
// TODO before merging: is this needed? or just use a bool array or even bitfield?
|
||||
// Only `hidden` is used right now, is this information useful elsewhere? For screens?
|
||||
struct battery_part {
|
||||
char *display_name;
|
||||
uint16_t cpf;
|
||||
bool hidden;
|
||||
};
|
||||
|
||||
#define BAS_LOWEST_CHARGE_INDEX UINT8_MAX
|
||||
#define BAS_CENTRAL_INDEX 0
|
||||
#define BAS_PERIPH_OFFSET 1
|
||||
#define BAS_LEN UTIL_INC(CONFIG_ZMK_SPLIT_BLE_CENTRAL_PERIPHERALS)
|
||||
#define BAS_PERIPHERAL_INDEX_OFFSET 1
|
||||
|
||||
#define KEYBOARD_PARTS_NUM UTIL_INC(CONFIG_ZMK_SPLIT_BLE_CENTRAL_PERIPHERALS)
|
||||
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_SPLIT_REPORT_LOWEST_CHARGE)
|
||||
|
||||
static uint8_t lowest_state_of_charge = 0;
|
||||
|
||||
#endif
|
||||
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_BAS)
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_BLE)
|
||||
|
||||
static void blvl_ccc_cfg_changed(const struct bt_gatt_attr *attr, uint16_t value) {
|
||||
ARG_UNUSED(attr);
|
||||
|
|
@ -61,7 +64,7 @@ static ssize_t read_blvl(struct bt_conn *conn, const struct bt_gatt_attr *attr,
|
|||
uint8_t level = 0;
|
||||
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_SPLIT_REPORT_LOWEST_CHARGE)
|
||||
if (index == UINT8_MAX) {
|
||||
if (index == BAS_LOWEST_CHARGE_INDEX) {
|
||||
return bt_gatt_attr_read(conn, attr, buf, len, offset, &lowest_state_of_charge,
|
||||
sizeof(uint8_t));
|
||||
}
|
||||
|
|
@ -71,64 +74,72 @@ static ssize_t read_blvl(struct bt_conn *conn, const struct bt_gatt_attr *attr,
|
|||
level = zmk_battery_state_of_charge();
|
||||
} else {
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_SPLIT_FETCHING)
|
||||
int rc = zmk_split_central_get_peripheral_battery_level(index - BAS_PERIPH_OFFSET, &level);
|
||||
int rc = zmk_split_central_get_peripheral_battery_level(index - BAS_PERIPHERAL_INDEX_OFFSET,
|
||||
&level);
|
||||
|
||||
if (rc == -EINVAL) {
|
||||
LOG_ERR("Invalid peripheral index requested for battery level read: %d", index);
|
||||
return -EINVAL;
|
||||
}
|
||||
#else
|
||||
level = 0;
|
||||
LOG_WRN("Battery level read requested for peripheral %d, but split fetching is disabled",
|
||||
index);
|
||||
return 0;
|
||||
return -EINVAL;
|
||||
#endif
|
||||
}
|
||||
|
||||
return bt_gatt_attr_read(conn, attr, buf, len, offset, &level, sizeof(uint8_t));
|
||||
return bt_gatt_attr_read(conn, attr, buf, len, offset, &level, sizeof(level));
|
||||
}
|
||||
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_BAS)
|
||||
|
||||
#define CPF_DESC_BASE \
|
||||
COND_CODE_1(CONFIG_ZMK_BATTERY_REPORTING_SPLIT_REPORT_LOWEST_CHARGE, (0x0001), (0x0000))
|
||||
|
||||
#define PERIPH_CUD(x) PERIPH_CUD_(x)
|
||||
#define PERIPH_CUD_(x) "Peripheral " #x
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_BLE)
|
||||
|
||||
#define ZMK_BT_GATT_SERVICE_DEFINE(_name, ...) \
|
||||
const struct bt_gatt_attr UTIL_CAT(attr_, _name)[] = {__VA_ARGS__}; \
|
||||
const STRUCT_SECTION_ITERABLE(bt_gatt_service_static, _name) = \
|
||||
BT_GATT_SERVICE(UTIL_CAT(attr_, _name))
|
||||
|
||||
#if DT_HAS_CHOSEN(DT_DRV_COMPAT)
|
||||
// Get default CPF description as a literal number for a keyboard part.
|
||||
// For the central (part 0), default is "main" (0x0106, 262) unless reporting lowest charge, in
|
||||
// which case use "first" (1). For peripherals, always start from "second" (2) onwards.
|
||||
#define BAT_REPORT_GET_DEFAULT_CPF_DESC(idx) \
|
||||
COND_CODE_0( \
|
||||
idx, (COND_CODE_1(CONFIG_ZMK_BATTERY_REPORTING_SPLIT_REPORT_LOWEST_CHARGE, (1), (262))), \
|
||||
(UTIL_INC(idx)))
|
||||
|
||||
#define ONE(...) 1
|
||||
#define BATTERY_INFO_LEN (DT_FOREACH_CHILD_SEP(DT_CHOSEN(DT_DRV_COMPAT), ONE, (+)))
|
||||
BUILD_ASSERT(BAS_LEN == BATTERY_INFO_LEN,
|
||||
// Get default display name for a keyboard part.
|
||||
#define BAT_REPORT_GET_DEFAULT_DISPLAY_NAME(idx) \
|
||||
GET_BATTERY_DISPLAY_NAME_BY_CPF(BAT_REPORT_GET_DEFAULT_CPF_DESC(idx))
|
||||
|
||||
#if DT_HAS_CHOSEN(DT_DRV_COMPAT)
|
||||
// Use info from devicetree chosen node
|
||||
|
||||
BUILD_ASSERT(KEYBOARD_PARTS_NUM == DT_CHILD_NUM(DT_CHOSEN(DT_DRV_COMPAT)),
|
||||
"Number of battery info set in /chosen/zmk,battery-reporting must match the number of "
|
||||
"split parts in this keyboard.");
|
||||
|
||||
#define BAS_NAME(node_id) UTIL_CAT(bas, DT_NODE_CHILD_IDX(node_id))
|
||||
// Get CPF description as a literal number for a keyboard part from devicetree.
|
||||
// Use configured cpf property if set, otherwise use default based on index.
|
||||
#define BAT_REPORT_GET_DT_CPF_DESC(node_id) \
|
||||
DT_PROP_OR(node_id, cpf, BAT_REPORT_GET_DEFAULT_CPF_DESC(DT_NODE_CHILD_IDX(node_id)))
|
||||
|
||||
#define GET_BATT_DISPLAY_NAME(node_id) \
|
||||
// Get display name for a keyboard part from devicetree.
|
||||
// Use configured display-name property if set, otherwise use name based on CPF.
|
||||
#define BAT_REPORT_GET_DT_DISPLAY_NAME(node_id) \
|
||||
DT_PROP_OR(node_id, display_name, \
|
||||
(DT_NODE_CHILD_IDX(node_id) ? PERIPH_CUD(DT_NODE_CHILD_IDX(node_id)) : "Central"))
|
||||
GET_BATTERY_DISPLAY_NAME_BY_CPF(BAT_REPORT_GET_DT_CPF_DESC(node_id)))
|
||||
|
||||
#define GET_BATT_CPF_DESC(node_id) \
|
||||
DT_PROP_OR(node_id, cpf, \
|
||||
(DT_NODE_CHILD_IDX(node_id) \
|
||||
? (CPF_DESC_BASE + DT_NODE_CHILD_IDX(node_id)) /* "first" + index */ \
|
||||
: (COND_CODE_1(CONFIG_ZMK_BATTERY_REPORTING_SPLIT_REPORT_LOWEST_CHARGE, \
|
||||
(0x0001), (0x0106))))) /* "first", or "main" */
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_BLE)
|
||||
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_BAS)
|
||||
// Identifier for GATT service instance for a keyboard part.
|
||||
// Note: This will only sort correctly for up to 10 keyboard parts (single digit index)
|
||||
#define BAS_GATT_SERVICE_IDENTIFIER(node_id) UTIL_CAT(bas, DT_NODE_CHILD_IDX(node_id))
|
||||
|
||||
#define DEFINE_BAS_INSTANCE(node_id) \
|
||||
// Define a BAS instance for each non-hidden part.
|
||||
#define DEFINE_BAS_INSTANCE_DT(node_id) \
|
||||
COND_CODE_0( \
|
||||
DT_PROP(node_id, hidden), \
|
||||
(ZMK_BT_GATT_SERVICE_DEFINE( \
|
||||
BAS_NAME(node_id), BT_GATT_PRIMARY_SERVICE(BT_UUID_BAS), \
|
||||
BAS_GATT_SERVICE_IDENTIFIER(node_id), BT_GATT_PRIMARY_SERVICE(BT_UUID_BAS), \
|
||||
BT_GATT_CHARACTERISTIC(BT_UUID_BAS_BATTERY_LEVEL, \
|
||||
BT_GATT_CHRC_READ | BT_GATT_CHRC_NOTIFY, BT_GATT_PERM_READ, \
|
||||
read_blvl, NULL, ((uint8_t[]){DT_NODE_CHILD_IDX(node_id)})), \
|
||||
|
|
@ -138,111 +149,111 @@ BUILD_ASSERT(BAS_LEN == BATTERY_INFO_LEN,
|
|||
.exponent = 0x0, /* */ \
|
||||
.unit = 0x27AD, /* Percentage */ \
|
||||
.name_space = 0x01, /* Bluetooth SIG */ \
|
||||
.description = GET_BATT_CPF_DESC(node_id), \
|
||||
.description = BAT_REPORT_GET_DT_CPF_DESC(node_id), \
|
||||
}})), \
|
||||
BT_GATT_CUD(GET_BATT_DISPLAY_NAME(node_id), BT_GATT_PERM_READ))), \
|
||||
BT_GATT_CUD(BAT_REPORT_GET_DT_DISPLAY_NAME(node_id), BT_GATT_PERM_READ))), \
|
||||
());
|
||||
|
||||
DT_FOREACH_CHILD(DT_CHOSEN(DT_DRV_COMPAT), DEFINE_BAS_INSTANCE)
|
||||
DT_FOREACH_CHILD(DT_CHOSEN(DT_DRV_COMPAT), DEFINE_BAS_INSTANCE_DT)
|
||||
|
||||
#define BAS_PTR(node_id) COND_CODE_0(DT_PROP(node_id, hidden), (&BAS_NAME(node_id)), (NULL))
|
||||
#define BAS_PTR_DT(node_id) \
|
||||
COND_CODE_0(DT_PROP(node_id, hidden), (&BAS_GATT_SERVICE_IDENTIFIER(node_id)), (NULL))
|
||||
|
||||
static const struct bt_gatt_service_static *bas[] = {
|
||||
DT_FOREACH_CHILD_SEP(DT_CHOSEN(DT_DRV_COMPAT), BAS_PTR, (, ))};
|
||||
DT_FOREACH_CHILD_SEP(DT_CHOSEN(DT_DRV_COMPAT), BAS_PTR_DT, (, ))};
|
||||
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_BAS)
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_BLE)
|
||||
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_SPLIT_REPORT_LOWEST_CHARGE)
|
||||
#define BATTERY_PART(node_id) \
|
||||
#define BATTERY_PART_DT(node_id) \
|
||||
{ \
|
||||
.display_name = GET_BATT_DISPLAY_NAME(node_id), \
|
||||
.cpf = GET_BATT_CPF_DESC(node_id), \
|
||||
.display_name = BAT_REPORT_GET_DT_DISPLAY_NAME(node_id), \
|
||||
.cpf = BAT_REPORT_GET_DT_CPF_DESC(node_id), \
|
||||
.hidden = DT_PROP(node_id, hidden), \
|
||||
}
|
||||
|
||||
static const struct battery_part battery_parts[] = {
|
||||
DT_FOREACH_CHILD_SEP(DT_CHOSEN(DT_DRV_COMPAT), BATTERY_PART, (, ))};
|
||||
DT_FOREACH_CHILD_SEP(DT_CHOSEN(DT_DRV_COMPAT), BATTERY_PART_DT, (, ))};
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_SPLIT_REPORT_LOWEST_CHARGE)
|
||||
|
||||
#else // if DT_HAS_CHOSEN(DT_DRV_COMPAT)
|
||||
// No chosen devicetree node, use defaults
|
||||
|
||||
#define GET_BATT_DISPLAY_NAME(INDEX) (INDEX ? PERIPH_CUD(INDEX) : "Central")
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_BLE)
|
||||
|
||||
#define GET_BATT_CPF_DESC(INDEX) \
|
||||
(INDEX ? (CPF_DESC_BASE + INDEX) /* "first" + index */ \
|
||||
: (COND_CODE_1(CONFIG_ZMK_BATTERY_REPORTING_SPLIT_REPORT_LOWEST_CHARGE, (0x0001), \
|
||||
(0x0106)))) /* "first", or "main" */
|
||||
#define BAS_GATT_SERVICE_IDENTIFIER(idx) UTIL_CAT(bas, idx)
|
||||
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_BAS)
|
||||
|
||||
#define DEFINE_BAS_SERVICE(INDEX, _) \
|
||||
#define DEFINE_BAS_SERVICE_IDX(idx, _) \
|
||||
ZMK_BT_GATT_SERVICE_DEFINE( \
|
||||
bas##INDEX, BT_GATT_PRIMARY_SERVICE(BT_UUID_BAS), \
|
||||
BAS_GATT_SERVICE_IDENTIFIER(idx), BT_GATT_PRIMARY_SERVICE(BT_UUID_BAS), \
|
||||
BT_GATT_CHARACTERISTIC(BT_UUID_BAS_BATTERY_LEVEL, BT_GATT_CHRC_READ | BT_GATT_CHRC_NOTIFY, \
|
||||
BT_GATT_PERM_READ, read_blvl, NULL, ((uint8_t[]){INDEX})), \
|
||||
BT_GATT_PERM_READ, read_blvl, NULL, ((uint8_t[]){idx})), \
|
||||
BT_GATT_CCC(blvl_ccc_cfg_changed, BT_GATT_PERM_READ | BT_GATT_PERM_WRITE), \
|
||||
BT_GATT_CPF(((struct bt_gatt_cpf[]){{ \
|
||||
.format = 0x04, /* uint8 */ \
|
||||
.exponent = 0x0, \
|
||||
.unit = 0x27AD, /* Percentage */ \
|
||||
.name_space = 0x01, /* Bluetooth SIG */ \
|
||||
.description = GET_BATT_CPF_DESC(INDEX), \
|
||||
.description = BAT_REPORT_GET_DEFAULT_CPF_DESC(idx), \
|
||||
}})), \
|
||||
BT_GATT_CUD(GET_BATT_DISPLAY_NAME(INDEX), BT_GATT_PERM_READ));
|
||||
BT_GATT_CUD(BAT_REPORT_GET_DEFAULT_DISPLAY_NAME(idx), BT_GATT_PERM_READ));
|
||||
|
||||
LISTIFY(BAS_LEN, DEFINE_BAS_SERVICE, ())
|
||||
LISTIFY(KEYBOARD_PARTS_NUM, DEFINE_BAS_SERVICE_IDX, ())
|
||||
|
||||
#define BAS_PTR(INDEX, _) &bas##INDEX
|
||||
#define BAS_PTR_IDX(idx, _) &BAS_GATT_SERVICE_IDENTIFIER(idx)
|
||||
|
||||
static const struct bt_gatt_service_static *bas[] = {LISTIFY(BAS_LEN, BAS_PTR, (, ))};
|
||||
static const struct bt_gatt_service_static *bas[] = {
|
||||
LISTIFY(KEYBOARD_PARTS_NUM, BAS_PTR_IDX, (, ))};
|
||||
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_BAS)
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_BLE)
|
||||
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_SPLIT_REPORT_LOWEST_CHARGE)
|
||||
#define BATTERY_PART(INDEX, _) \
|
||||
#define BATTERY_PART_IDX(idx, _) \
|
||||
{ \
|
||||
.display_name = GET_BATT_DISPLAY_NAME(INDEX), \
|
||||
.cpf = GET_BATT_CPF_DESC(INDEX), \
|
||||
.display_name = BAT_REPORT_GET_DEFAULT_DISPLAY_NAME(idx), \
|
||||
.cpf = BAT_REPORT_GET_DEFAULT_CPF_DESC(idx), \
|
||||
.hidden = false, \
|
||||
}
|
||||
|
||||
static const struct battery_part battery_parts[] = {LISTIFY(BAS_LEN, BATTERY_PART, (, ))};
|
||||
static const struct battery_part battery_parts[] = {
|
||||
LISTIFY(KEYBOARD_PARTS_NUM, BATTERY_PART_IDX, (, ))};
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_SPLIT_REPORT_LOWEST_CHARGE)
|
||||
|
||||
#endif // else DT_HAS_CHOSEN(DT_DRV_COMPAT)
|
||||
#endif // if DT_HAS_CHOSEN(DT_DRV_COMPAT) .. else ..
|
||||
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_SPLIT_REPORT_LOWEST_CHARGE)
|
||||
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_BAS)
|
||||
|
||||
// note: the order of the services are based on their name.
|
||||
ZMK_BT_GATT_SERVICE_DEFINE(
|
||||
aggr_bas_lowest, BT_GATT_PRIMARY_SERVICE(BT_UUID_BAS),
|
||||
BT_GATT_CHARACTERISTIC(BT_UUID_BAS_BATTERY_LEVEL, BT_GATT_CHRC_READ | BT_GATT_CHRC_NOTIFY,
|
||||
BT_GATT_PERM_READ, read_blvl, NULL, ((uint8_t[]){UINT8_MAX})),
|
||||
BT_GATT_CCC(blvl_ccc_cfg_changed, BT_GATT_PERM_READ | BT_GATT_PERM_WRITE),
|
||||
BT_GATT_CPF(((struct bt_gatt_cpf[]){{
|
||||
.format = 0x04, /* uint8 */
|
||||
.exponent = 0x0,
|
||||
.unit = 0x27AD, /* Percentage */
|
||||
.name_space = 0x01, /* Bluetooth SIG */
|
||||
.description = 0x0106, /* "main" */
|
||||
}})),
|
||||
BT_GATT_CUD("Lowest Charge", BT_GATT_PERM_READ));
|
||||
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_BAS)
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_BLE)
|
||||
// Hote: the order of services are based on their name, so we prefix it with "a" to ensure it
|
||||
// appears first.
|
||||
ZMK_BT_GATT_SERVICE_DEFINE(abas_lowest, BT_GATT_PRIMARY_SERVICE(BT_UUID_BAS),
|
||||
BT_GATT_CHARACTERISTIC(BT_UUID_BAS_BATTERY_LEVEL,
|
||||
BT_GATT_CHRC_READ | BT_GATT_CHRC_NOTIFY,
|
||||
BT_GATT_PERM_READ, read_blvl, NULL,
|
||||
((uint8_t[]){BAS_LOWEST_CHARGE_INDEX})),
|
||||
BT_GATT_CCC(blvl_ccc_cfg_changed,
|
||||
BT_GATT_PERM_READ | BT_GATT_PERM_WRITE),
|
||||
BT_GATT_CPF(((struct bt_gatt_cpf[]){{
|
||||
.format = 0x04, /* uint8 */
|
||||
.exponent = 0x0,
|
||||
.unit = 0x27AD, /* Percentage */
|
||||
.name_space = 0x01, /* Bluetooth SIG */
|
||||
.description = 0x0106, /* "main" */
|
||||
}})),
|
||||
BT_GATT_CUD("Lowest Charge", BT_GATT_PERM_READ));
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_BLE)
|
||||
|
||||
static void zmk_update_lowest_charge_work(struct k_work *work) {
|
||||
ARG_UNUSED(work);
|
||||
|
||||
uint8_t new_lowest_level = UINT8_MAX;
|
||||
|
||||
if (!battery_parts[0].hidden) {
|
||||
if (!battery_parts[BAS_CENTRAL_INDEX].hidden) {
|
||||
new_lowest_level = zmk_battery_state_of_charge();
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < CONFIG_ZMK_SPLIT_BLE_CENTRAL_PERIPHERALS; i++) {
|
||||
if (battery_parts[i + BAS_PERIPH_OFFSET].hidden) {
|
||||
if (battery_parts[i + BAS_PERIPHERAL_INDEX_OFFSET].hidden) {
|
||||
continue;
|
||||
}
|
||||
uint8_t level = 0;
|
||||
|
|
@ -265,17 +276,15 @@ static void zmk_update_lowest_charge_work(struct k_work *work) {
|
|||
|
||||
LOG_DBG("Lowest state of charge: %d", lowest_state_of_charge);
|
||||
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_BAS)
|
||||
|
||||
int rc = bt_gatt_notify(NULL, &aggr_bas_lowest.attrs[2], &lowest_state_of_charge,
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_BLE)
|
||||
int rc = bt_gatt_notify(NULL, &abas_lowest.attrs[2], &lowest_state_of_charge,
|
||||
sizeof(lowest_state_of_charge));
|
||||
if (rc < 0 && rc != -ENOTCONN) {
|
||||
LOG_WRN("Notify failed for lowest battery level: %d", rc);
|
||||
}
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_BLE)
|
||||
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_BAS)
|
||||
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_HID)
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_USB)
|
||||
zmk_hid_battery_set(lowest_state_of_charge);
|
||||
zmk_usb_hid_send_battery_report();
|
||||
#endif
|
||||
|
|
@ -304,8 +313,8 @@ int peripheral_batt_report_lvl_listener(const zmk_event_t *eh) {
|
|||
|
||||
LOG_DBG("Peripheral %d battery level: %u", ev->source, ev->state_of_charge);
|
||||
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_BAS)
|
||||
const struct bt_gatt_service_static *svc = bas[ev->source + BAS_PERIPH_OFFSET];
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_BLE)
|
||||
const struct bt_gatt_service_static *svc = bas[ev->source + BAS_PERIPHERAL_INDEX_OFFSET];
|
||||
|
||||
if (svc) {
|
||||
int rc = bt_gatt_notify(NULL, &svc->attrs[2], &ev->state_of_charge, sizeof(uint8_t));
|
||||
|
|
@ -315,10 +324,17 @@ int peripheral_batt_report_lvl_listener(const zmk_event_t *eh) {
|
|||
} else {
|
||||
LOG_DBG("No service found for peripheral %d", ev->source);
|
||||
}
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_BAS)
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_BLE)
|
||||
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_SPLIT_REPORT_LOWEST_CHARGE)
|
||||
submit_lowest_charge_work();
|
||||
if (ev->state_of_charge != 0) {
|
||||
// Ugly workaround to not wake up the host on keyboard part disconnect, so users don't need
|
||||
// to turn off their keyboard parts before sleeping/hibernating their computer. We ideally
|
||||
// should differentiate between disconnect and 0% charge. This shouldn't be an issue for
|
||||
// most users, if a part is dead due to low battery, it likely was reporting <5% before
|
||||
// disconnecting so user is already aware.
|
||||
submit_lowest_charge_work();
|
||||
}
|
||||
#endif
|
||||
|
||||
return ZMK_EV_EVENT_BUBBLE;
|
||||
|
|
@ -333,7 +349,7 @@ int central_batt_state_changed_listener(const zmk_event_t *eh) {
|
|||
return ZMK_EV_EVENT_BUBBLE;
|
||||
}
|
||||
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_BAS)
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_BLE)
|
||||
const struct bt_gatt_service_static *svc = bas[BAS_CENTRAL_INDEX];
|
||||
|
||||
if (svc) {
|
||||
|
|
@ -344,16 +360,18 @@ int central_batt_state_changed_listener(const zmk_event_t *eh) {
|
|||
} else {
|
||||
LOG_DBG("No service found for central battery");
|
||||
}
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_BAS)
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_BLE)
|
||||
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_HID) && \
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_USB) && \
|
||||
!IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_SPLIT_REPORT_LOWEST_CHARGE)
|
||||
zmk_hid_battery_set(ev->state_of_charge);
|
||||
zmk_usb_hid_send_battery_report();
|
||||
#endif
|
||||
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_SPLIT_REPORT_LOWEST_CHARGE)
|
||||
submit_lowest_charge_work();
|
||||
if (battery_parts[BAS_CENTRAL_INDEX].hidden == false) {
|
||||
submit_lowest_charge_work();
|
||||
}
|
||||
#endif
|
||||
|
||||
return ZMK_EV_EVENT_BUBBLE;
|
||||
|
|
|
|||
|
|
@ -33,12 +33,12 @@ static struct zmk_hid_mouse_report mouse_report = {
|
|||
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_POINTING)
|
||||
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_HID)
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_USB)
|
||||
|
||||
static struct zmk_hid_battery_report battery_report = {
|
||||
.report_id = ZMK_HID_REPORT_ID_BATTERY, .charging = 0, .battery_level = 0};
|
||||
.report_id = ZMK_HID_REPORT_ID_BATTERY, .battery_level = 0, .charging = 0};
|
||||
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_HID)
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_USB)
|
||||
|
||||
// Keep track of how often a modifier was pressed.
|
||||
// Only release the modifier if the count is 0.
|
||||
|
|
@ -475,7 +475,7 @@ void zmk_hid_mouse_clear(void) {
|
|||
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_POINTING)
|
||||
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_HID)
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_USB)
|
||||
|
||||
void zmk_hid_battery_set(uint8_t battery_level) {
|
||||
if (battery_level > 100) {
|
||||
|
|
@ -484,7 +484,7 @@ void zmk_hid_battery_set(uint8_t battery_level) {
|
|||
battery_report.battery_level = battery_level;
|
||||
}
|
||||
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_HID)
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_USB)
|
||||
|
||||
struct zmk_hid_keyboard_report *zmk_hid_get_keyboard_report(void) { return &keyboard_report; }
|
||||
|
||||
|
|
@ -496,7 +496,6 @@ struct zmk_hid_mouse_report *zmk_hid_get_mouse_report(void) { return &mouse_repo
|
|||
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_POINTING)
|
||||
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_HID)
|
||||
// zmk_hid_get_battery_report
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_USB)
|
||||
struct zmk_hid_battery_report *zmk_hid_get_battery_report(void) { return &battery_report; }
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_HID)
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_USB)
|
||||
|
|
|
|||
|
|
@ -31,7 +31,8 @@ config ZMK_SPLIT_BLE_CENTRAL_PERIPHERALS
|
|||
int "Number of peripherals that will connect to the central."
|
||||
|
||||
menuconfig ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING
|
||||
bool "Deprecated: Fetch Peripheral Battery Level Info"
|
||||
bool "Fetch Peripheral Battery Level Info"
|
||||
select ZMK_BATTERY_REPORTING_SPLIT_FETCHING
|
||||
help
|
||||
Adds internal support for fetching the battery levels from peripherals
|
||||
and generating events in the ZMK eventing system.
|
||||
|
|
|
|||
|
|
@ -52,10 +52,10 @@ struct peripheral_slot {
|
|||
struct bt_gatt_subscribe_params sensor_subscribe_params;
|
||||
struct bt_gatt_discover_params sub_discover_params;
|
||||
uint16_t run_behavior_handle;
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_SPLIT_FETCHING)
|
||||
#if IS_ENABLED(CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING)
|
||||
struct bt_gatt_subscribe_params batt_lvl_subscribe_params;
|
||||
struct bt_gatt_read_params batt_lvl_read_params;
|
||||
#endif /* IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_SPLIT_FETCHING) */
|
||||
#endif /* IS_ENABLED(CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING) */
|
||||
#if IS_ENABLED(CONFIG_ZMK_SPLIT_PERIPHERAL_HID_INDICATORS)
|
||||
uint16_t update_hid_indicators;
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_SPLIT_PERIPHERAL_HID_INDICATORS)
|
||||
|
|
@ -391,7 +391,7 @@ static uint8_t split_central_notify_func(struct bt_conn *conn,
|
|||
return BT_GATT_ITER_CONTINUE;
|
||||
}
|
||||
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_SPLIT_FETCHING)
|
||||
#if IS_ENABLED(CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING)
|
||||
|
||||
static uint8_t split_central_battery_level_notify_func(struct bt_conn *conn,
|
||||
struct bt_gatt_subscribe_params *params,
|
||||
|
|
@ -475,7 +475,7 @@ static uint8_t split_central_battery_level_read_func(struct bt_conn *conn, uint8
|
|||
return BT_GATT_ITER_CONTINUE;
|
||||
}
|
||||
|
||||
#endif /* IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_SPLIT_FETCHING) */
|
||||
#endif /* IS_ENABLED(CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING) */
|
||||
|
||||
static int split_central_subscribe(struct bt_conn *conn, struct bt_gatt_subscribe_params *params) {
|
||||
atomic_set(params->flags, BT_GATT_SUBSCRIBE_FLAG_NO_RESUB);
|
||||
|
|
@ -620,7 +620,7 @@ static uint8_t split_central_chrc_discovery_func(struct bt_conn *conn,
|
|||
LOG_DBG("Found update HID indicators handle");
|
||||
slot->update_hid_indicators = bt_gatt_attr_value_handle(attr);
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_SPLIT_PERIPHERAL_HID_INDICATORS)
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_SPLIT_FETCHING)
|
||||
#if IS_ENABLED(CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING)
|
||||
} else if (!bt_uuid_cmp(((struct bt_gatt_chrc *)attr->user_data)->uuid,
|
||||
BT_UUID_BAS_BATTERY_LEVEL)) {
|
||||
LOG_DBG("Found battery level characteristics");
|
||||
|
|
@ -636,7 +636,7 @@ static uint8_t split_central_chrc_discovery_func(struct bt_conn *conn,
|
|||
slot->batt_lvl_read_params.single.handle = bt_gatt_attr_value_handle(attr);
|
||||
slot->batt_lvl_read_params.single.offset = 0;
|
||||
bt_gatt_read(conn, &slot->batt_lvl_read_params);
|
||||
#endif /* IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_SPLIT_FETCHING) */
|
||||
#endif /* IS_ENABLED(CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING) */
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
@ -695,9 +695,9 @@ static uint8_t split_central_chrc_discovery_func(struct bt_conn *conn,
|
|||
#if IS_ENABLED(CONFIG_ZMK_SPLIT_PERIPHERAL_HID_INDICATORS)
|
||||
subscribed = subscribed && slot->update_hid_indicators;
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_SPLIT_PERIPHERAL_HID_INDICATORS)
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_SPLIT_FETCHING)
|
||||
#if IS_ENABLED(CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING)
|
||||
subscribed = subscribed && slot->batt_lvl_subscribe_params.value_handle;
|
||||
#endif /* IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_SPLIT_FETCHING) */
|
||||
#endif /* IS_ENABLED(CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING) */
|
||||
#if IS_ENABLED(CONFIG_ZMK_INPUT_SPLIT)
|
||||
for (size_t i = 0; i < ARRAY_SIZE(peripheral_input_slots); i++) {
|
||||
if (input_slot_is_open(i) || input_slot_is_pending(i)) {
|
||||
|
|
@ -956,7 +956,9 @@ static void split_central_disconnected(struct bt_conn *conn, uint8_t reason) {
|
|||
|
||||
LOG_DBG("Disconnected: %s (reason %d)", addr, reason);
|
||||
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_SPLIT_FETCHING)
|
||||
#if IS_ENABLED(CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING)
|
||||
// TODO: Distinguish disconnection from 0% battery level notification and skip HID notification
|
||||
// on disconnection to avoid waking up the host.
|
||||
struct peripheral_event_wrapper ev = {
|
||||
.source = peripheral_slot_index_for_conn(conn),
|
||||
.event = {.type = ZMK_SPLIT_TRANSPORT_PERIPHERAL_EVENT_TYPE_BATTERY_EVENT,
|
||||
|
|
|
|||
|
|
@ -100,14 +100,14 @@ static int get_report_cb(const struct device *dev, struct usb_setup_packet *setu
|
|||
*len = sizeof(*report);
|
||||
break;
|
||||
}
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_HID)
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_USB)
|
||||
case ZMK_HID_REPORT_ID_BATTERY: {
|
||||
struct zmk_hid_battery_report *report = zmk_hid_get_battery_report();
|
||||
*data = (uint8_t *)report;
|
||||
*len = sizeof(*report);
|
||||
break;
|
||||
}
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_HID)
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_USB)
|
||||
default:
|
||||
LOG_ERR("Invalid report ID %d requested", setup->wValue & HID_GET_REPORT_ID_MASK);
|
||||
return -EINVAL;
|
||||
|
|
@ -243,7 +243,7 @@ int zmk_usb_hid_send_mouse_report() {
|
|||
}
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_POINTING)
|
||||
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_HID)
|
||||
#if IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_USB)
|
||||
int zmk_usb_hid_send_battery_report() {
|
||||
#if IS_ENABLED(CONFIG_ZMK_USB_BOOT)
|
||||
if (hid_protocol == HID_PROTOCOL_BOOT) {
|
||||
|
|
@ -254,7 +254,7 @@ int zmk_usb_hid_send_battery_report() {
|
|||
struct zmk_hid_battery_report *report = zmk_hid_get_battery_report();
|
||||
return zmk_usb_hid_send_report((uint8_t *)report, sizeof(*report));
|
||||
}
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_HID)
|
||||
#endif // IS_ENABLED(CONFIG_ZMK_BATTERY_REPORTING_USB)
|
||||
|
||||
static int zmk_usb_hid_init(void) {
|
||||
hid_dev = device_get_binding("HID_0");
|
||||
|
|
|
|||
Loading…
Reference in New Issue