try serving doxygen staticly

This commit is contained in:
Jack Humbert
2023-04-20 12:15:44 -04:00
parent 9dc53f6cd2
commit f2d4dace06
21 changed files with 29 additions and 1941 deletions

View File

@ -30,7 +30,7 @@ jobs:
- uses: actions/setup-node@v3 - uses: actions/setup-node@v3
with: with:
node-version: 16 node-version: 16
cache: yarn cache: npm
- name: Install dependencies - name: Install dependencies
run: | run: |
@ -41,14 +41,6 @@ jobs:
run: | run: |
qmk --verbose generate-docs qmk --verbose generate-docs
- name: Install yarn dependencies
working-directory: .build/docs
run: yarn install --frozen-lockfile
- name: Build Docusaurus
working-directory: .build/docs
run: yarn build
- name: Deploy - name: Deploy
uses: JamesIves/github-pages-deploy-action@v4.4.1 uses: JamesIves/github-pages-deploy-action@v4.4.1
with: with:

View File

@ -21,7 +21,7 @@ DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = "QMK Firmware" PROJECT_NAME = "QMK Firmware"
PROJECT_NUMBER = https://github.com/qmk/qmk_firmware PROJECT_NUMBER = https://github.com/qmk/qmk_firmware
PROJECT_BRIEF = "Keyboard controller firmware for Atmel AVR and ARM USB families" PROJECT_BRIEF = "Keyboard controller firmware for Atmel AVR and ARM USB families"
OUTPUT_DIRECTORY = .build/doxygen OUTPUT_DIRECTORY = .build/docs/static
ALLOW_UNICODE_NAMES = NO ALLOW_UNICODE_NAMES = NO
OUTPUT_LANGUAGE = English OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = YES BRIEF_MEMBER_DESC = YES
@ -183,7 +183,7 @@ IGNORE_PREFIX =
# Configuration options related to disabled outputs # Configuration options related to disabled outputs
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
GENERATE_HTML = NO GENERATE_HTML = YES
GENERATE_LATEX = NO GENERATE_LATEX = NO
GENERATE_RTF = NO GENERATE_RTF = NO
GENERATE_MAN = NO GENERATE_MAN = NO
@ -191,11 +191,18 @@ GENERATE_DOCBOOK = NO
GENERATE_AUTOGEN_DEF = NO GENERATE_AUTOGEN_DEF = NO
GENERATE_PERLMOD = NO GENERATE_PERLMOD = NO
#---------------------------------------------------------------------------
# Configuration options related to the HTML output
#---------------------------------------------------------------------------
HTML_OUTPUT = doxygen
# HTML_FILE_EXTENSION =
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Configuration options related to the XML output # Configuration options related to the XML output
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
GENERATE_XML = YES GENERATE_XML = NO
XML_OUTPUT = xml XML_OUTPUT = xml
XML_PROGRAMLISTING = YES XML_PROGRAMLISTING = YES

View File

View File

