logo

qmk_firmware

custom branch of QMK firmware git clone https://anongit.hacktivis.me/git/qmk_firmware.git

switches.c (1746B)


  1. #include <stdio.h>
  2. #include <string.h>
  3. #include "switches.h"
  4. static const char *BRAND_NAMES[] = {
  5. "Kailh",
  6. "Kailh Low Profile Choc",
  7. "Gateron",
  8. "Cherry MX",
  9. "Cherry ML",
  10. "Outemu",
  11. "Greetech",
  12. "Varmilo",
  13. "MOD",
  14. "Hako"
  15. };
  16. static const char *COLOR_NAMES[] = {
  17. "",
  18. "White",
  19. "Black",
  20. "Blue",
  21. "Red",
  22. "Yellow",
  23. "Brown",
  24. "Green",
  25. "Clear",
  26. "Silver",
  27. "Nature White",
  28. "Grey",
  29. "Jade",
  30. "Navy",
  31. "Burnt Orange",
  32. "Pale Blue",
  33. "Dark Yellow",
  34. "Gold",
  35. "Chocolate White",
  36. "Burgundy",
  37. "Purple",
  38. "Light Green",
  39. "True",
  40. "Berry",
  41. "Plum",
  42. "Sage",
  43. "Violet",
  44. "L",
  45. "M",
  46. "H",
  47. "SH"
  48. };
  49. static const char *VARIANT_NAMES[] = {
  50. "",
  51. "BOX",
  52. "BOX Thick",
  53. "BOX Heavy",
  54. "Silent",
  55. "Tactile",
  56. "Linear",
  57. "Speed",
  58. "Speed Heavy",
  59. "Speed Thick Click",
  60. "Pro",
  61. "Pro Heavy",
  62. "Royal",
  63. "Thick Click",
  64. "Heavy"
  65. };
  66. const char *brand_name(struct mechswitch ms) {
  67. return BRAND_NAMES[ms.brand - 1];
  68. }
  69. const char *variant_name(struct mechswitch ms) {
  70. return VARIANT_NAMES[ms.variant];
  71. }
  72. const char *color_name(struct mechswitch ms) {
  73. return COLOR_NAMES[ms.color];
  74. }
  75. void switch_name(struct mechswitch ms, char *buf) {
  76. const char *v_name = variant_name(ms);
  77. const char *c_name = color_name(ms);
  78. snprintf(buf, MAX_SWITCH_NAME_LENGTH, "%s", brand_name(ms));
  79. strncat(buf, " ", MAX_SWITCH_NAME_LENGTH - strlen(buf));
  80. if (strlen(v_name) > 0) {
  81. strncat(buf, v_name, MAX_SWITCH_NAME_LENGTH - strlen(buf));
  82. strncat(buf, " ", MAX_SWITCH_NAME_LENGTH - strlen(buf));
  83. }
  84. if (strlen(c_name) > 0) {
  85. strncat(buf, c_name, MAX_SWITCH_NAME_LENGTH - strlen(buf));
  86. }
  87. }
  88. int bitfieldtoi(struct mechswitch ms) {
  89. return ((ms.brand << 9) | (ms.variant << 5) | ms.color);
  90. }