oled_layers.c 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. /*
  2. Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.com>
  3. This program is free software: you can redistribute it and/or modify
  4. it under the terms of the GNU General Public License as published by
  5. the Free Software Foundation, either version 2 of the License, or
  6. (at your option) any later version.
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. GNU General Public License for more details.
  11. You should have received a copy of the GNU General Public License
  12. along with this program. If not, see <http://www.gnu.org/licenses/>.
  13. */
  14. #include "ericgebhart.h"
  15. #include <stdio.h>
  16. #ifdef OLED_CUSTOM_ENABLE
  17. void oled_render_default_layer_state(void) {
  18. //oled_write_P(PSTR("Layout: "), false);
  19. uint16_t layer = get_highest_layer(default_layer_state);
  20. char layer_str[8];
  21. snprintf(layer_str, sizeof(layer_str), "%u ",layer);
  22. oled_write(layer_str , false);
  23. switch (layer) {
  24. #ifdef DVORAK_LAYER_ENABLE
  25. WRITE_STR_LAYER(_DVORAK, "Dvorak")
  26. #endif
  27. #ifdef DVORAK_RLC_IU_LAYER_ENABLE
  28. WRITE_STR_LAYER(_DVORAK_RLC_IU_, "Dvorak-rlc")
  29. #endif
  30. #ifdef BOO_LAYER_ENABLE
  31. WRITE_STR_LAYER(_BOO, "Boo")
  32. #endif
  33. #ifdef CAPEWELL_DVORAK_LAYER_ENABLE
  34. WRITE_STR_LAYER(_CAPEWELL_DVORAK, "Capewell Dvorak")
  35. #endif
  36. #ifdef AHEI_LAYER_ENABLE
  37. WRITE_STR_LAYER(_AHEI, "Ahei")
  38. #endif
  39. #ifdef QWERTY_LAYER_ENABLE
  40. WRITE_STR_LAYER(_QWERTY, "Qwerty")
  41. #endif
  42. #ifdef WORKMAN_LAYER_ENABLE
  43. WRITE_STR_LAYER(_WORKMAN, "Workman")
  44. #endif
  45. #ifdef NORMAN_LAYER_ENABLE
  46. WRITE_STR_LAYER(_NORMAN, "Norman")
  47. #endif
  48. #ifdef COLEMAK_LAYER_ENABLE
  49. WRITE_STR_LAYER(_COLEMAK, "Colemak")
  50. #endif
  51. #ifdef COLEMAK_DH_LAYER_ENABLE
  52. WRITE_STR_LAYER(_COLEMAK_DH, "Colemak")
  53. #endif
  54. #ifdef HALMAK_LAYER_ENABLE
  55. WRITE_STR_LAYER(_HALMAK, "Halmak")
  56. #endif
  57. #ifdef MINIMAK_LAYER_ENABLE
  58. WRITE_STR_LAYER(_MINIMAK, "Minimak")
  59. #endif
  60. #ifdef MINIMAK_8_LAYER_ENABLE
  61. WRITE_STR_LAYER(_MINIMAK_8, "Minimak 8")
  62. #endif
  63. #ifdef MINIMAK_12_LAYER_ENABLE
  64. WRITE_STR_LAYER(_MINIMAK_12, "Minimak 12")
  65. #endif
  66. #ifdef BEAKL15_LAYER_ENABLE
  67. WRITE_STR_LAYER(_BEAKL15, "Beakl")
  68. #endif
  69. #ifdef BEAKL19_LAYER_ENABLE
  70. WRITE_STR_LAYER(_BEAKL19, "Beakl19")
  71. #endif
  72. #ifdef BEAKL27_LAYER_ENABLE
  73. WRITE_STR_LAYER(_BEAKL27, "Beakl27")
  74. #endif
  75. #ifdef BEAKLWI_LAYER_ENABLE
  76. WRITE_STR_LAYER(_BEAKLWI, "BeaklWi")
  77. #endif
  78. #ifdef CARPALX_QFMLWY_LAYER_ENABLE
  79. WRITE_STR_LAYER(_CARPALX_QFMLWY, "Carpalx qfmlwy")
  80. #endif
  81. #ifdef CARPALX_QGMLWB_LAYER_ENABLE
  82. WRITE_STR_LAYER(_CARPALX_QGMLWB, "Carpalx qgmlwb")
  83. #endif
  84. #ifdef CARPALX_QGMLWY_LAYER_ENABLE
  85. WRITE_STR_LAYER(_CARPALX_QGMLWY, "Carpalx qgmlwy")
  86. #endif
  87. #ifdef HD_NEU_LAYER_ENABLE
  88. WRITE_STR_LAYER(_HD_NEU, "HD Neu")
  89. #endif
  90. #ifdef HD_NEU_NARROW_LAYER_ENABLE
  91. WRITE_STR_LAYER(_HD_NEU_NARROW, "HD Neu N")
  92. #endif
  93. #ifdef HD_TITANIUM_LAYER_ENABLE
  94. WRITE_STR_LAYER(_HD_TITANIUM, "HD Titanium")
  95. #endif
  96. #ifdef HD_GOLD_LAYER_ENABLE
  97. WRITE_STR_LAYER(_HD_GOLD, "HD Gold")
  98. #endif
  99. #ifdef HD_SILVER_LAYER_ENABLE
  100. WRITE_STR_LAYER(_HD_SILVER, "HD Silver")
  101. #endif
  102. #ifdef HD_PLATINUM_LAYER_ENABLE
  103. WRITE_STR_LAYER(_HD_PLATINUM, "HD Platinum")
  104. #endif
  105. #ifdef HD_BRONZE_LAYER_ENABLE
  106. WRITE_STR_LAYER(_HD_BRONZE, "HD Bronze")
  107. #endif
  108. #ifdef HD_ELAN_LAYER_ENABLE
  109. WRITE_STR_LAYER(_HD_ELAN, "HD Elan")
  110. #endif
  111. #ifdef HD_DASH_LAYER_ENABLE
  112. WRITE_STR_LAYER(_HD_DASH, "HD Dash")
  113. #endif
  114. #ifdef HD_REF_LAYER_ENABLE
  115. WRITE_STR_LAYER(_HD_REF, "HD Ref")
  116. #endif
  117. #ifdef MTGAP_LAYER_ENABLE
  118. WRITE_STR_LAYER(_MTGAP, "Mtgap")
  119. #endif
  120. #ifdef CTGAP_LAYER_ENABLE
  121. WRITE_STR_LAYER(_CTGAP, "Ctgap")
  122. #endif
  123. #ifdef APT_LAYER_ENABLE
  124. WRITE_STR_LAYER(_APT, "Apt")
  125. #endif
  126. #ifdef CANARY_LAYER_ENABLE
  127. WRITE_STR_LAYER(_CANARY, "Canary")
  128. #endif
  129. #ifdef MALTRON_LAYER_ENABLE
  130. WRITE_STR_LAYER(_MALTRON, "Maltron")
  131. #endif
  132. #ifdef EUCALYN_LAYER_ENABLE
  133. WRITE_STR_LAYER(_EUCALYN, "Eucalyn")
  134. #endif
  135. #ifdef RSTHD_LAYER_ENABLE
  136. WRITE_STR_LAYER(_RSTHD, "Rsthd")
  137. #endif
  138. #ifdef HAND_UP_LAYER_ENABLE
  139. WRITE_STR_LAYER(_HANDS_UP, "Hands up")
  140. #endif
  141. #ifdef WHITE_LAYER_ENABLE
  142. WRITE_STR_LAYER(_WHITE, "White")
  143. #endif
  144. #ifdef ISRT_LAYER_ENABLE
  145. WRITE_STR_LAYER(_ISRT, "Isrt")
  146. #endif
  147. #ifdef SOUL_LAYER_ENABLE
  148. WRITE_STR_LAYER(_SOUL, "Soul")
  149. #endif
  150. #ifdef NIRO_LAYER_ENABLE
  151. WRITE_STR_LAYER(_NIRO, "Niro")
  152. #endif
  153. #ifdef ASSET_LAYER_ENABLE
  154. WRITE_STR_LAYER(_ASSET, "Asset")
  155. #endif
  156. #ifdef WHORF_LAYER_ENABLE
  157. WRITE_STR_LAYER(_WHORF, "Whorf")
  158. #endif
  159. #ifdef WHORF6_LAYER_ENABLE
  160. WRITE_STR_LAYER(_WHORF6, "Whorf 6")
  161. #endif
  162. #ifdef OPTIMOT_LAYER_ENABLE
  163. WRITE_STR_LAYER(_OPTIMOT, "Optimot")
  164. #endif
  165. #ifdef OPTIMOT_COMPACT_LAYER_ENABLE
  166. WRITE_STR_LAYER(_OPTIMOT_COMPACT, "Optimot")
  167. #endif
  168. #ifdef BEAKL19bis_LAYER_ENABLE
  169. WRITE_STR_LAYER(_BEAKL19bis, "Beakl19bis")
  170. #endif
  171. #ifdef BEPO_LAYER_ENABLE // Bepo only works on bepo.
  172. WRITE_STR_LAYER(_BEPO, "Bepo")
  173. #endif
  174. }
  175. }
  176. void oled_render_layer_state(void) {
  177. uint16_t layer = get_highest_layer(layer_state);
  178. char layer_str[8];
  179. snprintf(layer_str, sizeof(layer_str), "%u ",layer);
  180. oled_write_P(PSTR(""), false);
  181. if (layer > 0)
  182. oled_write(layer_str , false);
  183. switch (layer) {
  184. // language variant layers.
  185. #ifdef TOPROWS_LAYER_ENABLE
  186. WRITE_STR_LAYER(_TOPROWS, "TopRows");
  187. #endif
  188. #ifdef SYMBOL_LAYER_ENABLE
  189. WRITE_STR_LAYER(_SYMB, "Symbols");
  190. #endif
  191. #ifdef KEYPAD_LAYER_ENABLE
  192. WRITE_STR_LAYER(_KEYPAD, "Keypad");
  193. #endif
  194. // single case, BP or no suffix.
  195. #ifdef ACCENTS_MORTE_LAYER_ENABLE
  196. WRITE_STR_LAYER(_ACCENTS_MORTE, "Accents Morte");
  197. #endif
  198. #ifdef ACCENTS_LAYER_ENABLE
  199. WRITE_STR_LAYER(_ACCENTS, "Accents");
  200. #endif
  201. #ifdef MORTE_LAYER_ENABLE
  202. WRITE_STR_LAYER(_MORTE, "Morte");
  203. #endif
  204. // language agnostic layers.
  205. #ifdef NAV_LAYER_ENABLE
  206. WRITE_STR_CASE(_NAV, "Navigation");
  207. WRITE_STR_CASE(_NAVm, "Mouse");
  208. #endif
  209. #ifdef MEDIA_LAYER_ENABLE
  210. WRITE_STR_CASE(_MEDIA, "Media");
  211. #endif
  212. #ifdef FUNC_LAYER_ENABLE
  213. WRITE_STR_CASE(_FUN, "Func");
  214. #endif
  215. WRITE_STR_CASE(_LAYERS, "Layers");
  216. #ifdef RGB_LAYER_ENABLE
  217. WRITE_STR_CASE(_RGB, "RGB");
  218. #endif
  219. #ifdef ADJUST_LAYER_ENABLE
  220. WRITE_STR_CASE(_ADJUST, "Adjust");
  221. #endif
  222. #ifdef COMBO_REF_LAYER_ENABLE
  223. WRITE_STR_CASE(_COMBO_REF, "COMBO Ref");
  224. #endif
  225. }
  226. }
  227. #endif