summaryrefslogtreecommitdiff
path: root/lib/Wayland/Protocols/RiverXkbBindingsV1/Interface.lean
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Wayland/Protocols/RiverXkbBindingsV1/Interface.lean')
-rw-r--r--lib/Wayland/Protocols/RiverXkbBindingsV1/Interface.lean139
1 files changed, 139 insertions, 0 deletions
diff --git a/lib/Wayland/Protocols/RiverXkbBindingsV1/Interface.lean b/lib/Wayland/Protocols/RiverXkbBindingsV1/Interface.lean
new file mode 100644
index 0000000..1c4e3ac
--- /dev/null
+++ b/lib/Wayland/Protocols/RiverXkbBindingsV1/Interface.lean
@@ -0,0 +1,139 @@
+import Wayland.Display
+import Wayland.Protocols.RiverXkbBindingsV1.Header
+
+namespace Wayland.Protocols
+
+inductive RiverXkbBindingsV1.Event where
+
+inductive RiverXkbBindingV1.Event where
+ | pressed
+ | released
+ | stopRepeat
+
+inductive RiverXkbBindingsSeatV1.Event where
+ | ateUnboundKey
+
+
+instance instInterfaceRiverXkbBindingsV1 : Interface RiverXkbBindingsV1.name where
+ event := RiverXkbBindingsV1.Event
+ version := 2
+ requests := #[
+ {
+ name := "destroy"
+ args := #[]
+ since := 1
+ isDestructor := true
+ },
+ {
+ name := "get_xkb_binding"
+ args := #[.object .notNull (.some "river_seat_v1"), .newID (.some "river_xkb_binding_v1"), .uint, .uint]
+ since := 1
+ isDestructor := false
+ },
+ {
+ name := "get_seat"
+ args := #[.newID (.some "river_xkb_bindings_seat_v1"), .object .notNull (.some "river_seat_v1")]
+ since := 2
+ isDestructor := false
+ },
+ ]
+ events := #[
+ ]
+ demarshalEvent
+ | _ => throw s!"Received invalid opcode"
+
+instance instInterfaceRiverXkbBindingV1 : Interface RiverXkbBindingV1.name where
+ event := RiverXkbBindingV1.Event
+ version := 2
+ requests := #[
+ {
+ name := "destroy"
+ args := #[]
+ since := 1
+ isDestructor := true
+ },
+ {
+ name := "set_layout_override"
+ args := #[.uint]
+ since := 1
+ isDestructor := false
+ },
+ {
+ name := "enable"
+ args := #[]
+ since := 1
+ isDestructor := false
+ },
+ {
+ name := "disable"
+ args := #[]
+ since := 1
+ isDestructor := false
+ },
+ ]
+ events := #[
+ {
+ name := "pressed"
+ args := #[]
+ since := 1
+ isDestructor := false
+ },
+ {
+ name := "released"
+ args := #[]
+ since := 1
+ isDestructor := false
+ },
+ {
+ name := "stop_repeat"
+ args := #[]
+ since := 2
+ isDestructor := false
+ },
+ ]
+ demarshalEvent
+ | 0 => do
+ return .pressed
+ | 1 => do
+ return .released
+ | 2 => do
+ return .stopRepeat
+ | _ => throw s!"Received invalid opcode"
+
+instance instInterfaceRiverXkbBindingsSeatV1 : Interface RiverXkbBindingsSeatV1.name where
+ event := RiverXkbBindingsSeatV1.Event
+ version := 2
+ requests := #[
+ {
+ name := "destroy"
+ args := #[]
+ since := 2
+ isDestructor := true
+ },
+ {
+ name := "ensure_next_key_eaten"
+ args := #[]
+ since := 2
+ isDestructor := false
+ },
+ {
+ name := "cancel_ensure_next_key_eaten"
+ args := #[]
+ since := 2
+ isDestructor := false
+ },
+ ]
+ events := #[
+ {
+ name := "ate_unbound_key"
+ args := #[]
+ since := 2
+ isDestructor := false
+ },
+ ]
+ demarshalEvent
+ | 0 => do
+ return .ateUnboundKey
+ | _ => throw s!"Received invalid opcode"
+
+end Wayland.Protocols \ No newline at end of file