ableos/sysdata/libraries/intouch/src/lib.hb

40 lines
863 B
Plaintext
Raw Normal View History

2024-11-03 19:38:40 -06:00
stn := @use("../../stn/src/lib.hb");
.{log, buffer, memory} := stn
keycodes := @use("keycodes.hb")
2024-11-03 19:38:40 -06:00
events := @use("events.hb");
.{KeyEvent, MouseEvent} := events
2024-09-17 19:26:37 -05:00
2024-11-03 19:38:40 -06:00
recieve_key_event := fn(): ?KeyEvent {
mem_page := memory.request_page(1)
buf_id := buffer.search("PS/2 Keyboard\0")
2024-11-03 19:53:09 -06:00
// Read out of the keyboard buffer here
buffer.recv(KeyEvent, buf_id, mem_page)
key_event := KeyEvent.(0, 0, 2)
// return key_event
2024-11-03 19:53:09 -06:00
2024-11-03 19:38:40 -06:00
return null
2024-09-17 19:26:37 -05:00
}
recieve_mouse_event := fn(): ?^MouseEvent {
mem_page := memory.request_page(1)
buf_id := buffer.search("PS/2 Mouse\0")
// Read out of the Mouse buffer here
buffer.recv(MouseEvent, buf_id, mem_page)
if *mem_page == 0 {
// log.info("Haha\0")
} else {
log.info("Mouse event recieved in horizon.\0")
dx := *mem_page
dy := *mem_page + 1
mevent := MouseEvent.(dx, dy, 0, 0, 0)
return &mevent
}
2024-11-03 19:38:40 -06:00
return null
}