fixed missing cfg protocol handlers (led, grab)

pull/67/head
John Tsiombikas 2022-03-01 01:34:12 +02:00
rodzic 04a883da90
commit 4505d67bb7
2 zmienionych plików z 15 dodań i 0 usunięć

Wyświetl plik

@ -51,6 +51,8 @@ enum {
REQ_GCFG_KBMAP, /* get keyboard mapping: Q[0] bidx - R[0] bidx R[1] keysym R[6] status */
REQ_SCFG_LED, /* set LED state: Q[0] state - R[6] status */
REQ_GCFG_LED, /* get LED state: R[0] state R[6] status */
REQ_SCFG_GRAB, /* set device grabbing: Q[0] state - R[6] status */
REQ_GCFG_GRAB, /* get device grabbing: R[0] state R[6] status */
REQ_SCFG_SERDEV, /* set serial device path: Q[0] length, followed by <length> bytes - R[6] status */
REQ_GCFG_SERDEV, /* get serial device path: R[0] length R[6] status, followed by <length> bytes */
/* TODO ... more */

Wyświetl plik

@ -492,6 +492,9 @@ static int handle_request(struct client *c, struct reqresp *req)
case REQ_SCFG_LED:
cfg.led = req->data[0] ? 1 : 0;
if((dev = get_client_device(c)) && dev->set_led) {
dev->set_led(dev, cfg.led);
}
sendresp(c, req, 0);
break;
@ -500,6 +503,16 @@ static int handle_request(struct client *c, struct reqresp *req)
sendresp(c, req, 0);
break;
case REQ_SCFG_GRAB:
cfg.grab_device = req->data[0] ? 1 : 0;
sendresp(c, req, 0);
break;
case REQ_GCFG_GRAB:
req->data[0] = cfg.grab_device;
sendresp(c, req, 0);
break;
default:
logmsg(LOG_WARNING, "invalid client request: %04xh\n", (unsigned int)req->type);
sendresp(c, req, -1);