Merge remote-tracking branch 'upstream/master' into develop
commit
a44abeb99a
|
@ -19,7 +19,6 @@
|
||||||
|
|
||||||
# QMK-specific
|
# QMK-specific
|
||||||
api_data/v1
|
api_data/v1
|
||||||
doxygen/
|
|
||||||
quantum/version.h
|
quantum/version.h
|
||||||
*.bin
|
*.bin
|
||||||
*.eep
|
*.eep
|
||||||
|
|
6
Doxyfile
6
Doxyfile
|
@ -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 = doxygen
|
OUTPUT_DIRECTORY = .build/doxygen
|
||||||
ALLOW_UNICODE_NAMES = NO
|
ALLOW_UNICODE_NAMES = NO
|
||||||
OUTPUT_LANGUAGE = English
|
OUTPUT_LANGUAGE = English
|
||||||
BRIEF_MEMBER_DESC = YES
|
BRIEF_MEMBER_DESC = YES
|
||||||
|
@ -145,7 +145,7 @@ FILE_PATTERNS = *.c \
|
||||||
RECURSIVE = YES
|
RECURSIVE = YES
|
||||||
EXCLUDE =
|
EXCLUDE =
|
||||||
EXCLUDE_SYMLINKS = NO
|
EXCLUDE_SYMLINKS = NO
|
||||||
EXCLUDE_PATTERNS =
|
EXCLUDE_PATTERNS = */protocol/arm_atsam/*
|
||||||
EXCLUDE_SYMBOLS =
|
EXCLUDE_SYMBOLS =
|
||||||
EXAMPLE_PATH =
|
EXAMPLE_PATH =
|
||||||
EXAMPLE_PATTERNS = *
|
EXAMPLE_PATTERNS = *
|
||||||
|
@ -209,7 +209,7 @@ EXPAND_ONLY_PREDEF = NO
|
||||||
SEARCH_INCLUDES = YES
|
SEARCH_INCLUDES = YES
|
||||||
INCLUDE_PATH =
|
INCLUDE_PATH =
|
||||||
INCLUDE_FILE_PATTERNS =
|
INCLUDE_FILE_PATTERNS =
|
||||||
PREDEFINED =
|
PREDEFINED = __DOXYGEN__ PROGMEM
|
||||||
EXPAND_AS_DEFINED =
|
EXPAND_AS_DEFINED =
|
||||||
SKIP_FUNCTION_MACROS = YES
|
SKIP_FUNCTION_MACROS = YES
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,9 @@ from subprocess import DEVNULL
|
||||||
from milc import cli
|
from milc import cli
|
||||||
|
|
||||||
DOCS_PATH = Path('docs/')
|
DOCS_PATH = Path('docs/')
|
||||||
BUILD_PATH = Path('.build/docs/')
|
BUILD_PATH = Path('.build/')
|
||||||
|
BUILD_DOCS_PATH = BUILD_PATH / 'docs'
|
||||||
|
DOXYGEN_PATH = BUILD_PATH / 'doxygen'
|
||||||
|
|
||||||
|
|
||||||
@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)
|
||||||
|
@ -18,10 +20,12 @@ def generate_docs(cli):
|
||||||
* [ ] Add a real build step... something static docs
|
* [ ] Add a real build step... something static docs
|
||||||
"""
|
"""
|
||||||
|
|
||||||
if BUILD_PATH.exists():
|
if BUILD_DOCS_PATH.exists():
|
||||||
shutil.rmtree(BUILD_PATH)
|
shutil.rmtree(BUILD_DOCS_PATH)
|
||||||
|
if DOXYGEN_PATH.exists():
|
||||||
|
shutil.rmtree(DOXYGEN_PATH)
|
||||||
|
|
||||||
shutil.copytree(DOCS_PATH, BUILD_PATH)
|
shutil.copytree(DOCS_PATH, BUILD_DOCS_PATH)
|
||||||
|
|
||||||
# When not verbose we want to hide all output
|
# When not verbose we want to hide all output
|
||||||
args = {
|
args = {
|
||||||
|
@ -34,6 +38,6 @@ def generate_docs(cli):
|
||||||
|
|
||||||
# Generate internal docs
|
# Generate internal docs
|
||||||
cli.run(['doxygen', 'Doxyfile'], **args)
|
cli.run(['doxygen', 'Doxyfile'], **args)
|
||||||
cli.run(['moxygen', '-q', '-a', '-g', '-o', BUILD_PATH / 'internals_%s.md', 'doxygen/xml'], **args)
|
cli.run(['moxygen', '-q', '-g', '-o', BUILD_DOCS_PATH / 'internals_%s.md', DOXYGEN_PATH / 'xml'], **args)
|
||||||
|
|
||||||
cli.log.info('Successfully generated internal docs to %s.', BUILD_PATH)
|
cli.log.info('Successfully generated internal docs to %s.', BUILD_DOCS_PATH)
|
||||||
|
|
|
@ -59,6 +59,10 @@ static uint8_t thisHand, thatHand;
|
||||||
static uint8_t encoder_value[NUMBER_OF_ENCODERS] = {0};
|
static uint8_t encoder_value[NUMBER_OF_ENCODERS] = {0};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
__attribute__((weak)) void encoder_wait_pullup_charge(void) {
|
||||||
|
wait_us(100);
|
||||||
|
}
|
||||||
|
|
||||||
__attribute__((weak)) bool encoder_update_user(uint8_t index, bool clockwise) {
|
__attribute__((weak)) bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -88,7 +92,9 @@ void encoder_init(void) {
|
||||||
for (int i = 0; i < NUMBER_OF_ENCODERS; i++) {
|
for (int i = 0; i < NUMBER_OF_ENCODERS; i++) {
|
||||||
setPinInputHigh(encoders_pad_a[i]);
|
setPinInputHigh(encoders_pad_a[i]);
|
||||||
setPinInputHigh(encoders_pad_b[i]);
|
setPinInputHigh(encoders_pad_b[i]);
|
||||||
|
}
|
||||||
|
encoder_wait_pullup_charge();
|
||||||
|
for (int i = 0; i < NUMBER_OF_ENCODERS; i++) {
|
||||||
encoder_state[i] = (readPin(encoders_pad_a[i]) << 0) | (readPin(encoders_pad_b[i]) << 1);
|
encoder_state[i] = (readPin(encoders_pad_a[i]) << 0) | (readPin(encoders_pad_b[i]) << 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue