switches.c (1746B)
- #include <stdio.h>
- #include <string.h>
- #include "switches.h"
- static const char *BRAND_NAMES[] = {
- "Kailh",
- "Kailh Low Profile Choc",
- "Gateron",
- "Cherry MX",
- "Cherry ML",
- "Outemu",
- "Greetech",
- "Varmilo",
- "MOD",
- "Hako"
- };
- static const char *COLOR_NAMES[] = {
- "",
- "White",
- "Black",
- "Blue",
- "Red",
- "Yellow",
- "Brown",
- "Green",
- "Clear",
- "Silver",
- "Nature White",
- "Grey",
- "Jade",
- "Navy",
- "Burnt Orange",
- "Pale Blue",
- "Dark Yellow",
- "Gold",
- "Chocolate White",
- "Burgundy",
- "Purple",
- "Light Green",
- "True",
- "Berry",
- "Plum",
- "Sage",
- "Violet",
- "L",
- "M",
- "H",
- "SH"
- };
- static const char *VARIANT_NAMES[] = {
- "",
- "BOX",
- "BOX Thick",
- "BOX Heavy",
- "Silent",
- "Tactile",
- "Linear",
- "Speed",
- "Speed Heavy",
- "Speed Thick Click",
- "Pro",
- "Pro Heavy",
- "Royal",
- "Thick Click",
- "Heavy"
- };
- const char *brand_name(struct mechswitch ms) {
- return BRAND_NAMES[ms.brand - 1];
- }
- const char *variant_name(struct mechswitch ms) {
- return VARIANT_NAMES[ms.variant];
- }
- const char *color_name(struct mechswitch ms) {
- return COLOR_NAMES[ms.color];
- }
- void switch_name(struct mechswitch ms, char *buf) {
- const char *v_name = variant_name(ms);
- const char *c_name = color_name(ms);
- snprintf(buf, MAX_SWITCH_NAME_LENGTH, "%s", brand_name(ms));
- strncat(buf, " ", MAX_SWITCH_NAME_LENGTH - strlen(buf));
- if (strlen(v_name) > 0) {
- strncat(buf, v_name, MAX_SWITCH_NAME_LENGTH - strlen(buf));
- strncat(buf, " ", MAX_SWITCH_NAME_LENGTH - strlen(buf));
- }
- if (strlen(c_name) > 0) {
- strncat(buf, c_name, MAX_SWITCH_NAME_LENGTH - strlen(buf));
- }
- }
- int bitfieldtoi(struct mechswitch ms) {
- return ((ms.brand << 9) | (ms.variant << 5) | ms.color);
- }