reorg: move input-protocol to library/protocol + direct import

input-protocol -> library/protocol/input/input-protocol.zig. Its five
consumers (usb-hid keyboard/mouse, ps2 keyboard/mouse, the input service) now
import the module directly and alias it input_protocol, replacing the
runtime.input_protocol re-export (deleted) and the inconsistent local `protocol`
aliases. runtime.input (the client) still imports the module by name.

zig build + test green; input, acpi-ps2, usb-hid pass.
This commit is contained in:
Daniel Samson
2026-07-22 20:54:53 +01:00
parent 25cc4d610e
commit 07c901c18c
8 changed files with 37 additions and 34 deletions
+9 -9
View File
@@ -21,7 +21,7 @@ const ps2 = @import("ps2-library.zig");
const scancode = @import("scancode.zig");
const device = runtime.device;
const ipc = runtime.ipc;
const protocol = runtime.input_protocol;
const input_protocol = @import("input-protocol");
/// Look up the ps2-bus service, retrying while the bus (which spawned us before
/// registering) is still coming up.
@@ -46,7 +46,7 @@ fn characterFor(layout: *const xkb.Layout, usage: u8, modifiers: scancode.Modifi
.control = modifiers.control,
});
if (mapping.character) |character| return character;
return switch (@as(protocol.Keycode, @enumFromInt(usage))) {
return switch (@as(input_protocol.Keycode, @enumFromInt(usage))) {
.enter, .keypad_enter => '\n',
.tab => '\t',
.backspace => 0x08,
@@ -58,9 +58,9 @@ fn characterFor(layout: *const xkb.Layout, usage: u8, modifiers: scancode.Modifi
/// The input protocol's modifier word for a snapshot.
fn modifierWord(modifiers: scancode.ModifierSnapshot) u32 {
var word: u32 = 0;
if (modifiers.shift) word |= protocol.modifier_shift;
if (modifiers.control) word |= protocol.modifier_control;
if (modifiers.alt) word |= protocol.modifier_alt;
if (modifiers.shift) word |= input_protocol.modifier_shift;
if (modifiers.control) word |= input_protocol.modifier_control;
if (modifiers.alt) word |= input_protocol.modifier_alt;
return word;
}
@@ -133,7 +133,7 @@ pub fn main(init: runtime.process.Init) void {
switch (transition.action) {
.pressed => {
_ = source.publishKeyboardEvent(.{
.kind = @intFromEnum(protocol.EventKind.key_down),
.kind = @intFromEnum(input_protocol.EventKind.key_down),
.keycode = key.usage,
.character = 0,
.modifiers = modifiers,
@@ -141,7 +141,7 @@ pub fn main(init: runtime.process.Init) void {
const character = characterFor(layout, key.usage, transition.modifiers);
if (character != 0) {
_ = source.publishKeyboardEvent(.{
.kind = @intFromEnum(protocol.EventKind.key_press),
.kind = @intFromEnum(input_protocol.EventKind.key_press),
.keycode = key.usage,
.character = character,
.modifiers = modifiers,
@@ -154,7 +154,7 @@ pub fn main(init: runtime.process.Init) void {
const character = characterFor(layout, key.usage, transition.modifiers);
if (character != 0) {
_ = source.publishKeyboardEvent(.{
.kind = @intFromEnum(protocol.EventKind.key_press),
.kind = @intFromEnum(input_protocol.EventKind.key_press),
.keycode = key.usage,
.character = character,
.modifiers = modifiers,
@@ -163,7 +163,7 @@ pub fn main(init: runtime.process.Init) void {
},
.released => {
_ = source.publishKeyboardEvent(.{
.kind = @intFromEnum(protocol.EventKind.key_up),
.kind = @intFromEnum(input_protocol.EventKind.key_up),
.keycode = key.usage,
.character = 0,
.modifiers = modifiers,
+7 -7
View File
@@ -20,7 +20,7 @@ const ps2 = @import("ps2-library.zig");
const mouse_packet = @import("mouse-packet.zig");
const device = runtime.device;
const ipc = runtime.ipc;
const protocol = runtime.input_protocol;
const input_protocol = @import("input-protocol");
/// Look up the ps2-bus service, retrying while the bus (which spawned us before
/// registering) is still coming up.
@@ -36,9 +36,9 @@ fn lookupBus() ?ipc.Handle {
/// The protocol's pressed-button bitmask for a packet.
fn buttonMask(packet: mouse_packet.Packet) u32 {
var mask: u32 = 0;
if (packet.left) mask |= protocol.mouse_button_left;
if (packet.right) mask |= protocol.mouse_button_right;
if (packet.middle) mask |= protocol.mouse_button_middle;
if (packet.left) mask |= input_protocol.mouse_button_left;
if (packet.right) mask |= input_protocol.mouse_button_right;
if (packet.middle) mask |= input_protocol.mouse_button_middle;
return mask;
}
@@ -104,9 +104,9 @@ pub fn main(init: runtime.process.Init) void {
// A button transition per changed button, carrying the new whole mask.
const changed = buttons ^ new_buttons;
for ([_]u32{ protocol.mouse_button_left, protocol.mouse_button_right, protocol.mouse_button_middle }) |button| {
for ([_]u32{ input_protocol.mouse_button_left, input_protocol.mouse_button_right, input_protocol.mouse_button_middle }) |button| {
if (changed & button == 0) continue;
const kind: protocol.MouseEventKind = if (new_buttons & button != 0) .button_down else .button_up;
const kind: input_protocol.MouseEventKind = if (new_buttons & button != 0) .button_down else .button_up;
_ = source.publishMouseEvent(.{
.kind = @intFromEnum(kind),
.button = button,
@@ -121,7 +121,7 @@ pub fn main(init: runtime.process.Init) void {
if (packet.dx != 0 or packet.dy != 0) {
_ = source.publishMouseEvent(.{
.kind = @intFromEnum(protocol.MouseEventKind.motion),
.kind = @intFromEnum(input_protocol.MouseEventKind.motion),
.button = 0,
.dx = packet.dx,
.dy = packet.dy,
+1 -1
View File
@@ -22,7 +22,7 @@ const xkb = @import("xkeyboard-config");
const hid = @import("hid-report.zig");
const ipc = runtime.ipc;
const process = runtime.process;
const input_protocol = runtime.input_protocol;
const input_protocol = @import("input-protocol");
// The modifier state a character lookup needs — derived from the report's
// modifier byte, plus the driver-tracked caps-lock toggle.
+1 -1
View File
@@ -17,7 +17,7 @@ const usb_abi = @import("usb-abi");
const hid = @import("hid-report.zig");
const ipc = runtime.ipc;
const process = runtime.process;
const input_protocol = runtime.input_protocol;
const input_protocol = @import("input-protocol");
// The current pressed-button bitmask in input-protocol terms.
fn buttonMask(buttons: u8) u32 {