summaryrefslogtreecommitdiff
path: root/lib/CWayland
diff options
context:
space:
mode:
authorHannes Schulze <haschu0103@outlook.de>2026-03-13 20:49:22 +0100
committerHannes Schulze <haschu0103@outlook.de>2026-03-13 20:49:22 +0100
commit0b7ad07db1be69f75ca9b469fd6210c64ba87dd5 (patch)
treefbdd654ce723d60972d8d6a6f7aca668fe921ab9 /lib/CWayland
parentad2c02141844d48e9c50a05f5ce872db283751ce (diff)
outline proxy api
Diffstat (limited to 'lib/CWayland')
-rw-r--r--lib/CWayland/CWayland.cc22
-rw-r--r--lib/CWayland/CWayland.h44
2 files changed, 62 insertions, 4 deletions
diff --git a/lib/CWayland/CWayland.cc b/lib/CWayland/CWayland.cc
index 57da46a..cf1687a 100644
--- a/lib/CWayland/CWayland.cc
+++ b/lib/CWayland/CWayland.cc
@@ -808,4 +808,26 @@ lean_obj_res waylean_type_map_register(b_lean_obj_arg map_obj, b_lean_obj_arg if
auto map = static_cast<type_map*>(lean_get_external_data(map_obj));
map->register_iface(iface_desc);
return lean_io_result_mk_ok(lean_box(0));
+}
+
+// -- Proxy
+
+// Proxy.fromDisplay : (display : @& Display) → IO Proxy
+lean_obj_res waylean_proxy_from_display(b_lean_obj_arg display)
+{
+}
+
+// Proxy.new : (factory : @& Proxy) → (typeMap : @& TypeMap) → (ifaceName : @& String) → IO Proxy
+lean_obj_res waylean_proxy_new(b_lean_obj_arg factory, b_lean_obj_arg type_map, b_lean_obj_arg iface_name)
+{
+}
+
+// Proxy.send : (proxy : @& Proxy) → (opcode : UInt32) → (argumentWriter : @& ArgumentWriter) → IO Unit
+lean_obj_res waylean_proxy_send(b_lean_obj_arg proxy, uint32_t opcode, b_lean_obj_arg argument_writer)
+{
+}
+
+// Proxy.listen : (proxy : @& Proxy) → (handler : @& UInt32 → ArgumentReader → EventLoop M × M) → IO Unit
+lean_obj_res waylean_proxy_listen(b_lean_obj_arg proxy, b_lean_obj_arg handler)
+{
} \ No newline at end of file
diff --git a/lib/CWayland/CWayland.h b/lib/CWayland/CWayland.h
index 6c8e002..e0bcfa2 100644
--- a/lib/CWayland/CWayland.h
+++ b/lib/CWayland/CWayland.h
@@ -15,8 +15,7 @@ uint32_t waylean_SIGUSR2(void);
// -- Display
-lean_obj_res waylean_display_new (b_lean_obj_arg name);
-lean_obj_res waylean_display_roundtrip(b_lean_obj_arg display);
+lean_obj_res waylean_display_new(b_lean_obj_arg name);
// -- Event Loop
@@ -44,9 +43,46 @@ lean_obj_res waylean_type_map_register(b_lean_obj_arg type_map,
// -- Proxy
-// -- Argument Marshaller
+lean_obj_res waylean_proxy_from_display(b_lean_obj_arg display);
+lean_obj_res waylean_proxy_new (b_lean_obj_arg factory,
+ b_lean_obj_arg type_map,
+ b_lean_obj_arg iface_name);
+lean_obj_res waylean_proxy_send (b_lean_obj_arg proxy,
+ uint32_t opcode,
+ b_lean_obj_arg argument_writer);
+lean_obj_res waylean_proxy_listen (b_lean_obj_arg proxy,
+ b_lean_obj_arg handler);
-// -- Argument Demarshaller
+// -- Argument Writer
+
+lean_obj_res waylean_argument_writer_new (void);
+lean_obj_res waylean_argument_writer_write_int (b_lean_obj_arg writer,
+ int32_t value);
+lean_obj_res waylean_argument_writer_write_uint (b_lean_obj_arg writer,
+ uint32_t value);
+lean_obj_res waylean_argument_writer_write_fixed (b_lean_obj_arg writer,
+ float value);
+lean_obj_res waylean_argument_writer_write_string(b_lean_obj_arg writer,
+ b_lean_obj_arg value);
+lean_obj_res waylean_argument_writer_write_object(b_lean_obj_arg writer,
+ b_lean_obj_arg value);
+lean_obj_res waylean_argument_writer_write_new_id(b_lean_obj_arg writer,
+ b_lean_obj_arg value);
+lean_obj_res waylean_argument_writer_write_array (b_lean_obj_arg writer,
+ b_lean_obj_arg value);
+lean_obj_res waylean_argument_writer_write_fd (b_lean_obj_arg writer,
+ int32_t value);
+
+// -- Argument Reader
+
+lean_obj_res waylean_argument_reader_read_int (b_lean_obj_arg reader);
+lean_obj_res waylean_argument_reader_read_uint (b_lean_obj_arg reader);
+lean_obj_res waylean_argument_reader_read_fixed (b_lean_obj_arg reader);
+lean_obj_res waylean_argument_reader_read_string(b_lean_obj_arg reader);
+lean_obj_res waylean_argument_reader_read_object(b_lean_obj_arg reader);
+lean_obj_res waylean_argument_reader_read_new_id(b_lean_obj_arg reader);
+lean_obj_res waylean_argument_reader_read_array (b_lean_obj_arg reader);
+lean_obj_res waylean_argument_reader_read_fd (b_lean_obj_arg reader);
#ifdef __cplusplus
}