summaryrefslogtreecommitdiff
path: root/src/utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils.h')
-rw-r--r--src/utils.h81
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 */