summaryrefslogtreecommitdiff
path: root/include/util
diff options
context:
space:
mode:
authorWilliam McKinnon <[email protected]>2023-07-11 00:44:26 -0400
committerWilliam McKinnon <[email protected]>2023-07-11 00:44:26 -0400
commit9eaa07a4b141bc80a46cb7ab2dc94048f126fa8c (patch)
treec78cb64199476b94d9ee2f403f1e31ff4d3c5a69 /include/util
parent74e85d896e4e0964a93113cd9ef31bfb10747b28 (diff)
added more scene dependencies, added tinywl
Diffstat (limited to 'include/util')
-rw-r--r--include/util/array.h18
-rw-r--r--include/util/env.h11
-rw-r--r--include/util/time.h27
3 files changed, 56 insertions, 0 deletions
diff --git a/include/util/array.h b/include/util/array.h
new file mode 100644
index 0000000..a51bdb6
--- /dev/null
+++ b/include/util/array.h
@@ -0,0 +1,18 @@
+#ifndef UTIL_ARRAY_H
+#define UTIL_ARRAY_H
+
+#include <stdlib.h>
+#include <stdbool.h>
+#include <wayland-util.h>
+
+/**
+ * Remove a chunk of memory of the specified size at the specified offset.
+ */
+void array_remove_at(struct wl_array *arr, size_t offset, size_t size);
+
+/**
+ * Grow or shrink the array to fit the specifized size.
+ */
+bool array_realloc(struct wl_array *arr, size_t size);
+
+#endif
diff --git a/include/util/env.h b/include/util/env.h
new file mode 100644
index 0000000..6720fa8
--- /dev/null
+++ b/include/util/env.h
@@ -0,0 +1,11 @@
+#ifndef UTIL_ENV_H
+#define UTIL_ENV_H
+
+#include <stdbool.h>
+#include <unistd.h>
+
+bool env_parse_bool(const char *option);
+
+ssize_t env_parse_switch(const char *option, const char **switches);
+
+#endif
diff --git a/include/util/time.h b/include/util/time.h
new file mode 100644
index 0000000..287698d
--- /dev/null
+++ b/include/util/time.h
@@ -0,0 +1,27 @@
+#ifndef UTIL_TIME_H
+#define UTIL_TIME_H
+
+#include <time.h>
+
+/**
+ * Get the current time, in milliseconds.
+ */
+uint32_t get_current_time_msec(void);
+
+/**
+ * Convert a timespec to milliseconds.
+ */
+int64_t timespec_to_msec(const struct timespec *a);
+
+/**
+ * Convert nanoseconds to a timespec.
+ */
+void timespec_from_nsec(struct timespec *r, int64_t nsec);
+
+/**
+ * Subtracts timespec `b` from timespec `a`, and stores the difference in `r`.
+ */
+void timespec_sub(struct timespec *r, const struct timespec *a,
+ const struct timespec *b);
+
+#endif