From 2030684b16004a4f6c60f499584366ae5ad57bc9 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Tue, 15 Feb 2022 21:52:40 +0100 Subject: Finish video player --- video_player/include/Utils.hpp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 video_player/include/Utils.hpp (limited to 'video_player/include/Utils.hpp') diff --git a/video_player/include/Utils.hpp b/video_player/include/Utils.hpp new file mode 100644 index 0000000..a5219f4 --- /dev/null +++ b/video_player/include/Utils.hpp @@ -0,0 +1,30 @@ +#pragma once + +#include +#include + +static ssize_t read_eintr(int fd, void *buffer, size_t size) { + while(true) { + ssize_t bytes_read = read(fd, buffer, size); + if(bytes_read == -1) { + if(errno != EINTR) + return -1; + } else { + return bytes_read; + } + } +} + +static ssize_t write_all(int fd, const void *buffer, size_t size) { + ssize_t bytes_written = 0; + while((size_t)bytes_written < size) { + ssize_t written = write(fd, (char*)buffer + bytes_written, size - bytes_written); + if(written == -1) { + if(errno != EINTR) + return -1; + } else { + bytes_written += written; + } + } + return bytes_written; +} \ No newline at end of file -- cgit v1.2.3