From 29c9ef23c41d91603cc2860ac233c30b6ade54e3 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Fri, 23 Jun 2023 22:57:40 +0200 Subject: Dramacool: fix video not working sometimes by adding support for more video backends: doodstream --- src/StringUtils.cpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'src/StringUtils.cpp') diff --git a/src/StringUtils.cpp b/src/StringUtils.cpp index 656b511..57c30d4 100644 --- a/src/StringUtils.cpp +++ b/src/StringUtils.cpp @@ -1,5 +1,7 @@ #include "../include/StringUtils.hpp" #include +#include +#include namespace QuickMedia { template @@ -333,4 +335,29 @@ namespace QuickMedia { return result; } + + bool generate_random_characters(char *buffer, int buffer_size, const char *alphabet, size_t alphabet_size) { + if(alphabet_size == 0) + return false; + + int fd = open("/dev/urandom", O_RDONLY); + if(fd == -1) { + perror("/dev/urandom"); + return false; + } + + if(read(fd, buffer, buffer_size) < buffer_size) { + fprintf(stderr, "Failed to read %d bytes from /dev/urandom\n", buffer_size); + close(fd); + return false; + } + + for(int i = 0; i < buffer_size; ++i) { + unsigned char c = *(unsigned char*)&buffer[i]; + buffer[i] = alphabet[c % alphabet_size]; + } + + close(fd); + return true; + } } \ No newline at end of file -- cgit v1.2.3-70-g09d2