[Mammoth/Voyageurs] Add shift modifiers for scancodes.

This commit is contained in:
Drew Galbraith 2024-02-24 15:25:00 -08:00
parent a9351b222d
commit 844f55c7d0
8 changed files with 65 additions and 107 deletions

View file

@ -20,6 +20,11 @@ glcr::ErrorCode PortClient::WriteByte(uint8_t byte) {
ZPortSend(port_cap_, 1, &byte, 0, nullptr));
}
glcr::ErrorCode PortClient::Write(uint16_t data) {
return static_cast<glcr::ErrorCode>(
ZPortSend(port_cap_, 2, &data, 0, nullptr));
}
glcr::ErrorCode PortClient::Write(uint64_t data) {
return static_cast<glcr::ErrorCode>(
ZPortSend(port_cap_, 8, &data, 0, nullptr));

View file

@ -19,6 +19,7 @@ class PortClient {
glcr::ErrorCode WriteString(glcr::String str, z_cap_t cap);
glcr::ErrorCode WriteByte(uint8_t byte);
glcr::ErrorCode Write(uint16_t data);
glcr::ErrorCode Write(uint64_t data);
z_cap_t cap() { return port_cap_; }

View file

@ -55,4 +55,12 @@ glcr::ErrorOr<char> PortServer::RecvChar() {
return byte;
}
glcr::ErrorOr<uint16_t> PortServer::RecvUint16() {
uint64_t bytes = 2;
uint64_t caps = 0;
uint16_t data;
RET_ERR(ZPortRecv(port_cap_, &bytes, &data, &caps, nullptr));
return data;
}
} // namespace mmth

View file

@ -19,6 +19,7 @@ class PortServer {
glcr::ErrorCode PollForIntCap(uint64_t* msg, uint64_t* cap);
glcr::ErrorOr<char> RecvChar();
glcr::ErrorOr<uint16_t> RecvUint16();
z_cap_t cap() { return port_cap_; }