aboutsummaryrefslogtreecommitdiffstats
path: root/src/split.c
diff options
context:
space:
mode:
authorLouis Burda <quent.burda@gmail.com>2022-12-19 00:33:54 +0100
committerLouis Burda <quent.burda@gmail.com>2022-12-19 00:41:30 +0100
commite4783bbcc4214416befceb53f6af9ebdfb35ba86 (patch)
tree71ae9268017cb3f0b7dabe1e9016970fb137872c /src/split.c
parent8e60c68eac5dbe749c80d1b42160ad1f7de42200 (diff)
downloadsxkbd-e4783bbcc4214416befceb53f6af9ebdfb35ba86.tar.gz
sxkbd-e4783bbcc4214416befceb53f6af9ebdfb35ba86.zip
Add more keys to keymap and add split role detection
Diffstat (limited to 'src/split.c')
-rw-r--r--src/split.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/split.c b/src/split.c
index 1a0c803..52c53d8 100644
--- a/src/split.c
+++ b/src/split.c
@@ -64,6 +64,8 @@ static uint uart_rx_sm_offset;
static uint32_t halfmat;
static bool scan_pending = false;
+int split_role;
+
void
uart_tx_sm_init(void)
{
@@ -218,14 +220,14 @@ handle_cmd(uint8_t cmd)
switch (cmd) {
case CMD_SCAN_KEYMAT_REQ:
- if (SPLIT_ROLE != SLAVE) {
+ if (split_role != SLAVE) {
WARN("Got SCAN_KEYMAT_REQ as master");
break;
}
scan_pending = true;
return;
case CMD_SCAN_KEYMAT_RESP:
- if (SPLIT_ROLE != MASTER) {
+ if (split_role != MASTER) {
WARN("Got SCAN_KEYMAT_RESP as slave");
break;
}
@@ -234,7 +236,7 @@ handle_cmd(uint8_t cmd)
scan_pending = false;
return;
case CMD_STDIO_PUTS:
- if (SPLIT_ROLE != MASTER) {
+ if (split_role != MASTER) {
WARN("Got STDIO_PUTS as slave");
break;
}
@@ -260,6 +262,11 @@ void
split_init(void)
{
uart_full_init();
+#ifdef SPLIT_ROLE
+ split_role = SPLIT_ROLE;
+#else
+ split_role = SLAVE;
+#endif
}
void
@@ -268,7 +275,7 @@ split_task(void)
uint32_t start_ms;
uint8_t cmd;
- if (SPLIT_ROLE == MASTER) {
+ if (split_role == MASTER) {
scan_pending = true;
cmd = CMD_SCAN_KEYMAT_REQ;
ASSERT(uart_send(&cmd, 1) == 1);