diff options
Diffstat (limited to 'libraries/goldman')
-rw-r--r-- | libraries/goldman/include/goldman/protocol.hpp | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/libraries/goldman/include/goldman/protocol.hpp b/libraries/goldman/include/goldman/protocol.hpp deleted file mode 100644 index b7f4d51..0000000 --- a/libraries/goldman/include/goldman/protocol.hpp +++ /dev/null @@ -1,85 +0,0 @@ -#pragma once - -#include <euler/syscall.hpp> -#include <memory> - -//TODO: handle stream errors, make thread safe - -namespace goldman::protocol { - - typedef euler::syscall::encoded_color color; - typedef uint16_t window; - - static inline void send_open_window( - euler::syscall::stream_handle socket, uint32_t width, uint32_t height) { - - struct [[gnu::packed]] { - uint8_t type; - uint32_t width; - uint32_t height; - } packet { - .type = 0x00, - .width = width, - .height = height - }; - - euler::syscall::write_to_stream(socket, sizeof(packet), &packet); - - } - - void send_update_window_region( - euler::syscall::stream_handle socket, window the_window, - uint32_t start_x, uint32_t start_y, uint32_t width, - uint32_t height, const color *the_data, size_t data_pitch) { - - struct [[gnu::packed]] { - uint8_t type; - window the_window; - uint32_t start_x; - uint32_t start_y; - uint32_t width; - uint32_t height; - } packet_head { - .type = 0x01, - .the_window = the_window, - .start_x = start_x, - .start_y = start_y, - .width = width, - .height = height - }; - - euler::syscall::write_to_stream(socket, sizeof(packet_head), &packet_head); - for (uint32_t y = 0; y < height; ++y) - euler::syscall::write_to_stream( - socket, width * sizeof(color), the_data + data_pitch * y); - - } - - void send_close_window( - euler::syscall::stream_handle socket, window the_window) { - - struct [[gnu::packed]] { - uint8_t type; - window the_window; - } packet { - .type = 0x02, - .the_window = the_window - }; - - euler::syscall::write_to_stream(socket, sizeof(packet), &packet); - - } - - enum class response_id : uint8_t { - window_opened - }; - - window get_window_opened_body(euler::syscall::stream_handle socket) { - - window w; - euler::syscall::read_from_stream(socket, sizeof(w), &w); - return w; - - } - -} |