Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
Это архивный репозиторий. Вы можете его клонировать или просматривать файлы, но не вносить изменения или открывать задачи/запросы на слияние.

Squashed 'tmk_core/' changes from ee8c5ba..d5c5ac6 d5c5ac6 Merge branch 'develop' 5957682 Merge branch 'hotfix-mediakey' a478c62 Merge branch 'hotfix-vusb' cccebfe Merge branch 'njbair-docfix' 0aaab57 Clean up wording in keymap example dc8bbc3 Clarify layer precedence 9e0b4c1 clarify layer documentation 915eb48 core: Fix media/consumer keys 88f90f3 Fix for VUSB configuration 3e290cd Fix including board.mk in chibios.mk 32c69e0 Merge branch 'newapi' into develop c9a56f9 Merge remote-tracking branch 'flabbergast/chibios' into develop 01e33ea Fix chibios and mbed common.mk for hook.c bea79d9 hook: Change func name of usb events 3e97536 hook: Change file and func names(*_hook -> hook_*) c286d8c Merge pull request #10 from fredizzimo/chibios-contrib2 062d74e Update ChibiOS instructions d47150f Add support for new version of ChibiOS and Contrib 62b5401 Chibios: disable LTO (link-time optimisation). c64e9aa hooks: Fix for LUFA 54e68b0 hooks: Remove led_restore_hook 325c09d Chibios: make the default bootloader_jump redefinable (weak). 078c722 Chibios: fix STM32_BOOTLOADER_ADDRESS name. e73cfe5 hooks: Fix for keyboard LED update e6120c5 Implement basic hooks. 7c370e9 Chibios: Update the main chibios README. 7f0198d Chibios: implement sleep LED for STM32. afef9b4 Fix hard-coded path of CHIBIOS 95c5b19 Merge pull request #7 from fredizzimo/sysvsize 27128a8 Sysv format for ChibiOS arm-none-eabi-size d4b8e68 core: Fix chibios user compile options b85d462 Merge branch 'chibios' of https://github.com/flabbergast/tmk_keyboard into flabbergast_chibios de41aa1 core: Fix ps2_mouse.c debug print d79d925 Removed duplicate debug message code and surrounded it with IFDEF as needed 8f28589 Chibios: Revert common.mk change (fix AVR linking problem). ec9eff2 Chibios: cleanup usb_main code. 28c4665 Chibios: Fix a HardFault bug (wait after start). git-subtree-dir: tmk_core git-subtree-split: d5c5ac63e60dfc6da6661a21bd968b4d577a27d5
8 лет назад
11 лет назад
11 лет назад
11 лет назад
11 лет назад
11 лет назад
11 лет назад
11 лет назад
11 лет назад
11 лет назад
11 лет назад
Squashed 'tmk_core/' changes from ee8c5ba..d5c5ac6 d5c5ac6 Merge branch 'develop' 5957682 Merge branch 'hotfix-mediakey' a478c62 Merge branch 'hotfix-vusb' cccebfe Merge branch 'njbair-docfix' 0aaab57 Clean up wording in keymap example dc8bbc3 Clarify layer precedence 9e0b4c1 clarify layer documentation 915eb48 core: Fix media/consumer keys 88f90f3 Fix for VUSB configuration 3e290cd Fix including board.mk in chibios.mk 32c69e0 Merge branch 'newapi' into develop c9a56f9 Merge remote-tracking branch 'flabbergast/chibios' into develop 01e33ea Fix chibios and mbed common.mk for hook.c bea79d9 hook: Change func name of usb events 3e97536 hook: Change file and func names(*_hook -> hook_*) c286d8c Merge pull request #10 from fredizzimo/chibios-contrib2 062d74e Update ChibiOS instructions d47150f Add support for new version of ChibiOS and Contrib 62b5401 Chibios: disable LTO (link-time optimisation). c64e9aa hooks: Fix for LUFA 54e68b0 hooks: Remove led_restore_hook 325c09d Chibios: make the default bootloader_jump redefinable (weak). 078c722 Chibios: fix STM32_BOOTLOADER_ADDRESS name. e73cfe5 hooks: Fix for keyboard LED update e6120c5 Implement basic hooks. 7c370e9 Chibios: Update the main chibios README. 7f0198d Chibios: implement sleep LED for STM32. afef9b4 Fix hard-coded path of CHIBIOS 95c5b19 Merge pull request #7 from fredizzimo/sysvsize 27128a8 Sysv format for ChibiOS arm-none-eabi-size d4b8e68 core: Fix chibios user compile options b85d462 Merge branch 'chibios' of https://github.com/flabbergast/tmk_keyboard into flabbergast_chibios de41aa1 core: Fix ps2_mouse.c debug print d79d925 Removed duplicate debug message code and surrounded it with IFDEF as needed 8f28589 Chibios: Revert common.mk change (fix AVR linking problem). ec9eff2 Chibios: cleanup usb_main code. 28c4665 Chibios: Fix a HardFault bug (wait after start). git-subtree-dir: tmk_core git-subtree-split: d5c5ac63e60dfc6da6661a21bd968b4d577a27d5
8 лет назад
11 лет назад
11 лет назад
11 лет назад
11 лет назад
11 лет назад
11 лет назад
11 лет назад
11 лет назад
11 лет назад
11 лет назад
11 лет назад
11 лет назад
11 лет назад
11 лет назад
11 лет назад
11 лет назад
11 лет назад
11 лет назад
10 лет назад
8 лет назад
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. #include <stdint.h>
  2. #include "keyboard.h"
  3. #include "action.h"
  4. #include "util.h"
  5. #include "action_layer.h"
  6. #include "hook.h"
  7. #ifdef DEBUG_ACTION
  8. #include "debug.h"
  9. #else
  10. #include "nodebug.h"
  11. #endif
  12. /*
  13. * Default Layer State
  14. */
  15. uint32_t default_layer_state = 0;
  16. static void default_layer_state_set(uint32_t state)
  17. {
  18. debug("default_layer_state: ");
  19. default_layer_debug(); debug(" to ");
  20. default_layer_state = state;
  21. hook_default_layer_change(default_layer_state);
  22. default_layer_debug(); debug("\n");
  23. #ifdef LEDMAP_ENABLE
  24. default_layer_state_change(state);
  25. #endif
  26. clear_keyboard_but_mods(); // To avoid stuck keys
  27. }
  28. void default_layer_debug(void)
  29. {
  30. dprintf("%08lX(%u)", default_layer_state, biton32(default_layer_state));
  31. }
  32. void default_layer_set(uint32_t state)
  33. {
  34. default_layer_state_set(state);
  35. }
  36. #ifndef NO_ACTION_LAYER
  37. void default_layer_or(uint32_t state)
  38. {
  39. default_layer_state_set(default_layer_state | state);
  40. }
  41. void default_layer_and(uint32_t state)
  42. {
  43. default_layer_state_set(default_layer_state & state);
  44. }
  45. void default_layer_xor(uint32_t state)
  46. {
  47. default_layer_state_set(default_layer_state ^ state);
  48. }
  49. #endif
  50. #ifndef NO_ACTION_LAYER
  51. /*
  52. * Keymap Layer State
  53. */
  54. uint32_t layer_state = 0;
  55. static void layer_state_set(uint32_t state)
  56. {
  57. dprint("layer_state: ");
  58. layer_debug(); dprint(" to ");
  59. layer_state = state;
  60. hook_layer_change(layer_state);
  61. layer_debug(); dprintln();
  62. #ifdef LEDMAP_ENABLE
  63. layer_state_change(state);
  64. #endif
  65. clear_keyboard_but_mods(); // To avoid stuck keys
  66. }
  67. void layer_clear(void)
  68. {
  69. layer_state_set(0);
  70. }
  71. void layer_move(uint8_t layer)
  72. {
  73. layer_state_set(1UL<<layer);
  74. }
  75. void layer_on(uint8_t layer)
  76. {
  77. layer_state_set(layer_state | (1UL<<layer));
  78. }
  79. void layer_off(uint8_t layer)
  80. {
  81. layer_state_set(layer_state & ~(1UL<<layer));
  82. }
  83. void layer_invert(uint8_t layer)
  84. {
  85. layer_state_set(layer_state ^ (1UL<<layer));
  86. }
  87. void layer_or(uint32_t state)
  88. {
  89. layer_state_set(layer_state | state);
  90. }
  91. void layer_and(uint32_t state)
  92. {
  93. layer_state_set(layer_state & state);
  94. }
  95. void layer_xor(uint32_t state)
  96. {
  97. layer_state_set(layer_state ^ state);
  98. }
  99. void layer_debug(void)
  100. {
  101. dprintf("%08lX(%u)", layer_state, biton32(layer_state));
  102. }
  103. #endif
  104. action_t layer_switch_get_action(keypos_t key)
  105. {
  106. action_t action = { .code = ACTION_TRANSPARENT };
  107. #ifndef NO_ACTION_LAYER
  108. uint32_t layers = layer_state | default_layer_state;
  109. /* check top layer first */
  110. for (int8_t i = 31; i >= 0; i--) {
  111. if (layers & (1UL<<i)) {
  112. action = action_for_key(i, key);
  113. if (action.code != ACTION_TRANSPARENT) {
  114. return action;
  115. }
  116. }
  117. }
  118. /* fall back to layer 0 */
  119. action = action_for_key(0, key);
  120. return action;
  121. #else
  122. action = action_for_key(biton32(default_layer_state), key);
  123. return action;
  124. #endif
  125. }