summaryrefslogtreecommitdiff
path: root/main.h
diff options
context:
space:
mode:
Diffstat (limited to 'main.h')
-rw-r--r--main.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/main.h b/main.h
new file mode 100644
index 0000000..c4fd5dc
--- /dev/null
+++ b/main.h
@@ -0,0 +1,39 @@
+#pragma once
+
+#include <signal.h> /* for sig_atomic_t */
+#include <string.h> /* for memset(3) */
+
+#define UNUSED __attribute__((__unused__))
+#define ZERO(x) memset(&(x), 0, sizeof(x))
+
+#ifndef _
+#define _(str) str
+#endif
+
+extern volatile sig_atomic_t running;
+
+struct frame {
+ ssize_t len;
+ size_t cap;
+ char *data;
+};
+
+struct mpjpeg_stream {
+ struct frame a;
+ struct frame b;
+
+ struct frame *front;
+ struct frame *back;
+ pthread_mutex_t frontlock;
+};
+
+struct wg;
+
+void thread_kinect(int video_fd, int depth_fd, int accel_fd);
+void thread_http_listen(int fd);
+void thread_mpjpeg_reader(struct mpjpeg_stream *s, int fd, const char *boundary);
+void thread_mpjpeg_writer(struct mpjpeg_stream *s, int fd, const char *boundary);
+void thread_http_listener(struct wg *wg, struct mpjpeg_stream *video, struct mpjpeg_stream *depth);
+void init_mpjpeg_stream();
+
+void * xrealloc(void *ptr, size_t size);