From 9f1fddc47ce10fbc65cdeaa70461063b9921434e Mon Sep 17 00:00:00 2001 From: dec05eba Date: Tue, 6 Aug 2024 05:57:21 +0200 Subject: Copy Config from gpu-screen-recorder-gtk, make it more modern and efficient with string_view and variant, use string_view in gsr info parsing --- include/Utils.hpp | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 include/Utils.hpp (limited to 'include/Utils.hpp') diff --git a/include/Utils.hpp b/include/Utils.hpp new file mode 100644 index 0000000..f917834 --- /dev/null +++ b/include/Utils.hpp @@ -0,0 +1,32 @@ +#pragma once + +#include +#include +#include +#include +#include + +namespace gsr { + struct KeyValue { + std::string_view key; + std::string_view value; + }; + + using StringSplitCallback = std::function; + + void string_split_char(std::string_view str, char delimiter, StringSplitCallback callback_func); + + // key value separated by one space + std::optional parse_key_value(std::string_view line); + + std::string get_home_dir(); + std::string get_config_dir(); + + // Whoever designed xdg-user-dirs is retarded. Why are some XDG variables environment variables + // while others are in this pseudo shell config file ~/.config/user-dirs.dirs + std::map get_xdg_variables(); + + std::string get_videos_dir(); + int create_directory_recursive(char *path); + bool file_get_content(const char *filepath, std::string &file_content); +} \ No newline at end of file -- cgit v1.2.3