mirror of
https://github.com/Atmosphere-NX/Atmosphere.git
synced 2025-07-05 09:02:15 +02:00
Allow multiple override keys
This commit is contained in:
parent
afae7eaa11
commit
ab3fd5fcdb
@ -221,7 +221,9 @@ void ContentManagement::SetCreatedTitle(u64 tid) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static OverrideKey ParseOverrideKey(const char *value) {
|
static OverrideKey ParseOverrideKey(const char *value) {
|
||||||
OverrideKey cfg;
|
OverrideKey cfg = {
|
||||||
|
.key_combination = 0
|
||||||
|
};
|
||||||
|
|
||||||
/* Parse on by default. */
|
/* Parse on by default. */
|
||||||
if (value[0] == '!') {
|
if (value[0] == '!') {
|
||||||
@ -232,44 +234,65 @@ static OverrideKey ParseOverrideKey(const char *value) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Parse key combination. */
|
/* Parse key combination. */
|
||||||
if (strcasecmp(value, "A") == 0) {
|
while (value[0] != '\0') {
|
||||||
cfg.key_combination = KEY_A;
|
if (strncasecmp(value, "A", 1) == 0) {
|
||||||
} else if (strcasecmp(value, "B") == 0) {
|
cfg.key_combination |= KEY_A;
|
||||||
cfg.key_combination = KEY_B;
|
value += 1;
|
||||||
} else if (strcasecmp(value, "X") == 0) {
|
} else if (strncasecmp(value, "B", 1) == 0) {
|
||||||
cfg.key_combination = KEY_X;
|
cfg.key_combination |= KEY_B;
|
||||||
} else if (strcasecmp(value, "Y") == 0) {
|
value += 1;
|
||||||
cfg.key_combination = KEY_Y;
|
} else if (strncasecmp(value, "X", 1) == 0) {
|
||||||
} else if (strcasecmp(value, "LS") == 0) {
|
cfg.key_combination |= KEY_X;
|
||||||
cfg.key_combination = KEY_LSTICK;
|
value += 1;
|
||||||
} else if (strcasecmp(value, "RS") == 0) {
|
} else if (strncasecmp(value, "Y", 1) == 0) {
|
||||||
cfg.key_combination = KEY_RSTICK;
|
cfg.key_combination |= KEY_Y;
|
||||||
} else if (strcasecmp(value, "L") == 0) {
|
value += 1;
|
||||||
cfg.key_combination = KEY_L;
|
} else if (strncasecmp(value, "LS", 2) == 0) {
|
||||||
} else if (strcasecmp(value, "R") == 0) {
|
cfg.key_combination |= KEY_LSTICK;
|
||||||
cfg.key_combination = KEY_R;
|
value += 2;
|
||||||
} else if (strcasecmp(value, "ZL") == 0) {
|
} else if (strncasecmp(value, "RS", 2) == 0) {
|
||||||
cfg.key_combination = KEY_ZL;
|
cfg.key_combination |= KEY_RSTICK;
|
||||||
} else if (strcasecmp(value, "ZR") == 0) {
|
value += 2;
|
||||||
cfg.key_combination = KEY_ZR;
|
} else if (strncasecmp(value, "L", 1) == 0) {
|
||||||
} else if (strcasecmp(value, "PLUS") == 0) {
|
cfg.key_combination |= KEY_L;
|
||||||
cfg.key_combination = KEY_PLUS;
|
value += 1;
|
||||||
} else if (strcasecmp(value, "MINUS") == 0) {
|
} else if (strncasecmp(value, "R", 1) == 0) {
|
||||||
cfg.key_combination = KEY_MINUS;
|
cfg.key_combination |= KEY_R;
|
||||||
} else if (strcasecmp(value, "DLEFT") == 0) {
|
value += 1;
|
||||||
cfg.key_combination = KEY_DLEFT;
|
} else if (strncasecmp(value, "ZL", 2) == 0) {
|
||||||
} else if (strcasecmp(value, "DUP") == 0) {
|
cfg.key_combination |= KEY_ZL;
|
||||||
cfg.key_combination = KEY_DUP;
|
value += 2;
|
||||||
} else if (strcasecmp(value, "DRIGHT") == 0) {
|
} else if (strncasecmp(value, "ZR", 2) == 0) {
|
||||||
cfg.key_combination = KEY_DRIGHT;
|
cfg.key_combination |= KEY_ZR;
|
||||||
} else if (strcasecmp(value, "DDOWN") == 0) {
|
value += 2;
|
||||||
cfg.key_combination = KEY_DDOWN;
|
} else if (strncasecmp(value, "PLUS", 4) == 0) {
|
||||||
} else if (strcasecmp(value, "SL") == 0) {
|
cfg.key_combination |= KEY_PLUS;
|
||||||
cfg.key_combination = KEY_SL;
|
value += 4;
|
||||||
} else if (strcasecmp(value, "SR") == 0) {
|
} else if (strncasecmp(value, "MINUS", 5) == 0) {
|
||||||
cfg.key_combination = KEY_SR;
|
cfg.key_combination |= KEY_MINUS;
|
||||||
} else {
|
value += 5;
|
||||||
cfg.key_combination = 0;
|
} else if (strncasecmp(value, "DLEFT", 5) == 0) {
|
||||||
|
cfg.key_combination |= KEY_DLEFT;
|
||||||
|
value += 5;
|
||||||
|
} else if (strncasecmp(value, "DUP", 3) == 0) {
|
||||||
|
cfg.key_combination |= KEY_DUP;
|
||||||
|
value += 3;
|
||||||
|
} else if (strncasecmp(value, "DRIGHT", 6) == 0) {
|
||||||
|
cfg.key_combination |= KEY_DRIGHT;
|
||||||
|
value += 6;
|
||||||
|
} else if (strncasecmp(value, "DDOWN", 5) == 0) {
|
||||||
|
cfg.key_combination |= KEY_DDOWN;
|
||||||
|
value += 5;
|
||||||
|
} else if (strncasecmp(value, "SL", 2) == 0) {
|
||||||
|
cfg.key_combination |= KEY_SL;
|
||||||
|
value += 2;
|
||||||
|
} else if (strncasecmp(value, "SR", 2) == 0) {
|
||||||
|
cfg.key_combination |= KEY_SR;
|
||||||
|
value += 2;
|
||||||
|
} else {
|
||||||
|
cfg.key_combination = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return cfg;
|
return cfg;
|
||||||
|
Loading…
Reference in New Issue
Block a user