diff options
Diffstat (limited to 'src/utils.h')
| -rw-r--r-- | src/utils.h | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/src/utils.h b/src/utils.h new file mode 100644 index 0000000..b0fd464 --- /dev/null +++ b/src/utils.h @@ -0,0 +1,81 @@ +/* SPDX-License-Identifier: GPL-3.0-or-later */ +/* + * vfetch - neofetch but the ascii part is a video + * + * Copyright (C) 2026 Doan Luu Duc Tai + * + */ + +#ifndef SRC__UTILS_H +#define SRC__UTILS_H + +#include <glib.h> +#include <signal.h> +#include <stdbool.h> +#include <stdint.h> +#include "error.h" +#include "state.h" +#include "video_defs.h" + +struct FTW; +struct stat; + +typedef struct Rect { + size_t width; + size_t height; + uint32_t start_x; + uint32_t start_y; +} Rect; + +#ifdef __GNUC__ +# define ATTR_PRINTF_FORMAT(FMT_POS, ARG_POS) \ + __attribute__((format(printf, FMT_POS, ARG_POS))) +#else +# define ATTR_PRINTF_FORMAT(FMT_POS, ARG_POS) +#endif +void log_debug(bool debug_flag, const char *format, ...) + ATTR_PRINTF_FORMAT(2, 3); +void log_verbose(AppState *state, + bool verbose_flag, + bool debug_flag, + const char *format, + ...) ATTR_PRINTF_FORMAT(4, 5); +#undef ATTR_PRINTF_FORMAT + +void log_vfetch_error(VfetchError err, const char *context_msg); +_Noreturn void die(VfetchError err, const char *context_msg); +void print_progress(AppState *state, size_t current, size_t total); +void *progress_display_thread_func(void *arg); +void restore_terminal(void); +void setup_terminal(AppState *state); +void set_cursor_visible(AppState *state, bool visible); +void append_block_to_buffer(char *buffer, + size_t buffer_size, + size_t *current_len, + uint32_t start_x, + uint32_t start_y, + const char *text_block, + size_t text_block_len); +void clear_rect_in_buffer(char *buffer, + size_t buffer_size, + size_t *current_len, + const Rect *rect); +VfetchError +run_command_fork_output(const gchar *command, gchar **output, bool debug_flag); +int unlink_cb(const char *fpath, + const struct stat *stat_buf, + int typeflag, + struct FTW *ftwbuf); +bool rm_rf(const char *path); +void hash_string_to_bytes(const char *str, uint8_t *out_bytes); +gchar *hash_cache_key(const CacheKey *key); +int compare_strings_wrapper(gconstpointer first_pointer, + gconstpointer second_pointer); +gchar *serialize_map_for_hashing(GHashTable *map); +guint32 parse_hex_color(const char *hex_str); +size_t count_lines(const gchar *str); +void *signal_monitor_thread_func(void *arg); +void app_signal_handler(int signum, siginfo_t *info, void *context); +void app_resize_handler(int signum, siginfo_t *info, void *context); + +#endif /* SRC__UTILS_H */ |