@ -13,6 +13,7 @@ const config = {
baseUrl: "/", baseUrl: "/",
organizationName: "qmk", organizationName: "qmk",
projectName: "qmk_firmware", projectName: "qmk_firmware",
deploymentBranch: "gh-pages",
onBrokenLinks: "warn", onBrokenLinks: "warn",
onBrokenMarkdownLinks: "warn", onBrokenMarkdownLinks: "warn",
i18n: { i18n: {

File diff suppressed because it is too large Load Diff

View File

@ -1,78 +0,0 @@
# group `defines`
## Summary
Members | Descriptions
--------------------------------|---------------------------------------------
`define `[`SYSEX_BEGIN`](#group__defines_1ga1a3c39bb790dda8a368c4247caabcf79) |
`define `[`SYSEX_END`](#group__defines_1ga753706d1d28e6f96d7caf1973e80feed) |
`define `[`MIDI_STATUSMASK`](#group__defines_1gab78a1c818a5f5dab7a8946543f126c69) |
`define `[`MIDI_CHANMASK`](#group__defines_1ga239edc0a6f8405d3a8f2804f1590b909) |
`define `[`MIDI_CC`](#group__defines_1ga45f116a1daab76b3c930c2cecfaef215) |
`define `[`MIDI_NOTEON`](#group__defines_1gafd416f27bf3590868c0c1f55c30be4c7) |
`define `[`MIDI_NOTEOFF`](#group__defines_1gabed24bea2d989fd655e2ef2ad0765adc) |
`define `[`MIDI_AFTERTOUCH`](#group__defines_1ga3a322d8cfd53576a2e167c1840551b0f) |
`define `[`MIDI_PITCHBEND`](#group__defines_1gabcc799504e8064679bca03f232223af4) |
`define `[`MIDI_PROGCHANGE`](#group__defines_1gaefb3f1595ffbb9db66b46c2c919a3d42) |
`define `[`MIDI_CHANPRESSURE`](#group__defines_1gaeb3281cc7fcd0daade8ed3d2dfc33dbe) |
`define `[`MIDI_CLOCK`](#group__defines_1gafa5e4e295aafd15ab7893344599b3b89) |
`define `[`MIDI_TICK`](#group__defines_1ga3b99408ff864613765d4c3c2ceb52aa7) |
`define `[`MIDI_START`](#group__defines_1ga8233631c85823aa546f932ad8975caa4) |
`define `[`MIDI_CONTINUE`](#group__defines_1gab24430f0081e27215b0da84dd0ee745c) |
`define `[`MIDI_STOP`](#group__defines_1ga3af9271d4b1f0d22904a0b055f48cf62) |
`define `[`MIDI_ACTIVESENSE`](#group__defines_1gacd88ed42dba52bb4b2052c5656362677) |
`define `[`MIDI_RESET`](#group__defines_1ga02947f30ca62dc332fdeb10c5868323b) |
`define `[`MIDI_TC_QUARTERFRAME`](#group__defines_1gaaa072f33590e236d1bfd8f28e833ae31) |
`define `[`MIDI_SONGPOSITION`](#group__defines_1ga412f6ed33a2150051374bee334ee1705) |
`define `[`MIDI_SONGSELECT`](#group__defines_1gafcab254838b028365ae0259729e72c4e) |
`define `[`MIDI_TUNEREQUEST`](#group__defines_1ga8100b907b8c0a84e58b1c53dcd9bd795) |
`define `[`SYSEX_EDUMANUFID`](#group__defines_1ga5ef855ed955b00a2239ca16afbeb164f) |
## Members
#### `define `[`SYSEX_BEGIN`](#group__defines_1ga1a3c39bb790dda8a368c4247caabcf79)
#### `define `[`SYSEX_END`](#group__defines_1ga753706d1d28e6f96d7caf1973e80feed)
#### `define `[`MIDI_STATUSMASK`](#group__defines_1gab78a1c818a5f5dab7a8946543f126c69)
#### `define `[`MIDI_CHANMASK`](#group__defines_1ga239edc0a6f8405d3a8f2804f1590b909)
#### `define `[`MIDI_CC`](#group__defines_1ga45f116a1daab76b3c930c2cecfaef215)
#### `define `[`MIDI_NOTEON`](#group__defines_1gafd416f27bf3590868c0c1f55c30be4c7)
#### `define `[`MIDI_NOTEOFF`](#group__defines_1gabed24bea2d989fd655e2ef2ad0765adc)
#### `define `[`MIDI_AFTERTOUCH`](#group__defines_1ga3a322d8cfd53576a2e167c1840551b0f)
#### `define `[`MIDI_PITCHBEND`](#group__defines_1gabcc799504e8064679bca03f232223af4)
#### `define `[`MIDI_PROGCHANGE`](#group__defines_1gaefb3f1595ffbb9db66b46c2c919a3d42)
#### `define `[`MIDI_CHANPRESSURE`](#group__defines_1gaeb3281cc7fcd0daade8ed3d2dfc33dbe)
#### `define `[`MIDI_CLOCK`](#group__defines_1gafa5e4e295aafd15ab7893344599b3b89)
#### `define `[`MIDI_TICK`](#group__defines_1ga3b99408ff864613765d4c3c2ceb52aa7)
#### `define `[`MIDI_START`](#group__defines_1ga8233631c85823aa546f932ad8975caa4)
#### `define `[`MIDI_CONTINUE`](#group__defines_1gab24430f0081e27215b0da84dd0ee745c)
#### `define `[`MIDI_STOP`](#group__defines_1ga3af9271d4b1f0d22904a0b055f48cf62)
#### `define `[`MIDI_ACTIVESENSE`](#group__defines_1gacd88ed42dba52bb4b2052c5656362677)
#### `define `[`MIDI_RESET`](#group__defines_1ga02947f30ca62dc332fdeb10c5868323b)
#### `define `[`MIDI_TC_QUARTERFRAME`](#group__defines_1gaaa072f33590e236d1bfd8f28e833ae31)
#### `define `[`MIDI_SONGPOSITION`](#group__defines_1ga412f6ed33a2150051374bee334ee1705)
#### `define `[`MIDI_SONGSELECT`](#group__defines_1gafcab254838b028365ae0259729e72c4e)
#### `define `[`MIDI_TUNEREQUEST`](#group__defines_1ga8100b907b8c0a84e58b1c53dcd9bd795)
#### `define `[`SYSEX_EDUMANUFID`](#group__defines_1ga5ef855ed955b00a2239ca16afbeb164f)

View File

@ -1,87 +0,0 @@
# group `digitizer`
HID Digitizer
## Summary
Members | Descriptions
--------------------------------|---------------------------------------------
`public void `[`digitizer_flush`](#group__digitizer_1ga2f0ca7925ebf293c0e2c623ec41a386d)`(void)` | Send the digitizer report to the host if it is marked as dirty.
`public void `[`digitizer_in_range_on`](#group__digitizer_1ga00f949f2d7e4e09d8a5bbc090fc78eb8)`(void)` | Assert the "in range" indicator, and flush the report.
`public void `[`digitizer_in_range_off`](#group__digitizer_1gabe4bf2d9168ffc3b68ffceeebd542c2d)`(void)` | Deassert the "in range" indicator, and flush the report.
`public void `[`digitizer_tip_switch_on`](#group__digitizer_1ga45a4bff373ac3cb13525135e47430a4d)`(void)` | Assert the tip switch, and flush the report.
`public void `[`digitizer_tip_switch_off`](#group__digitizer_1gad0d1db66781ff2c9ea126b843dd0accb)`(void)` | Deassert the tip switch, and flush the report.
`public void `[`digitizer_barrel_switch_on`](#group__digitizer_1gaf27cd1194daed947a09ecf621a958bb1)`(void)` | Assert the barrel switch, and flush the report.
`public void `[`digitizer_barrel_switch_off`](#group__digitizer_1ga8a5ca5c394f6ee28da4929d9c324d9df)`(void)` | Deassert the barrel switch, and flush the report.
`public void `[`digitizer_set_position`](#group__digitizer_1ga478e95afcb52a17c038cc705c889fc51)`(float x,float y)` | Set the absolute X and Y position of the digitizer contact, and flush the report.
`public void `[`host_digitizer_send`](#group__digitizer_1ga82bd010c3ad9a37cd34cfe80003e0111)`(`[`digitizer_t`](digitizer.md#structdigitizer__t)` * digitizer)` |
`struct `[`digitizer_t`](#structdigitizer__t) |
## Members
#### `public void `[`digitizer_flush`](#group__digitizer_1ga2f0ca7925ebf293c0e2c623ec41a386d)`(void)`
Send the digitizer report to the host if it is marked as dirty.
#### `public void `[`digitizer_in_range_on`](#group__digitizer_1ga00f949f2d7e4e09d8a5bbc090fc78eb8)`(void)`
Assert the "in range" indicator, and flush the report.
#### `public void `[`digitizer_in_range_off`](#group__digitizer_1gabe4bf2d9168ffc3b68ffceeebd542c2d)`(void)`
Deassert the "in range" indicator, and flush the report.
#### `public void `[`digitizer_tip_switch_on`](#group__digitizer_1ga45a4bff373ac3cb13525135e47430a4d)`(void)`
Assert the tip switch, and flush the report.
#### `public void `[`digitizer_tip_switch_off`](#group__digitizer_1gad0d1db66781ff2c9ea126b843dd0accb)`(void)`
Deassert the tip switch, and flush the report.
#### `public void `[`digitizer_barrel_switch_on`](#group__digitizer_1gaf27cd1194daed947a09ecf621a958bb1)`(void)`
Assert the barrel switch, and flush the report.
#### `public void `[`digitizer_barrel_switch_off`](#group__digitizer_1ga8a5ca5c394f6ee28da4929d9c324d9df)`(void)`
Deassert the barrel switch, and flush the report.
#### `public void `[`digitizer_set_position`](#group__digitizer_1ga478e95afcb52a17c038cc705c889fc51)`(float x,float y)`
Set the absolute X and Y position of the digitizer contact, and flush the report.
#### Parameters
* `x` The X value of the contact position, from 0 to 1.
* `y` The Y value of the contact position, from 0 to 1.
#### `public void `[`host_digitizer_send`](#group__digitizer_1ga82bd010c3ad9a37cd34cfe80003e0111)`(`[`digitizer_t`](digitizer.md#structdigitizer__t)` * digitizer)`
# struct `digitizer_t`
## Summary
Members | Descriptions
--------------------------------|---------------------------------------------
`public bool `[`in_range`](#structdigitizer__t_1a892bdb0283b79d3a2f522e235827a466) |
`public bool `[`tip`](#structdigitizer__t_1af805d442a9b04f396e165fe1d22edb12) |
`public bool `[`barrel`](#structdigitizer__t_1a1b9fd2b48c6e2325de54ef5050e0999d) |
`public float `[`x`](#structdigitizer__t_1ad0da36b2558901e21e7a30f6c227a45e) |
`public float `[`y`](#structdigitizer__t_1aa4f0d3eebc3c443f9be81bf48561a217) |
`public bool `[`dirty`](#structdigitizer__t_1ad25edacba00e4d0666a9959053b7cc10) |
## Members
#### `public bool `[`in_range`](#structdigitizer__t_1a892bdb0283b79d3a2f522e235827a466)
#### `public bool `[`tip`](#structdigitizer__t_1af805d442a9b04f396e165fe1d22edb12)
#### `public bool `[`barrel`](#structdigitizer__t_1a1b9fd2b48c6e2325de54ef5050e0999d)
#### `public float `[`x`](#structdigitizer__t_1ad0da36b2558901e21e7a30f6c227a45e)
#### `public float `[`y`](#structdigitizer__t_1aa4f0d3eebc3c443f9be81bf48561a217)
#### `public bool `[`dirty`](#structdigitizer__t_1ad25edacba00e4d0666a9959053b7cc10)

View File

@ -1,240 +0,0 @@
# group `hd44780`
HD44780 Character LCD Driver
## Summary
Members | Descriptions
--------------------------------|---------------------------------------------
`define `[`HD44780_CMD_CLEAR_DISPLAY`](#group__hd44780_1ga317a0fa779dcbd40d04095e1c3b16447) |
`define `[`HD44780_CMD_RETURN_HOME`](#group__hd44780_1ga64cd4e167d1a9cd65b32d5dcd7ac1bb8) |
`define `[`HD44780_CMD_ENTRY_MODE`](#group__hd44780_1ga6a4bd39ff528e4b7c7cc556095466158) |
`define `[`HD44780_ENTRY_MODE_INC`](#group__hd44780_1ga8def8b2eb6120f932fc5831e3fbb3377) |
`define `[`HD44780_ENTRY_MODE_SHIFT`](#group__hd44780_1gac58c05aa3eae28e88272bfb7ee7f5c40) |
`define `[`HD44780_CMD_DISPLAY`](#group__hd44780_1gafb9f17134eb0765671ea8f43b188ae1e) |
`define `[`HD44780_DISPLAY_ON`](#group__hd44780_1gaefd6f75e3454ecbe00950c818e9e9420) |
`define `[`HD44780_DISPLAY_CURSOR`](#group__hd44780_1gad125b60be30b2cd0e0bfb23f949238ec) |
`define `[`HD44780_DISPLAY_BLINK`](#group__hd44780_1gadb288f3996fafc6537c5e413eff39df8) |
`define `[`HD44780_CMD_MOVE`](#group__hd44780_1gac1f843079f60718d770b34b1d9e080a1) |
`define `[`HD44780_MOVE_DISPLAY`](#group__hd44780_1ga7f5aead3ce92c0bb8eef4afb6ec03fdc) |
`define `[`HD44780_MOVE_RIGHT`](#group__hd44780_1ga5b8911c499925d126afd681d19e16985) |
`define `[`HD44780_CMD_FUNCTION`](#group__hd44780_1ga66e53be765239225f30b35689edcc7f1) |
`define `[`HD44780_FUNCTION_8_BIT`](#group__hd44780_1gab4760a025661db140bd7df635bbd67e7) |
`define `[`HD44780_FUNCTION_2_LINES`](#group__hd44780_1ga88dbd8646d5fad0456e4685239404da3) |
`define `[`HD44780_FUNCTION_5X10_DOTS`](#group__hd44780_1ga66002af4238dd0830e3dbe7780143492) |
`define `[`HD44780_CMD_SET_CGRAM_ADDRESS`](#group__hd44780_1ga73397fed8f690a6508fb5967a76bcd3f) |
`define `[`HD44780_CMD_SET_DDRAM_ADDRESS`](#group__hd44780_1ga32d29769e79b9843c284f98a9bc6ad2a) |
`define `[`HD44780_BUSY_FLAG`](#group__hd44780_1gae22e5ab2bb9069fb265a6ff8ca5d0254) |
`public void `[`hd44780_write`](#group__hd44780_1ga3a41d7df58b5856c629f8181e93b7c00)`(uint8_t data,bool isData)` | Write a byte to the display.
`public uint8_t `[`hd44780_read`](#group__hd44780_1ga855e31aeb778f32efbd75be995797d1b)`(bool isData)` | Read a byte from the display.
`public bool `[`hd44780_busy`](#group__hd44780_1gadcb1634221c116247735e3312637edc1)`(void)` | Indicates whether the display is currently processing, and cannot accept instructions.
`public void `[`hd44780_command`](#group__hd44780_1gacd6ba5f8ecc8e6776e6617312b60d28e)`(uint8_t command)` | Send a command to the display. Refer to the datasheet for the valid commands.
`public void `[`hd44780_data`](#group__hd44780_1ga8bc010c20fd8026b0d98bce13066b049)`(uint8_t data)` | Send a byte of data to the display.
`public void `[`hd44780_clear`](#group__hd44780_1gaa358b83b37987e488b8f47d48a896ef8)`(void)` | Clear the display.
`public void `[`hd44780_home`](#group__hd44780_1gac59e0708629529fee41ae215abd1e954)`(void)` | Move the cursor to the home position.
`public void `[`hd44780_on`](#group__hd44780_1ga86f7413fd10963734e7d00cc475a8aba)`(bool cursor,bool blink)` | Turn the display on, and/or set the cursor position.
`public void `[`hd44780_off`](#group__hd44780_1gaa236bcd35da58b8d3a9c5347358d3560)`(void)` | Turn the display off.
`public void `[`hd44780_set_cgram_address`](#group__hd44780_1gacd561522fddf2ec8833325fd10e3a924)`(uint8_t address)` | Set the CGRAM address.
`public void `[`hd44780_set_ddram_address`](#group__hd44780_1ga8de3a1df53c6481652683d1a6df31948)`(uint8_t address)` | Set the DDRAM address.
`public void `[`hd44780_init`](#group__hd44780_1ga16611b90107639921a68efd503949db8)`(bool cursor,bool blink)` | Initialize the display.
`public void `[`hd44780_set_cursor`](#group__hd44780_1ga0144f1c7e1de7745862f991451efa614)`(uint8_t col,uint8_t line)` | Move the cursor to the specified position on the display.
`public void `[`hd44780_define_char`](#group__hd44780_1gaa167a2e4398a665658597f328ea08736)`(uint8_t index,uint8_t * data)` | Define a custom character.
`public void `[`hd44780_putc`](#group__hd44780_1gaf9578702c16938a2abbb8c6becc9915f)`(char c)` | Print a character to the display. The newline character will move the cursor to the start of the next line.
`public void `[`hd44780_puts`](#group__hd44780_1gaefe6076f55a4619cd8279765e125e513)`(const char * s)` | Print a string of characters to the display.
`public void `[`hd44780_define_char_P`](#group__hd44780_1ga8d31109c8c7ef295511145c490cdba7d)`(uint8_t index,const uint8_t * data)` | Define a custom character from PROGMEM.
`public void `[`hd44780_puts_P`](#group__hd44780_1gad999de4c8c443783542aece3c5ffaefc)`(const char * s)` | Print a string of characters from PROGMEM to the display.
## Members
#### `define `[`HD44780_CMD_CLEAR_DISPLAY`](#group__hd44780_1ga317a0fa779dcbd40d04095e1c3b16447)
#### `define `[`HD44780_CMD_RETURN_HOME`](#group__hd44780_1ga64cd4e167d1a9cd65b32d5dcd7ac1bb8)
#### `define `[`HD44780_CMD_ENTRY_MODE`](#group__hd44780_1ga6a4bd39ff528e4b7c7cc556095466158)
#### `define `[`HD44780_ENTRY_MODE_INC`](#group__hd44780_1ga8def8b2eb6120f932fc5831e3fbb3377)
#### `define `[`HD44780_ENTRY_MODE_SHIFT`](#group__hd44780_1gac58c05aa3eae28e88272bfb7ee7f5c40)
#### `define `[`HD44780_CMD_DISPLAY`](#group__hd44780_1gafb9f17134eb0765671ea8f43b188ae1e)
#### `define `[`HD44780_DISPLAY_ON`](#group__hd44780_1gaefd6f75e3454ecbe00950c818e9e9420)
#### `define `[`HD44780_DISPLAY_CURSOR`](#group__hd44780_1gad125b60be30b2cd0e0bfb23f949238ec)
#### `define `[`HD44780_DISPLAY_BLINK`](#group__hd44780_1gadb288f3996fafc6537c5e413eff39df8)
#### `define `[`HD44780_CMD_MOVE`](#group__hd44780_1gac1f843079f60718d770b34b1d9e080a1)
#### `define `[`HD44780_MOVE_DISPLAY`](#group__hd44780_1ga7f5aead3ce92c0bb8eef4afb6ec03fdc)
#### `define `[`HD44780_MOVE_RIGHT`](#group__hd44780_1ga5b8911c499925d126afd681d19e16985)
#### `define `[`HD44780_CMD_FUNCTION`](#group__hd44780_1ga66e53be765239225f30b35689edcc7f1)
#### `define `[`HD44780_FUNCTION_8_BIT`](#group__hd44780_1gab4760a025661db140bd7df635bbd67e7)
#### `define `[`HD44780_FUNCTION_2_LINES`](#group__hd44780_1ga88dbd8646d5fad0456e4685239404da3)
#### `define `[`HD44780_FUNCTION_5X10_DOTS`](#group__hd44780_1ga66002af4238dd0830e3dbe7780143492)
#### `define `[`HD44780_CMD_SET_CGRAM_ADDRESS`](#group__hd44780_1ga73397fed8f690a6508fb5967a76bcd3f)
#### `define `[`HD44780_CMD_SET_DDRAM_ADDRESS`](#group__hd44780_1ga32d29769e79b9843c284f98a9bc6ad2a)
#### `define `[`HD44780_BUSY_FLAG`](#group__hd44780_1gae22e5ab2bb9069fb265a6ff8ca5d0254)
#### `public void `[`hd44780_write`](#group__hd44780_1ga3a41d7df58b5856c629f8181e93b7c00)`(uint8_t data,bool isData)`
Write a byte to the display.
#### Parameters
* `data` The byte to send to the display.
* `isData` Whether the byte is an instruction or character data.
#### `public uint8_t `[`hd44780_read`](#group__hd44780_1ga855e31aeb778f32efbd75be995797d1b)`(bool isData)`
Read a byte from the display.
#### Parameters
* `isData` Whether to read the current cursor position, or the character at the cursor.
#### Returns
If `isData` is `true`, the returned byte will be the character at the current DDRAM address. Otherwise, it will be the current DDRAM address and the busy flag.
#### `public bool `[`hd44780_busy`](#group__hd44780_1gadcb1634221c116247735e3312637edc1)`(void)`
Indicates whether the display is currently processing, and cannot accept instructions.
#### Returns
`true` if the display is busy.
#### `public void `[`hd44780_command`](#group__hd44780_1gacd6ba5f8ecc8e6776e6617312b60d28e)`(uint8_t command)`
Send a command to the display. Refer to the datasheet for the valid commands.
This function waits for the display to clear the busy flag before sending the command.
#### Parameters
* `command` The command to send.
#### `public void `[`hd44780_data`](#group__hd44780_1ga8bc010c20fd8026b0d98bce13066b049)`(uint8_t data)`
Send a byte of data to the display.
This function waits for the display to clear the busy flag before sending the data.
#### Parameters
* `data` The byte of data to send.
#### `public void `[`hd44780_clear`](#group__hd44780_1gaa358b83b37987e488b8f47d48a896ef8)`(void)`
Clear the display.
This function is called on init.
#### `public void `[`hd44780_home`](#group__hd44780_1gac59e0708629529fee41ae215abd1e954)`(void)`
Move the cursor to the home position.
This function is called on init.
#### `public void `[`hd44780_on`](#group__hd44780_1ga86f7413fd10963734e7d00cc475a8aba)`(bool cursor,bool blink)`
Turn the display on, and/or set the cursor position.
This function is called on init.
#### Parameters
* `cursor` Whether to show the cursor.
* `blink` Whether to blink the cursor, if shown.
#### `public void `[`hd44780_off`](#group__hd44780_1gaa236bcd35da58b8d3a9c5347358d3560)`(void)`
Turn the display off.
#### `public void `[`hd44780_set_cgram_address`](#group__hd44780_1gacd561522fddf2ec8833325fd10e3a924)`(uint8_t address)`
Set the CGRAM address.
This function is used when defining custom characters.
#### Parameters
* `address` The CGRAM address to move to, from `0x00` to `0x3F`.
#### `public void `[`hd44780_set_ddram_address`](#group__hd44780_1ga8de3a1df53c6481652683d1a6df31948)`(uint8_t address)`
Set the DDRAM address.
This function is used when printing characters to the display, and setting the cursor.
#### Parameters
* `address` The DDRAM address to move to, from `0x00` to `0x7F`.
#### `public void `[`hd44780_init`](#group__hd44780_1ga16611b90107639921a68efd503949db8)`(bool cursor,bool blink)`
Initialize the display.
This function should be called only once, before any of the other functions can be called.
#### Parameters
* `cursor` Whether to show the cursor.
* `blink` Whether to blink the cursor, if shown.
#### `public void `[`hd44780_set_cursor`](#group__hd44780_1ga0144f1c7e1de7745862f991451efa614)`(uint8_t col,uint8_t line)`
Move the cursor to the specified position on the display.
#### Parameters
* `col` The column number to move to, from 0 to 15 on 16x2 displays.
* `line` The line number to move to, either 0 or 1 on 16x2 displays.
#### `public void `[`hd44780_define_char`](#group__hd44780_1gaa167a2e4398a665658597f328ea08736)`(uint8_t index,uint8_t * data)`
Define a custom character.
#### Parameters
* `index` The index of the custom character to define, from 0 to 7.
* `data` An array of 8 bytes containing the 5-bit row data of the character, where the first byte is the topmost row, and the least significant bit of each byte is the rightmost column.
#### `public void `[`hd44780_putc`](#group__hd44780_1gaf9578702c16938a2abbb8c6becc9915f)`(char c)`
Print a character to the display. The newline character will move the cursor to the start of the next line.
The exact character shown may depend on the ROM code of your particular display - refer to the datasheet for the full character set.
#### Parameters
* `c` The character to print.
#### `public void `[`hd44780_puts`](#group__hd44780_1gaefe6076f55a4619cd8279765e125e513)`(const char * s)`
Print a string of characters to the display.
#### Parameters
* `s` The string to print.
#### `public void `[`hd44780_define_char_P`](#group__hd44780_1ga8d31109c8c7ef295511145c490cdba7d)`(uint8_t index,const uint8_t * data)`
Define a custom character from PROGMEM.
On ARM devices, this function is simply an alias of [hd44780_define_char()](undefined.md#group__hd44780_1gaa167a2e4398a665658597f328ea08736).
#### Parameters
* `index` The index of the custom character to define, from 0 to 7.
* `data` A PROGMEM array of 8 bytes containing the 5-bit row data of the character, where the first byte is the topmost row, and the least significant bit of each byte is the rightmost column.
#### `public void `[`hd44780_puts_P`](#group__hd44780_1gad999de4c8c443783542aece3c5ffaefc)`(const char * s)`
Print a string of characters from PROGMEM to the display.
On ARM devices, this function is simply an alias of [hd44780_puts()](undefined.md#group__hd44780_1gaefe6076f55a4619cd8279765e125e513).
#### Parameters
* `s` The PROGMEM string to print.

View File

@ -1,169 +0,0 @@
# group `input_callback_reg`
These are the functions you use to register your input callbacks.
The functions are called when the appropriate midi message is matched on the associated device's input.
## Summary
Members | Descriptions
--------------------------------|---------------------------------------------
`public void `[`midi_register_cc_callback`](#group__input__callback__reg_1ga64ab672abbbe393c9c4a83110c8df718)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_three_byte_func_t func)` | Register a control change message (cc) callback.
`public void `[`midi_register_noteon_callback`](#group__input__callback__reg_1ga3962f276c17618923f1152779552103e)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_three_byte_func_t func)` | Register a note on callback.
`public void `[`midi_register_noteoff_callback`](#group__input__callback__reg_1gac847b66051bd6d53b762958be0ec4c6d)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_three_byte_func_t func)` | Register a note off callback.
`public void `[`midi_register_aftertouch_callback`](#group__input__callback__reg_1gaa95bc901bd9edff956a667c9a69dd01f)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_three_byte_func_t func)` | Register an after touch callback.
`public void `[`midi_register_pitchbend_callback`](#group__input__callback__reg_1ga071a28f02ba14f53de219be70ebd9a48)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_three_byte_func_t func)` | Register a pitch bend callback.
`public void `[`midi_register_songposition_callback`](#group__input__callback__reg_1gaf2adfd79637f3553d8f26deb1ca22ed6)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_three_byte_func_t func)` | Register a song position callback.
`public void `[`midi_register_progchange_callback`](#group__input__callback__reg_1gae6ba1a35a4cde9bd15dd42f87401d127)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_two_byte_func_t func)` | Register a program change callback.
`public void `[`midi_register_chanpressure_callback`](#group__input__callback__reg_1ga39b31f1f4fb93917ce039b958f21b4f5)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_two_byte_func_t func)` | Register a channel pressure callback.
`public void `[`midi_register_songselect_callback`](#group__input__callback__reg_1gaf9aafc76a2dc4b9fdbb4106cbda6ce72)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_two_byte_func_t func)` | Register a song select callback.
`public void `[`midi_register_tc_quarterframe_callback`](#group__input__callback__reg_1ga0a119fada2becc628cb15d753b257e6e)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_two_byte_func_t func)` | Register a tc quarter frame callback.
`public void `[`midi_register_realtime_callback`](#group__input__callback__reg_1ga764f440e857b89084b1a07f9da2ff93a)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_one_byte_func_t func)` | Register a realtime callback.
`public void `[`midi_register_tunerequest_callback`](#group__input__callback__reg_1gae40ff3ce20bda79fef87da24b8321cb1)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_one_byte_func_t func)` | Register a tune request callback.
`public void `[`midi_register_sysex_callback`](#group__input__callback__reg_1ga63ce9631b025785c1848d0122d4c4c48)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_sysex_func_t func)` | Register a sysex callback.
`public void `[`midi_register_fallthrough_callback`](#group__input__callback__reg_1ga7ed189164aa9682862b3181153afbd94)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_var_byte_func_t func)` | Register fall through callback.
`public void `[`midi_register_catchall_callback`](#group__input__callback__reg_1ga9dbfed568d047a6cd05708f11fe39e99)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_var_byte_func_t func)` | Register a catch all callback.
## Members
#### `public void `[`midi_register_cc_callback`](#group__input__callback__reg_1ga64ab672abbbe393c9c4a83110c8df718)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_three_byte_func_t func)`
Register a control change message (cc) callback.
#### Parameters
* `device` the device associate with
* `func` the callback function to register
#### `public void `[`midi_register_noteon_callback`](#group__input__callback__reg_1ga3962f276c17618923f1152779552103e)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_three_byte_func_t func)`
Register a note on callback.
#### Parameters
* `device` the device associate with
* `func` the callback function to register
#### `public void `[`midi_register_noteoff_callback`](#group__input__callback__reg_1gac847b66051bd6d53b762958be0ec4c6d)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_three_byte_func_t func)`
Register a note off callback.
#### Parameters
* `device` the device associate with
* `func` the callback function to register
#### `public void `[`midi_register_aftertouch_callback`](#group__input__callback__reg_1gaa95bc901bd9edff956a667c9a69dd01f)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_three_byte_func_t func)`
Register an after touch callback.
#### Parameters
* `device` the device associate with
* `func` the callback function to register
#### `public void `[`midi_register_pitchbend_callback`](#group__input__callback__reg_1ga071a28f02ba14f53de219be70ebd9a48)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_three_byte_func_t func)`
Register a pitch bend callback.
#### Parameters
* `device` the device associate with
* `func` the callback function to register
#### `public void `[`midi_register_songposition_callback`](#group__input__callback__reg_1gaf2adfd79637f3553d8f26deb1ca22ed6)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_three_byte_func_t func)`
Register a song position callback.
#### Parameters
* `device` the device associate with
* `func` the callback function to register
#### `public void `[`midi_register_progchange_callback`](#group__input__callback__reg_1gae6ba1a35a4cde9bd15dd42f87401d127)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_two_byte_func_t func)`
Register a program change callback.
#### Parameters
* `device` the device associate with
* `func` the callback function to register
#### `public void `[`midi_register_chanpressure_callback`](#group__input__callback__reg_1ga39b31f1f4fb93917ce039b958f21b4f5)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_two_byte_func_t func)`
Register a channel pressure callback.
#### Parameters
* `device` the device associate with
* `func` the callback function to register
#### `public void `[`midi_register_songselect_callback`](#group__input__callback__reg_1gaf9aafc76a2dc4b9fdbb4106cbda6ce72)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_two_byte_func_t func)`
Register a song select callback.
#### Parameters
* `device` the device associate with
* `func` the callback function to register
#### `public void `[`midi_register_tc_quarterframe_callback`](#group__input__callback__reg_1ga0a119fada2becc628cb15d753b257e6e)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_two_byte_func_t func)`
Register a tc quarter frame callback.
#### Parameters
* `device` the device associate with
* `func` the callback function to register
#### `public void `[`midi_register_realtime_callback`](#group__input__callback__reg_1ga764f440e857b89084b1a07f9da2ff93a)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_one_byte_func_t func)`
Register a realtime callback.
The callback will be called for all of the real time message types.
#### Parameters
* `device` the device associate with
* `func` the callback function to register
#### `public void `[`midi_register_tunerequest_callback`](#group__input__callback__reg_1gae40ff3ce20bda79fef87da24b8321cb1)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_one_byte_func_t func)`
Register a tune request callback.
#### Parameters
* `device` the device associate with
* `func` the callback function to register
#### `public void `[`midi_register_sysex_callback`](#group__input__callback__reg_1ga63ce9631b025785c1848d0122d4c4c48)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_sysex_func_t func)`
Register a sysex callback.
#### Parameters
* `device` the device associate with
* `func` the callback function to register
#### `public void `[`midi_register_fallthrough_callback`](#group__input__callback__reg_1ga7ed189164aa9682862b3181153afbd94)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_var_byte_func_t func)`
Register fall through callback.
This is only called if a more specific callback is not matched and called. For instance, if you don't register a note on callback but you get a note on message the fall through callback will be called, if it is registered.
#### Parameters
* `device` the device associate with
* `func` the callback function to register
#### `public void `[`midi_register_catchall_callback`](#group__input__callback__reg_1ga9dbfed568d047a6cd05708f11fe39e99)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_var_byte_func_t func)`
Register a catch all callback.
If registered, the catch all callback is called for every message that is matched, even if a more specific or the fallthrough callback is registered.
#### Parameters
* `device` the device associate with
* `func` the callback function to register

View File

@ -1,136 +0,0 @@
# group `joystick`
HID Joystick
## Summary
Members | Descriptions
--------------------------------|---------------------------------------------
`define `[`JOYSTICK_BUTTON_COUNT`](#group__joystick_1ga3792c81f5808ad4f30000689ee0f0d07) |
`define `[`JOYSTICK_AXIS_COUNT`](#group__joystick_1gab8d61934912a07819f6715ec9e54d32c) |
`define `[`JOYSTICK_AXIS_RESOLUTION`](#group__joystick_1gaddb4b3e42ee90269812fd0bd9acf21d8) |
`define `[`JOYSTICK_MAX_VALUE`](#group__joystick_1ga7084cc64aa477bb62ef80e4c827ebf93) |
`define `[`JS_VIRTUAL_AXIS`](#group__joystick_1gadec5fdc9d76e6bc1360c331276e50e87) |
`define `[`JOYSTICK_AXIS_VIRTUAL`](#group__joystick_1ga6ac5611ba2703332430aee9606ac30c8) |
`define `[`JOYSTICK_AXIS_IN`](#group__joystick_1ga1e985d1ca9689875587c8148bbcd76d4) |
`define `[`JOYSTICK_AXIS_IN_OUT`](#group__joystick_1gaca92c20ad4aba8d78e6d048e9189c745) |
`define `[`JOYSTICK_AXIS_IN_OUT_GROUND`](#group__joystick_1gae2e481604075d4b4425d5813a8c0c740) |
`public void `[`joystick_task`](#group__joystick_1ga8cfa738eaf345576667029cf64247ec1)`(void)` |
`public void `[`joystick_flush`](#group__joystick_1ga74d47db58c2ab483351eb4500f0fdd92)`(void)` | Send the joystick report to the host, if it has been marked as dirty.
`public void `[`register_joystick_button`](#group__joystick_1ga7045cb2fd5477cd11554275fd4630ef6)`(uint8_t button)` | Set the state of a button, and flush the report.
`public void `[`unregister_joystick_button`](#group__joystick_1ga7fb173dc8d4b68bf518629517d631576)`(uint8_t button)` | Reset the state of a button, and flush the report.
`public int16_t `[`joystick_read_axis`](#group__joystick_1ga1d149bcbf0587ef5ad514832cc2014b5)`(uint8_t axis)` | Sample and process the analog value of the given axis.
`public void `[`joystick_read_axes`](#group__joystick_1ga0b0011c0c3b90ed2ac6581218a081740)`(void)` |
`public void `[`joystick_set_axis`](#group__joystick_1ga2d3be63c85914d5de96ad1352fd2ff2b)`(uint8_t axis,int16_t value)` | Set the value of the given axis.
`public void `[`host_joystick_send`](#group__joystick_1ga3ef94672dc82a59587caa6147304041f)`(`[`joystick_t`](joystick.md#structjoystick__t)` * joystick)` |
`struct `[`joystick_config_t`](#structjoystick__config__t) |
`struct `[`joystick_t`](#structjoystick__t) |
## Members
#### `define `[`JOYSTICK_BUTTON_COUNT`](#group__joystick_1ga3792c81f5808ad4f30000689ee0f0d07)
#### `define `[`JOYSTICK_AXIS_COUNT`](#group__joystick_1gab8d61934912a07819f6715ec9e54d32c)
#### `define `[`JOYSTICK_AXIS_RESOLUTION`](#group__joystick_1gaddb4b3e42ee90269812fd0bd9acf21d8)
#### `define `[`JOYSTICK_MAX_VALUE`](#group__joystick_1ga7084cc64aa477bb62ef80e4c827ebf93)
#### `define `[`JS_VIRTUAL_AXIS`](#group__joystick_1gadec5fdc9d76e6bc1360c331276e50e87)
#### `define `[`JOYSTICK_AXIS_VIRTUAL`](#group__joystick_1ga6ac5611ba2703332430aee9606ac30c8)
#### `define `[`JOYSTICK_AXIS_IN`](#group__joystick_1ga1e985d1ca9689875587c8148bbcd76d4)
#### `define `[`JOYSTICK_AXIS_IN_OUT`](#group__joystick_1gaca92c20ad4aba8d78e6d048e9189c745)
#### `define `[`JOYSTICK_AXIS_IN_OUT_GROUND`](#group__joystick_1gae2e481604075d4b4425d5813a8c0c740)
#### `public void `[`joystick_task`](#group__joystick_1ga8cfa738eaf345576667029cf64247ec1)`(void)`
#### `public void `[`joystick_flush`](#group__joystick_1ga74d47db58c2ab483351eb4500f0fdd92)`(void)`
Send the joystick report to the host, if it has been marked as dirty.
#### `public void `[`register_joystick_button`](#group__joystick_1ga7045cb2fd5477cd11554275fd4630ef6)`(uint8_t button)`
Set the state of a button, and flush the report.
#### Parameters
* `button` The index of the button to press, from 0 to 31.
#### `public void `[`unregister_joystick_button`](#group__joystick_1ga7fb173dc8d4b68bf518629517d631576)`(uint8_t button)`
Reset the state of a button, and flush the report.
#### Parameters
* `button` The index of the button to release, from 0 to 31.
#### `public int16_t `[`joystick_read_axis`](#group__joystick_1ga1d149bcbf0587ef5ad514832cc2014b5)`(uint8_t axis)`
Sample and process the analog value of the given axis.
#### Parameters
* `axis` The axis to read.
#### Returns
A signed 16-bit integer, where 0 is the resting or mid point.
#### `public void `[`joystick_read_axes`](#group__joystick_1ga0b0011c0c3b90ed2ac6581218a081740)`(void)`
#### `public void `[`joystick_set_axis`](#group__joystick_1ga2d3be63c85914d5de96ad1352fd2ff2b)`(uint8_t axis,int16_t value)`
Set the value of the given axis.
#### Parameters
* `axis` The axis to set the value of.
* `value` The value to set.
#### `public void `[`host_joystick_send`](#group__joystick_1ga3ef94672dc82a59587caa6147304041f)`(`[`joystick_t`](joystick.md#structjoystick__t)` * joystick)`
# struct `joystick_config_t`
## Summary
Members | Descriptions
--------------------------------|---------------------------------------------
`public pin_t `[`output_pin`](#structjoystick__config__t_1a933352102e7001dd3ef32ab30626d5d9) |
`public pin_t `[`input_pin`](#structjoystick__config__t_1a618b5e95bb730a44349ee0cc0a9ead2b) |
`public pin_t `[`ground_pin`](#structjoystick__config__t_1a68d0d2868fb6174cd8f5d4e4484e761c) |
`public uint16_t `[`min_digit`](#structjoystick__config__t_1a58f2a813b3bd682d8e0832901717ae0a) |
`public uint16_t `[`mid_digit`](#structjoystick__config__t_1aabf753cef243f656f9dcf1f8416cd019) |
`public uint16_t `[`max_digit`](#structjoystick__config__t_1a5efa9ac6ea984ad8f980cc83dd64215b) |
## Members
#### `public pin_t `[`output_pin`](#structjoystick__config__t_1a933352102e7001dd3ef32ab30626d5d9)
#### `public pin_t `[`input_pin`](#structjoystick__config__t_1a618b5e95bb730a44349ee0cc0a9ead2b)
#### `public pin_t `[`ground_pin`](#structjoystick__config__t_1a68d0d2868fb6174cd8f5d4e4484e761c)
#### `public uint16_t `[`min_digit`](#structjoystick__config__t_1a58f2a813b3bd682d8e0832901717ae0a)
#### `public uint16_t `[`mid_digit`](#structjoystick__config__t_1aabf753cef243f656f9dcf1f8416cd019)
#### `public uint16_t `[`max_digit`](#structjoystick__config__t_1a5efa9ac6ea984ad8f980cc83dd64215b)
# struct `joystick_t`
## Summary
Members | Descriptions
--------------------------------|---------------------------------------------
`public uint8_t `[`buttons`](#structjoystick__t_1aac061683d3987491e9f2547b1b1aff3d) |
`public int16_t `[`axes`](#structjoystick__t_1ad27ebfc17a6488794bafecaf2d71eb46) |
`public bool `[`dirty`](#structjoystick__t_1ad25edacba00e4d0666a9959053b7cc10) |
## Members
#### `public uint8_t `[`buttons`](#structjoystick__t_1aac061683d3987491e9f2547b1b1aff3d)
#### `public int16_t `[`axes`](#structjoystick__t_1ad27ebfc17a6488794bafecaf2d71eb46)
#### `public bool `[`dirty`](#structjoystick__t_1ad25edacba00e4d0666a9959053b7cc10)

View File

@ -1,139 +0,0 @@
# group `leader`
Leader Key
## Summary
Members | Descriptions
--------------------------------|---------------------------------------------
`public void `[`leader_start_user`](#group__leader_1gae7b6746b0c6bd83cada1e770a7d8315d)`(void)` | User callback, invoked when the leader sequence begins.
`public void `[`leader_end_user`](#group__leader_1ga20986d88ffc5f21f00eab4b5e9a03188)`(void)` | User callback, invoked when the leader sequence ends.
`public void `[`leader_start`](#group__leader_1ga1f5dad3a2df12d29023e48852ff638ba)`(void)` | Begin the leader sequence, resetting the buffer and timer.
`public void `[`leader_end`](#group__leader_1ga7ecc035ad29aed6d5ee3848725234b6c)`(void)` | End the leader sequence.
`public void `[`leader_task`](#group__leader_1gaa451b483f86840a1a3a773a074b73019)`(void)` |
`public bool `[`leader_sequence_active`](#group__leader_1gab52594aae07ec2f59cc6cc00dce9cc0b)`(void)` | Whether the leader sequence is active.
`public bool `[`leader_sequence_add`](#group__leader_1ga0b9825ee3240ffac41837664d10c36ff)`(uint16_t keycode)` | Add the given keycode to the sequence buffer.
`public bool `[`leader_sequence_timed_out`](#group__leader_1gadb5905415a54ffab4a47a8d3227b3942)`(void)` | Whether the leader sequence has reached the timeout.
`public void `[`leader_reset_timer`](#group__leader_1ga5a9246dc3f952a5522c188f747ce0722)`(void)` | Reset the leader sequence timer.
`public bool `[`leader_sequence_one_key`](#group__leader_1ga6bcdd330c94f7074361c21ad8ee901fd)`(uint16_t kc)` | Check the sequence buffer for the given keycode.
`public bool `[`leader_sequence_two_keys`](#group__leader_1ga6a09c0ae645990e9d219c62244c30e42)`(uint16_t kc1,uint16_t kc2)` | Check the sequence buffer for the given keycodes.
`public bool `[`leader_sequence_three_keys`](#group__leader_1ga0dd4e91b428947bfb5ddb6fd09b29c11)`(uint16_t kc1,uint16_t kc2,uint16_t kc3)` | Check the sequence buffer for the given keycodes.
`public bool `[`leader_sequence_four_keys`](#group__leader_1ga5f71174f1afa31112108336e0d782ff2)`(uint16_t kc1,uint16_t kc2,uint16_t kc3,uint16_t kc4)` | Check the sequence buffer for the given keycodes.
`public bool `[`leader_sequence_five_keys`](#group__leader_1ga2c565e3c2d21eac4b23db75a15a9fa2d)`(uint16_t kc1,uint16_t kc2,uint16_t kc3,uint16_t kc4,uint16_t kc5)` | Check the sequence buffer for the given keycodes.
## Members
#### `public void `[`leader_start_user`](#group__leader_1gae7b6746b0c6bd83cada1e770a7d8315d)`(void)`
User callback, invoked when the leader sequence begins.
#### `public void `[`leader_end_user`](#group__leader_1ga20986d88ffc5f21f00eab4b5e9a03188)`(void)`
User callback, invoked when the leader sequence ends.
#### `public void `[`leader_start`](#group__leader_1ga1f5dad3a2df12d29023e48852ff638ba)`(void)`
Begin the leader sequence, resetting the buffer and timer.
#### `public void `[`leader_end`](#group__leader_1ga7ecc035ad29aed6d5ee3848725234b6c)`(void)`
End the leader sequence.
#### `public void `[`leader_task`](#group__leader_1gaa451b483f86840a1a3a773a074b73019)`(void)`
#### `public bool `[`leader_sequence_active`](#group__leader_1gab52594aae07ec2f59cc6cc00dce9cc0b)`(void)`
Whether the leader sequence is active.
#### `public bool `[`leader_sequence_add`](#group__leader_1ga0b9825ee3240ffac41837664d10c36ff)`(uint16_t keycode)`
Add the given keycode to the sequence buffer.
If `LEADER_NO_TIMEOUT` is defined, the timer is reset if the buffer is empty.
#### Parameters
* `keycode` The keycode to add.
#### Returns
`true` if the keycode was added, `false` if the buffer is full.
#### `public bool `[`leader_sequence_timed_out`](#group__leader_1gadb5905415a54ffab4a47a8d3227b3942)`(void)`
Whether the leader sequence has reached the timeout.
If `LEADER_NO_TIMEOUT` is defined, the buffer must also contain at least one key.
#### `public void `[`leader_reset_timer`](#group__leader_1ga5a9246dc3f952a5522c188f747ce0722)`(void)`
Reset the leader sequence timer.
#### `public bool `[`leader_sequence_one_key`](#group__leader_1ga6bcdd330c94f7074361c21ad8ee901fd)`(uint16_t kc)`
Check the sequence buffer for the given keycode.
#### Parameters
* `kc` The keycode to check.
#### Returns
`true` if the sequence buffer matches.
#### `public bool `[`leader_sequence_two_keys`](#group__leader_1ga6a09c0ae645990e9d219c62244c30e42)`(uint16_t kc1,uint16_t kc2)`
Check the sequence buffer for the given keycodes.
#### Parameters
* `kc1` The first keycode to check.
* `kc2` The second keycode to check.
#### Returns
`true` if the sequence buffer matches.
#### `public bool `[`leader_sequence_three_keys`](#group__leader_1ga0dd4e91b428947bfb5ddb6fd09b29c11)`(uint16_t kc1,uint16_t kc2,uint16_t kc3)`
Check the sequence buffer for the given keycodes.
#### Parameters
* `kc1` The first keycode to check.
* `kc2` The second keycode to check.
* `kc3` The third keycode to check.
#### Returns
`true` if the sequence buffer matches.
#### `public bool `[`leader_sequence_four_keys`](#group__leader_1ga5f71174f1afa31112108336e0d782ff2)`(uint16_t kc1,uint16_t kc2,uint16_t kc3,uint16_t kc4)`
Check the sequence buffer for the given keycodes.
#### Parameters
* `kc1` The first keycode to check.
* `kc2` The second keycode to check.
* `kc3` The third keycode to check.
* `kc4` The fourth keycode to check.
#### Returns
`true` if the sequence buffer matches.
#### `public bool `[`leader_sequence_five_keys`](#group__leader_1ga2c565e3c2d21eac4b23db75a15a9fa2d)`(uint16_t kc1,uint16_t kc2,uint16_t kc3,uint16_t kc4,uint16_t kc5)`
Check the sequence buffer for the given keycodes.
#### Parameters
* `kc1` The first keycode to check.
* `kc2` The second keycode to check.
* `kc3` The third keycode to check.
* `kc4` The fourth keycode to check.
* `kc5` The fifth keycode to check.
#### Returns
`true` if the sequence buffer matches.

View File

@ -1,143 +0,0 @@
# group `midi_device`
You use the functions when you are implementing your own midi device.
You set a send function to actually send bytes via your device, this method is called when you call a send function with this device, for instance midi_send_cc
You use the midi_device_input to process input data from the device and pass it through the device's associated callbacks.
You use the midi_device_set_pre_input_process_func if you want to have a function called at the beginning of the device's process function, generally to poll for input and pass that into midi_device_input
## Summary
Members | Descriptions
--------------------------------|---------------------------------------------
`define `[`MIDI_INPUT_QUEUE_LENGTH`](#group__midi__device_1ga4aaa419caebdca2bbdfc1331e79781a8) |
`enum `[`input_state_t`](#group__midi__device_1gac203e877d3df4275ceb8e7180a61f621) |
`public void `[`midi_device_input`](#group__midi__device_1gad8d3db8eb35d9cfa51ef036a0a9d70db)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,uint8_t cnt,uint8_t * input)` | Process input bytes. This function parses bytes and calls the appropriate callbacks associated with the given device. You use this function if you are creating a custom device and you want to have midi input.
`public void `[`midi_device_set_send_func`](#group__midi__device_1ga59f5a46bdd4452f186cc73d9e96d4673)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_var_byte_func_t send_func)` | Set the callback function that will be used for sending output data bytes. This is only used if you're creating a custom device. You'll most likely want the callback function to disable interrupts so that you can call the various midi send functions without worrying about locking.
`public void `[`midi_device_set_pre_input_process_func`](#group__midi__device_1ga4de0841b87c04fc23cb56b6451f33b69)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_no_byte_func_t pre_process_func)` | Set a callback which is called at the beginning of the midi_device_process call. This can be used to poll for input data and send the data through the midi_device_input function. You'll probably only use this if you're creating a custom device.
`struct `[`_midi_device`](#struct__midi__device) | This structure represents the input and output functions and processing data for a midi device.
## Members
#### `define `[`MIDI_INPUT_QUEUE_LENGTH`](#group__midi__device_1ga4aaa419caebdca2bbdfc1331e79781a8)
#### `enum `[`input_state_t`](#group__midi__device_1gac203e877d3df4275ceb8e7180a61f621)
Values | Descriptions
--------------------------------|---------------------------------------------
IDLE |
ONE_BYTE_MESSAGE |
TWO_BYTE_MESSAGE |
THREE_BYTE_MESSAGE |
SYSEX_MESSAGE |
#### `public void `[`midi_device_input`](#group__midi__device_1gad8d3db8eb35d9cfa51ef036a0a9d70db)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,uint8_t cnt,uint8_t * input)`
Process input bytes. This function parses bytes and calls the appropriate callbacks associated with the given device. You use this function if you are creating a custom device and you want to have midi input.
#### Parameters
* `device` the midi device to associate the input with
* `cnt` the number of bytes you are processing
* `input` the bytes to process
#### `public void `[`midi_device_set_send_func`](#group__midi__device_1ga59f5a46bdd4452f186cc73d9e96d4673)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_var_byte_func_t send_func)`
Set the callback function that will be used for sending output data bytes. This is only used if you're creating a custom device. You'll most likely want the callback function to disable interrupts so that you can call the various midi send functions without worrying about locking.
#### Parameters
* `device` the midi device to associate this callback with
* `send_func` the callback function that will do the sending
#### `public void `[`midi_device_set_pre_input_process_func`](#group__midi__device_1ga4de0841b87c04fc23cb56b6451f33b69)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,midi_no_byte_func_t pre_process_func)`
Set a callback which is called at the beginning of the midi_device_process call. This can be used to poll for input data and send the data through the midi_device_input function. You'll probably only use this if you're creating a custom device.
#### Parameters
* `device` the midi device to associate this callback with
* `midi_no_byte_func_t` the actual callback function
# struct `_midi_device`
This structure represents the input and output functions and processing data for a midi device.
A device can represent an actual physical device [serial port, usb port] or something virtual. You should not need to modify this structure directly.
## Summary
Members | Descriptions
--------------------------------|---------------------------------------------
`public midi_var_byte_func_t `[`send_func`](#struct__midi__device_1a25d4c94b4bbccd5b98f1032b469f3ff9) |
`public midi_three_byte_func_t `[`input_cc_callback`](#struct__midi__device_1a6da5236c1bc73877728df92d213a78d1) |
`public midi_three_byte_func_t `[`input_noteon_callback`](#struct__midi__device_1aa10b15cf1a7fb825a5df0d2abbe34a1c) |
`public midi_three_byte_func_t `[`input_noteoff_callback`](#struct__midi__device_1aaf290043078534d3a5a0ea4c840eba84) |
`public midi_three_byte_func_t `[`input_aftertouch_callback`](#struct__midi__device_1acb0b4901c545cec4b28b126f2d8c315f) |
`public midi_three_byte_func_t `[`input_pitchbend_callback`](#struct__midi__device_1a305fea672caeb996f2233bf8cd2bef18) |
`public midi_three_byte_func_t `[`input_songposition_callback`](#struct__midi__device_1a5f3f13638b3fef3fc561ed1bf301d586) |
`public midi_two_byte_func_t `[`input_progchange_callback`](#struct__midi__device_1adaf1da617c9a10a9dcad00ab1959d3da) |
`public midi_two_byte_func_t `[`input_chanpressure_callback`](#struct__midi__device_1ab7ca2925c539915d43974eff604d85f7) |
`public midi_two_byte_func_t `[`input_songselect_callback`](#struct__midi__device_1a89bed8a5a55376120cfc0a62b42f057f) |
`public midi_two_byte_func_t `[`input_tc_quarterframe_callback`](#struct__midi__device_1ad9813e75d22e284f9f65a907d20600f0) |
`public midi_one_byte_func_t `[`input_realtime_callback`](#struct__midi__device_1a9448eba4afb7e43650434748db3777be) |
`public midi_one_byte_func_t `[`input_tunerequest_callback`](#struct__midi__device_1a0cb8fd53e00cf1d4202d4fa04d038e8d) |
`public midi_sysex_func_t `[`input_sysex_callback`](#struct__midi__device_1afff9a0ce641762aaef24c1e6953ec9a2) |
`public midi_var_byte_func_t `[`input_fallthrough_callback`](#struct__midi__device_1abb974ec6d734001b4a0e370f292be503) |
`public midi_var_byte_func_t `[`input_catchall_callback`](#struct__midi__device_1aae0d535129d4fd650edc98eb3f7584f8) |
`public midi_no_byte_func_t `[`pre_input_process_callback`](#struct__midi__device_1aeb0bb8923d66c23d874e177dc4265754) |
`public uint8_t `[`input_buffer`](#struct__midi__device_1a7c5684857d6af4ebc4dc12da27bd6b2a) |
`public input_state_t `[`input_state`](#struct__midi__device_1a69a687d2d1c449ec15a11c07a5722e39) |
`public uint16_t `[`input_count`](#struct__midi__device_1a68dea8e7b6151e89c85c95caa612ee5d) |
`public uint8_t `[`input_queue_data`](#struct__midi__device_1ada41de021135dc423abedcbb30f366ff) |
`public `[`byteQueue_t`](undefined.md#structbyte_queue__t)` `[`input_queue`](#struct__midi__device_1a49c8538a8a02193c58e28a56eb695d8f) |
## Members
#### `public midi_var_byte_func_t `[`send_func`](#struct__midi__device_1a25d4c94b4bbccd5b98f1032b469f3ff9)
#### `public midi_three_byte_func_t `[`input_cc_callback`](#struct__midi__device_1a6da5236c1bc73877728df92d213a78d1)
#### `public midi_three_byte_func_t `[`input_noteon_callback`](#struct__midi__device_1aa10b15cf1a7fb825a5df0d2abbe34a1c)
#### `public midi_three_byte_func_t `[`input_noteoff_callback`](#struct__midi__device_1aaf290043078534d3a5a0ea4c840eba84)
#### `public midi_three_byte_func_t `[`input_aftertouch_callback`](#struct__midi__device_1acb0b4901c545cec4b28b126f2d8c315f)
#### `public midi_three_byte_func_t `[`input_pitchbend_callback`](#struct__midi__device_1a305fea672caeb996f2233bf8cd2bef18)
#### `public midi_three_byte_func_t `[`input_songposition_callback`](#struct__midi__device_1a5f3f13638b3fef3fc561ed1bf301d586)
#### `public midi_two_byte_func_t `[`input_progchange_callback`](#struct__midi__device_1adaf1da617c9a10a9dcad00ab1959d3da)
#### `public midi_two_byte_func_t `[`input_chanpressure_callback`](#struct__midi__device_1ab7ca2925c539915d43974eff604d85f7)
#### `public midi_two_byte_func_t `[`input_songselect_callback`](#struct__midi__device_1a89bed8a5a55376120cfc0a62b42f057f)
#### `public midi_two_byte_func_t `[`input_tc_quarterframe_callback`](#struct__midi__device_1ad9813e75d22e284f9f65a907d20600f0)
#### `public midi_one_byte_func_t `[`input_realtime_callback`](#struct__midi__device_1a9448eba4afb7e43650434748db3777be)
#### `public midi_one_byte_func_t `[`input_tunerequest_callback`](#struct__midi__device_1a0cb8fd53e00cf1d4202d4fa04d038e8d)
#### `public midi_sysex_func_t `[`input_sysex_callback`](#struct__midi__device_1afff9a0ce641762aaef24c1e6953ec9a2)
#### `public midi_var_byte_func_t `[`input_fallthrough_callback`](#struct__midi__device_1abb974ec6d734001b4a0e370f292be503)
#### `public midi_var_byte_func_t `[`input_catchall_callback`](#struct__midi__device_1aae0d535129d4fd650edc98eb3f7584f8)
#### `public midi_no_byte_func_t `[`pre_input_process_callback`](#struct__midi__device_1aeb0bb8923d66c23d874e177dc4265754)
#### `public uint8_t `[`input_buffer`](#struct__midi__device_1a7c5684857d6af4ebc4dc12da27bd6b2a)
#### `public input_state_t `[`input_state`](#struct__midi__device_1a69a687d2d1c449ec15a11c07a5722e39)
#### `public uint16_t `[`input_count`](#struct__midi__device_1a68dea8e7b6151e89c85c95caa612ee5d)
#### `public uint8_t `[`input_queue_data`](#struct__midi__device_1ada41de021135dc423abedcbb30f366ff)
#### `public `[`byteQueue_t`](undefined.md#structbyte_queue__t)` `[`input_queue`](#struct__midi__device_1a49c8538a8a02193c58e28a56eb695d8f)

View File

@ -1,31 +0,0 @@
# group `midi_device_setup_process`
These are method that you must use to initialize and run a device.
## Summary
Members | Descriptions
--------------------------------|---------------------------------------------
`public void `[`midi_device_init`](#group__midi__device__setup__process_1gaf29deddc94ea98a59daa0bde1aefd9d9)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device)` | Initialize a device.
`public void `[`midi_device_process`](#group__midi__device__setup__process_1gaa3d5993d0e998a1b59bbf5ab9c7b492b)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device)` | Process input data.
## Members
#### `public void `[`midi_device_init`](#group__midi__device__setup__process_1gaf29deddc94ea98a59daa0bde1aefd9d9)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device)`
Initialize a device.
You must call this before using the device in question.
#### Parameters
* `device` the device to initialize
#### `public void `[`midi_device_process`](#group__midi__device__setup__process_1gaa3d5993d0e998a1b59bbf5ab9c7b492b)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device)`
Process input data.
This method drives the input processing, you must call this method frequently if you expect to have your input callbacks called.
#### Parameters
* `device` the device to process

View File

@ -1,54 +0,0 @@
# group `midi_util`
## Summary
Members | Descriptions
--------------------------------|---------------------------------------------
`enum `[`midi_packet_length_t`](#group__midi__util_1gae29ff56aee2b430ffe53933b97e5e79e) | An enumeration of the possible packet length values.
`public bool `[`midi_is_statusbyte`](#group__midi__util_1ga12e3b42ff9cbb4b4f2bc455fc8743ee5)`(uint8_t theByte)` | Test to see if the byte given is a status byte.
`public bool `[`midi_is_realtime`](#group__midi__util_1gad2f52c363e34a8000d80c983c324e2d7)`(uint8_t theByte)` | Test to see if the byte given is a realtime message.
`public `[`midi_packet_length_t`](undefined.md#group__midi__util_1gae29ff56aee2b430ffe53933b97e5e79e)` `[`midi_packet_length`](#group__midi__util_1gaa168b43af6ae9de0debce1625e4b8175)`(uint8_t status)` | Find the length of the packet associated with the status byte given.
## Members
#### `enum `[`midi_packet_length_t`](#group__midi__util_1gae29ff56aee2b430ffe53933b97e5e79e)
Values | Descriptions
--------------------------------|---------------------------------------------
UNDEFINED |
ONE |
TWO |
THREE |
An enumeration of the possible packet length values.
#### `public bool `[`midi_is_statusbyte`](#group__midi__util_1ga12e3b42ff9cbb4b4f2bc455fc8743ee5)`(uint8_t theByte)`
Test to see if the byte given is a status byte.
#### Parameters
* `theByte` the byte to test
#### Returns
true if the byte given is a midi status byte
#### `public bool `[`midi_is_realtime`](#group__midi__util_1gad2f52c363e34a8000d80c983c324e2d7)`(uint8_t theByte)`
Test to see if the byte given is a realtime message.
#### Parameters
* `theByte` the byte to test
#### Returns
true if it is a realtime message, false otherwise
#### `public `[`midi_packet_length_t`](undefined.md#group__midi__util_1gae29ff56aee2b430ffe53933b97e5e79e)` `[`midi_packet_length`](#group__midi__util_1gaa168b43af6ae9de0debce1625e4b8175)`(uint8_t status)`
Find the length of the packet associated with the status byte given.
#### Parameters
* `status` the status byte
#### Returns
the length of the packet, will return UNDEFINED if the byte is not a status byte or if it is a sysex status byte

View File

@ -1,80 +0,0 @@
# group `programmable_button`
HID Programmable Buttons
## Summary
Members | Descriptions
--------------------------------|---------------------------------------------
`public void `[`programmable_button_clear`](#group__programmable__button_1ga79c2466a8024807d919fcd149b16607d)`(void)` | Clear the programmable button report.
`public void `[`programmable_button_add`](#group__programmable__button_1ga3626e2369fa1f6305a690462ec75198e)`(uint8_t index)` | Set the state of a button.
`public void `[`programmable_button_remove`](#group__programmable__button_1ga36c00d75b88d8f1010fd3caefa2512ac)`(uint8_t index)` | Reset the state of a button.
`public void `[`programmable_button_register`](#group__programmable__button_1gad23c98be75c13bcb83aa606f020394ba)`(uint8_t index)` | Set the state of a button, and flush the report.
`public void `[`programmable_button_unregister`](#group__programmable__button_1gabcd05104c5668a4b7516547df4a26a69)`(uint8_t index)` | Reset the state of a button, and flush the report.
`public bool `[`programmable_button_is_on`](#group__programmable__button_1ga68c867522ec5db786aa380ea6d80546b)`(uint8_t index)` | Get the state of a button.
`public void `[`programmable_button_flush`](#group__programmable__button_1ga879ab021dea8d662621487a317b42ecc)`(void)` | Send the programmable button report to the host.
`public uint32_t `[`programmable_button_get_report`](#group__programmable__button_1ga01116a2092003359d4c099743f3a3ee9)`(void)` | Get the programmable button report.
`public void `[`programmable_button_set_report`](#group__programmable__button_1gaf321be669ef841e83fe7c03fdd558795)`(uint32_t report)` | Set the programmable button report.
## Members
#### `public void `[`programmable_button_clear`](#group__programmable__button_1ga79c2466a8024807d919fcd149b16607d)`(void)`
Clear the programmable button report.
#### `public void `[`programmable_button_add`](#group__programmable__button_1ga3626e2369fa1f6305a690462ec75198e)`(uint8_t index)`
Set the state of a button.
#### Parameters
* `index` The index of the button to press, from 0 to 31.
#### `public void `[`programmable_button_remove`](#group__programmable__button_1ga36c00d75b88d8f1010fd3caefa2512ac)`(uint8_t index)`
Reset the state of a button.
#### Parameters
* `index` The index of the button to release, from 0 to 31.
#### `public void `[`programmable_button_register`](#group__programmable__button_1gad23c98be75c13bcb83aa606f020394ba)`(uint8_t index)`
Set the state of a button, and flush the report.
#### Parameters
* `index` The index of the button to press, from 0 to 31.
#### `public void `[`programmable_button_unregister`](#group__programmable__button_1gabcd05104c5668a4b7516547df4a26a69)`(uint8_t index)`
Reset the state of a button, and flush the report.
#### Parameters
* `index` The index of the button to release, from 0 to 31.
#### `public bool `[`programmable_button_is_on`](#group__programmable__button_1ga68c867522ec5db786aa380ea6d80546b)`(uint8_t index)`
Get the state of a button.
#### Parameters
* `index` The index of the button to check, from 0 to 31.
#### Returns
`true` if the button is pressed.
#### `public void `[`programmable_button_flush`](#group__programmable__button_1ga879ab021dea8d662621487a317b42ecc)`(void)`
Send the programmable button report to the host.
#### `public uint32_t `[`programmable_button_get_report`](#group__programmable__button_1ga01116a2092003359d4c099743f3a3ee9)`(void)`
Get the programmable button report.
#### Returns
The bitmask of programmable button states.
#### `public void `[`programmable_button_set_report`](#group__programmable__button_1gaf321be669ef841e83fe7c03fdd558795)`(uint32_t report)`
Set the programmable button report.
#### Parameters
* `report` A bitmask of programmable button states.

View File

@ -1,241 +0,0 @@
# group `send_functions`
These are the functions you use to send midi data through a device.
## Summary
Members | Descriptions
--------------------------------|---------------------------------------------
`public void `[`midi_send_cc`](#group__send__functions_1gaaf884811c92df405ca8fe1a00082f960)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,uint8_t chan,uint8_t num,uint8_t val)` | Send a control change message (cc) via the given device.
`public void `[`midi_send_noteon`](#group__send__functions_1ga467bcf46dbf03ec269ce565b46bc2775)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,uint8_t chan,uint8_t num,uint8_t vel)` | Send a note on message via the given device.
`public void `[`midi_send_noteoff`](#group__send__functions_1gaedb7d8805425eef5d47d57ddcb4c7a49)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,uint8_t chan,uint8_t num,uint8_t vel)` | Send a note off message via the given device.
`public void `[`midi_send_aftertouch`](#group__send__functions_1ga0014847571317a0e34b2ef46a6bc584f)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,uint8_t chan,uint8_t note_num,uint8_t amt)` | Send an after touch message via the given device.
`public void `[`midi_send_pitchbend`](#group__send__functions_1gae5a4a1e71611e7534be80af9ce3d3491)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,uint8_t chan,int16_t amt)` | Send a pitch bend message via the given device.
`public void `[`midi_send_programchange`](#group__send__functions_1ga7b15588ef25e5e1ff09c2afc3151ce86)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,uint8_t chan,uint8_t num)` | Send a program change message via the given device.
`public void `[`midi_send_channelpressure`](#group__send__functions_1gaf23e69fdf812e89c0036f51f88ab2e1b)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,uint8_t chan,uint8_t amt)` | Send a channel pressure message via the given device.
`public void `[`midi_send_clock`](#group__send__functions_1ga4e1b11a7cdb0875f6e03ce7c79c581aa)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device)` | Send a clock message via the given device.
`public void `[`midi_send_tick`](#group__send__functions_1ga2b43c7d433d940c5b907595aac947972)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device)` | Send a tick message via the given device.
`public void `[`midi_send_start`](#group__send__functions_1ga1569749a8d58ccc56789289d7c7245cc)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device)` | Send a start message via the given device.
`public void `[`midi_send_continue`](#group__send__functions_1gaed5dc29d754a27372e89ab8bc20ee120)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device)` | Send a continue message via the given device.
`public void `[`midi_send_stop`](#group__send__functions_1ga026e1a620276cb653ac501aa0d12a988)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device)` | Send a stop message via the given device.
`public void `[`midi_send_activesense`](#group__send__functions_1ga9b6e4c6ce4719d2604187b325620db37)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device)` | Send an active sense message via the given device.
`public void `[`midi_send_reset`](#group__send__functions_1ga3671e39a6d93ca9568fc493001af1b1b)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device)` | Send a reset message via the given device.
`public void `[`midi_send_tcquarterframe`](#group__send__functions_1ga5b85639910eec280bb744c934d0fd45a)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,uint8_t time)` | Send a tc quarter frame message via the given device.
`public void `[`midi_send_songposition`](#group__send__functions_1gab1c9eeef3b57a8cd2e6128d18e85eb7f)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,uint16_t pos)` | Send a song position message via the given device.
`public void `[`midi_send_songselect`](#group__send__functions_1ga42de7838ba70d949af9a50f9facc3c50)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,uint8_t song)` | Send a song select message via the given device.
`public void `[`midi_send_tunerequest`](#group__send__functions_1ga8db6c7e04d48e4d2266dd59118ca0656)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device)` | Send a tune request message via the given device.
`public void `[`midi_send_byte`](#group__send__functions_1ga857e85eb90b288385642d4d991e09881)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,uint8_t b)` | Send a byte via the given device.
`public void `[`midi_send_data`](#group__send__functions_1ga36e2f2e45369d911b76969361679054b)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,uint16_t count,uint8_t byte0,uint8_t byte1,uint8_t byte2)` | Send up to 3 bytes of data.
`public void `[`midi_send_array`](#group__send__functions_1ga245243cb1da18d2cea18d4b18d846ead)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,uint16_t count,uint8_t * array)` | Send an array of formatted midi data.
## Members
#### `public void `[`midi_send_cc`](#group__send__functions_1gaaf884811c92df405ca8fe1a00082f960)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,uint8_t chan,uint8_t num,uint8_t val)`
Send a control change message (cc) via the given device.
#### Parameters
* `device` the device to use for sending
* `chan` the channel to send on, 0-15
* `num` the cc num
* `val` the value of that cc num
#### `public void `[`midi_send_noteon`](#group__send__functions_1ga467bcf46dbf03ec269ce565b46bc2775)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,uint8_t chan,uint8_t num,uint8_t vel)`
Send a note on message via the given device.
#### Parameters
* `device` the device to use for sending
* `chan` the channel to send on, 0-15
* `num` the note number
* `vel` the note velocity
#### `public void `[`midi_send_noteoff`](#group__send__functions_1gaedb7d8805425eef5d47d57ddcb4c7a49)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,uint8_t chan,uint8_t num,uint8_t vel)`
Send a note off message via the given device.
#### Parameters
* `device` the device to use for sending
* `chan` the channel to send on, 0-15
* `num` the note number
* `vel` the note velocity
#### `public void `[`midi_send_aftertouch`](#group__send__functions_1ga0014847571317a0e34b2ef46a6bc584f)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,uint8_t chan,uint8_t note_num,uint8_t amt)`
Send an after touch message via the given device.
#### Parameters
* `device` the device to use for sending
* `chan` the channel to send on, 0-15
* `note_num` the note number
* `amt` the after touch amount
#### `public void `[`midi_send_pitchbend`](#group__send__functions_1gae5a4a1e71611e7534be80af9ce3d3491)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,uint8_t chan,int16_t amt)`
Send a pitch bend message via the given device.
#### Parameters
* `device` the device to use for sending
* `chan` the channel to send on, 0-15
* `amt` the bend amount range: -8192..8191, 0 means no bend
#### `public void `[`midi_send_programchange`](#group__send__functions_1ga7b15588ef25e5e1ff09c2afc3151ce86)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,uint8_t chan,uint8_t num)`
Send a program change message via the given device.
#### Parameters
* `device` the device to use for sending
* `chan` the channel to send on, 0-15
* `num` the program to change to
#### `public void `[`midi_send_channelpressure`](#group__send__functions_1gaf23e69fdf812e89c0036f51f88ab2e1b)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,uint8_t chan,uint8_t amt)`
Send a channel pressure message via the given device.
#### Parameters
* `device` the device to use for sending
* `chan` the channel to send on, 0-15
* `amt` the amount of channel pressure
#### `public void `[`midi_send_clock`](#group__send__functions_1ga4e1b11a7cdb0875f6e03ce7c79c581aa)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device)`
Send a clock message via the given device.
#### Parameters
* `device` the device to use for sending
#### `public void `[`midi_send_tick`](#group__send__functions_1ga2b43c7d433d940c5b907595aac947972)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device)`
Send a tick message via the given device.
#### Parameters
* `device` the device to use for sending
#### `public void `[`midi_send_start`](#group__send__functions_1ga1569749a8d58ccc56789289d7c7245cc)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device)`
Send a start message via the given device.
#### Parameters
* `device` the device to use for sending
#### `public void `[`midi_send_continue`](#group__send__functions_1gaed5dc29d754a27372e89ab8bc20ee120)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device)`
Send a continue message via the given device.
#### Parameters
* `device` the device to use for sending
#### `public void `[`midi_send_stop`](#group__send__functions_1ga026e1a620276cb653ac501aa0d12a988)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device)`
Send a stop message via the given device.
#### Parameters
* `device` the device to use for sending
#### `public void `[`midi_send_activesense`](#group__send__functions_1ga9b6e4c6ce4719d2604187b325620db37)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device)`
Send an active sense message via the given device.
#### Parameters
* `device` the device to use for sending
#### `public void `[`midi_send_reset`](#group__send__functions_1ga3671e39a6d93ca9568fc493001af1b1b)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device)`
Send a reset message via the given device.
#### Parameters
* `device` the device to use for sending
#### `public void `[`midi_send_tcquarterframe`](#group__send__functions_1ga5b85639910eec280bb744c934d0fd45a)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,uint8_t time)`
Send a tc quarter frame message via the given device.
#### Parameters
* `device` the device to use for sending
* `time` the time of this quarter frame, range 0..16383
#### `public void `[`midi_send_songposition`](#group__send__functions_1gab1c9eeef3b57a8cd2e6128d18e85eb7f)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,uint16_t pos)`
Send a song position message via the given device.
#### Parameters
* `device` the device to use for sending
* `pos` the song position
#### `public void `[`midi_send_songselect`](#group__send__functions_1ga42de7838ba70d949af9a50f9facc3c50)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,uint8_t song)`
Send a song select message via the given device.
#### Parameters
* `device` the device to use for sending
* `song` the song to select
#### `public void `[`midi_send_tunerequest`](#group__send__functions_1ga8db6c7e04d48e4d2266dd59118ca0656)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device)`
Send a tune request message via the given device.
#### Parameters
* `device` the device to use for sending
#### `public void `[`midi_send_byte`](#group__send__functions_1ga857e85eb90b288385642d4d991e09881)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,uint8_t b)`
Send a byte via the given device.
This is a generic method for sending data via the given midi device. This would be useful for sending sysex data or messages that are not implemented in this API, if there are any. Please contact the author if you find some so we can add them.
#### Parameters
* `device` the device to use for sending
* `b` the byte to send
#### `public void `[`midi_send_data`](#group__send__functions_1ga36e2f2e45369d911b76969361679054b)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,uint16_t count,uint8_t byte0,uint8_t byte1,uint8_t byte2)`
Send up to 3 bytes of data.
% 4 is applied to count so that you can use this to pass sysex through
#### Parameters
* `device` the device to use for sending
* `count` the count of bytes to send, %4 is applied
* `byte0` the first byte
* `byte1` the second byte, ignored if cnt % 4 != 2
* `byte2` the third byte, ignored if cnt % 4 != 3
#### `public void `[`midi_send_array`](#group__send__functions_1ga245243cb1da18d2cea18d4b18d846ead)`(`[`MidiDevice`](midi_device.md#struct__midi__device)` * device,uint16_t count,uint8_t * array)`
Send an array of formatted midi data.
Can be used for sysex.
#### Parameters
* `device` the device to use for sending
* `count` the count of bytes to send
* `array` the array of bytes

View File

@ -1,125 +0,0 @@
# group `send_string`
Send String API. These functions allow you to create macros by typing out sequences of keystrokes.
## Summary
Members | Descriptions
--------------------------------|---------------------------------------------
`define `[`KCLUT_ENTRY`](#group__send__string_1ga6995d9923416063c9b99f5acd0e91ed7) |
`define `[`SEND_STRING`](#group__send__string_1gae83e787cdd7e9cf4587a0e685ffd98f5) | Shortcut macro for send_string_with_delay_P(PSTR(string), 0).
`define `[`SEND_STRING_DELAY`](#group__send__string_1ga6cac47ec59654132634c70986202dc42) | Shortcut macro for send_string_with_delay_P(PSTR(string), interval).
`public void `[`send_string`](#group__send__string_1gac5e380e2be08c7a8bee8532cc72d8b30)`(const char * string)` | Type out a string of ASCII characters.
`public void `[`send_string_with_delay`](#group__send__string_1gaa1d72394f1e4d90a4d789935f947fde6)`(const char * string,uint8_t interval)` | Type out a string of ASCII characters, with a delay between each character.
`public void `[`send_char`](#group__send__string_1gaac462f52e01a0434a3d0d427156f7ba1)`(char ascii_code)` | Type out an ASCII character.
`public void `[`send_dword`](#group__send__string_1gacf74558e7014b43355e61fa7104ffa8c)`(uint32_t number)` | Type out an eight digit (unsigned 32-bit) hexadecimal value.
`public void `[`send_word`](#group__send__string_1ga9ec68473d4b590a48b9d52e35f8aecf3)`(uint16_t number)` | Type out a four digit (unsigned 16-bit) hexadecimal value.
`public void `[`send_byte`](#group__send__string_1ga015a1b20ba56c7debe2b4edfed5cb815)`(uint8_t number)` | Type out a two digit (8-bit) hexadecimal value.
`public void `[`send_nibble`](#group__send__string_1ga34ef35dbde792a44bdb299d10c826675)`(uint8_t number)` | Type out a single hexadecimal digit.
`public void `[`tap_random_base64`](#group__send__string_1ga7cb02fdb6dd1d7babd67df4312a2dab9)`(void)` | Type a pseudorandom character from the set `A-Z`, `a-z`, `0-9`, `+` and `/`.
`public void `[`send_string_P`](#group__send__string_1ga9e99e584dce970f6fe04a63b71cddf4d)`(const char * string)` | Type out a PROGMEM string of ASCII characters.
`public void `[`send_string_with_delay_P`](#group__send__string_1ga305251111b4454c681027c5bf1c8b60c)`(const char * string,uint8_t interval)` | Type out a PROGMEM string of ASCII characters, with a delay between each character.
## Members
#### `define `[`KCLUT_ENTRY`](#group__send__string_1ga6995d9923416063c9b99f5acd0e91ed7)
#### `define `[`SEND_STRING`](#group__send__string_1gae83e787cdd7e9cf4587a0e685ffd98f5)
Shortcut macro for send_string_with_delay_P(PSTR(string), 0).
On ARM devices, this define evaluates to send_string_with_delay(string, 0).
#### `define `[`SEND_STRING_DELAY`](#group__send__string_1ga6cac47ec59654132634c70986202dc42)
Shortcut macro for send_string_with_delay_P(PSTR(string), interval).
On ARM devices, this define evaluates to send_string_with_delay(string, interval).
#### `public void `[`send_string`](#group__send__string_1gac5e380e2be08c7a8bee8532cc72d8b30)`(const char * string)`
Type out a string of ASCII characters.
This function simply calls `send_string_with_delay(string, 0)`.
Most keycodes from the basic keycode range are also supported by way of a special sequence - see `[send_string_keycodes.h](#send__string__keycodes_8h_source)`.
#### Parameters
* `string` The string to type out.
#### `public void `[`send_string_with_delay`](#group__send__string_1gaa1d72394f1e4d90a4d789935f947fde6)`(const char * string,uint8_t interval)`
Type out a string of ASCII characters, with a delay between each character.
#### Parameters
* `string` The string to type out.
* `interval` The amount of time, in milliseconds, to wait before typing the next character.
#### `public void `[`send_char`](#group__send__string_1gaac462f52e01a0434a3d0d427156f7ba1)`(char ascii_code)`
Type out an ASCII character.
#### Parameters
* `ascii_code` The character to type.
#### `public void `[`send_dword`](#group__send__string_1gacf74558e7014b43355e61fa7104ffa8c)`(uint32_t number)`
Type out an eight digit (unsigned 32-bit) hexadecimal value.
The format is `[0-9a-f]{8}`, eg. `00000000` through `ffffffff`.
#### Parameters
* `number` The value to type, from 0 to 4,294,967,295.
#### `public void `[`send_word`](#group__send__string_1ga9ec68473d4b590a48b9d52e35f8aecf3)`(uint16_t number)`
Type out a four digit (unsigned 16-bit) hexadecimal value.
The format is `[0-9a-f]{4}`, eg. `0000` through `ffff`.
#### Parameters
* `number` The value to type, from 0 to 65,535.
#### `public void `[`send_byte`](#group__send__string_1ga015a1b20ba56c7debe2b4edfed5cb815)`(uint8_t number)`
Type out a two digit (8-bit) hexadecimal value.
The format is `[0-9a-f]{2}`, eg. `00` through `ff`.
#### Parameters
* `number` The value to type, from 0 to 255.
#### `public void `[`send_nibble`](#group__send__string_1ga34ef35dbde792a44bdb299d10c826675)`(uint8_t number)`
Type out a single hexadecimal digit.
The format is `[0-9a-f]{1}`, eg. `0` through `f`.
#### Parameters
* `number` The value to type, from 0 to 15.
#### `public void `[`tap_random_base64`](#group__send__string_1ga7cb02fdb6dd1d7babd67df4312a2dab9)`(void)`
Type a pseudorandom character from the set `A-Z`, `a-z`, `0-9`, `+` and `/`.
#### `public void `[`send_string_P`](#group__send__string_1ga9e99e584dce970f6fe04a63b71cddf4d)`(const char * string)`
Type out a PROGMEM string of ASCII characters.
On ARM devices, this function is simply an alias for send_string_with_delay(string, 0).
#### Parameters
* `string` The string to type out.
#### `public void `[`send_string_with_delay_P`](#group__send__string_1ga305251111b4454c681027c5bf1c8b60c)`(const char * string,uint8_t interval)`
Type out a PROGMEM string of ASCII characters, with a delay between each character.
On ARM devices, this function is simply an alias for send_string_with_delay(string, interval).
#### Parameters
* `string` The string to type out.
* `interval` The amount of time, in milliseconds, to wait before typing the next character.

View File

@ -1,61 +0,0 @@
# group `sysex_tools`
## Summary
Members | Descriptions
--------------------------------|---------------------------------------------
`public uint16_t `[`sysex_encoded_length`](#group__sysex__tools_1ga061e5607030412d6e62e2390d8013f0a)`(uint16_t decoded_length)` | Compute the length of a message after it is encoded.
`public uint16_t `[`sysex_decoded_length`](#group__sysex__tools_1ga121fc227d3acc1c0ea08c9a5c26fa3b0)`(uint16_t encoded_length)` | Compute the length of a message after it is decoded.
`public uint16_t `[`sysex_encode`](#group__sysex__tools_1ga54d77f8d32f92a6f329daefa2b314742)`(uint8_t * encoded,const uint8_t * source,uint16_t length)` | Encode data so that it can be transmitted safely in a sysex message.
`public uint16_t `[`sysex_decode`](#group__sysex__tools_1gaaad1d9ba2d5eca709a0ab4ba40662229)`(uint8_t * decoded,const uint8_t * source,uint16_t length)` | Decode encoded data.
## Members
#### `public uint16_t `[`sysex_encoded_length`](#group__sysex__tools_1ga061e5607030412d6e62e2390d8013f0a)`(uint16_t decoded_length)`
Compute the length of a message after it is encoded.
#### Parameters
* `decoded_length` The length, in bytes, of the message to encode.
#### Returns
The length, in bytes, of the message after encodeing.
#### `public uint16_t `[`sysex_decoded_length`](#group__sysex__tools_1ga121fc227d3acc1c0ea08c9a5c26fa3b0)`(uint16_t encoded_length)`
Compute the length of a message after it is decoded.
#### Parameters
* `encoded_length` The length, in bytes, of the encoded message.
#### Returns
The length, in bytes, of the message after it is decoded.
#### `public uint16_t `[`sysex_encode`](#group__sysex__tools_1ga54d77f8d32f92a6f329daefa2b314742)`(uint8_t * encoded,const uint8_t * source,uint16_t length)`
Encode data so that it can be transmitted safely in a sysex message.
#### Parameters
* `encoded` The output data buffer, must be at least sysex_encoded_length(length) bytes long.
* `source` The input buffer of data to be encoded.
* `length` The number of bytes from the input buffer to encode.
#### Returns
number of bytes encoded.
#### `public uint16_t `[`sysex_decode`](#group__sysex__tools_1gaaad1d9ba2d5eca709a0ab4ba40662229)`(uint8_t * decoded,const uint8_t * source,uint16_t length)`
Decode encoded data.
#### Parameters
* `decoded` The output data buffer, must be at least sysex_decoded_length(length) bytes long.
* `source` The input buffer of data to be decoded.
* `length` The number of bytes from the input buffer to decode.
#### Returns
number of bytes decoded.

View File

@ -335,13 +335,10 @@ const sidebars = {
], ],
}, },
{ {
Internals: [ type: 'link',
{ label: 'Doxygen',
type: "autogenerated", href: '/doxygen/'
dirName: "internals", }
},
],
},
], ],
}, },
], ],

View File

View File

@ -9,8 +9,8 @@ from milc import cli
DOCS_PATH = Path('docs/') DOCS_PATH = Path('docs/')
BUILD_PATH = Path('.build/') BUILD_PATH = Path('.build/')
BUILD_DOCS_PATH = BUILD_PATH / 'docs' BUILD_DOCS_PATH = BUILD_PATH / 'docs'
DOXYGEN_PATH = BUILD_PATH / 'doxygen' DOXYGEN_PATH = BUILD_DOCS_PATH / 'static' / 'doxygen'
MOXYGEN_PATH = BUILD_DOCS_PATH / 'internals' # MOXYGEN_PATH = BUILD_DOCS_PATH / 'internals'
@cli.subcommand('Build QMK documentation.', hidden=False if cli.config.user.developer else True) @cli.subcommand('Build QMK documentation.', hidden=False if cli.config.user.developer else True)
@ -26,8 +26,9 @@ def generate_docs(cli):
if DOXYGEN_PATH.exists(): if DOXYGEN_PATH.exists():
shutil.rmtree(DOXYGEN_PATH) shutil.rmtree(DOXYGEN_PATH)
# ignore node_modules when we're testing locally cli.log.info('Copying %s folder to %s', DOCS_PATH, BUILD_DOCS_PATH)
shutil.copytree(DOCS_PATH, BUILD_DOCS_PATH, ignore=shutil.ignore_patterns("node_modules")) # ignore .gitignore'd folders when we're testing locally
shutil.copytree(DOCS_PATH, BUILD_DOCS_PATH, ignore=shutil.ignore_patterns("node_modules", "build", ".docusaurus"))
# When not verbose we want to hide all output # When not verbose we want to hide all output
args = { args = {
@ -36,10 +37,14 @@ def generate_docs(cli):
'stdin': DEVNULL, 'stdin': DEVNULL,
} }
cli.log.info('Generating docs...') cli.log.info('Generating doxygen docs at %s', DOXYGEN_PATH)
# Generate internal docs
cli.run(['doxygen', 'Doxyfile'], **args) cli.run(['doxygen', 'Doxyfile'], **args)
cli.run(['moxygen', '-q', '-g', '-o', MOXYGEN_PATH / '%s.md', DOXYGEN_PATH / 'xml'], **args) # cli.run(['moxygen', '-q', '-g', '-o', MOXYGEN_PATH / '%s.md', DOXYGEN_PATH / 'xml'], **args)
cli.log.info('Installing docusaurus dependencies')
cli.run(['npm', 'ci', '--prefix', BUILD_DOCS_PATH], **args)
cli.log.info('Building docusarus docs')
cli.run(['npm', 'run', '--prefix', BUILD_DOCS_PATH, 'build'], **args)
cli.log.info('Successfully generated docs to %s.', BUILD_DOCS_PATH) cli.log.info('Successfully generated docs to %s.', BUILD_DOCS_PATH)