summaryrefslogtreecommitdiffstats
path: root/options.h
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@tavianator.com>2014-08-06 12:40:21 -0400
committerTavian Barnes <tavianator@tavianator.com>2014-08-06 12:40:21 -0400
commita30419c2781cbfbb87dd3c8b3c832be471afeeb0 (patch)
tree781cdc921de3cf3094bd3132e81688001085eedb /options.h
parentb72e0da99ef6c379bb95c637a83496ebd1aa3284 (diff)
downloadkd-forest-a30419c2781cbfbb87dd3c8b3c832be471afeeb0.tar.xz
Split out option handling into its own file.
Diffstat (limited to 'options.h')
-rw-r--r--options.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/options.h b/options.h
new file mode 100644
index 0000000..6f1b2f8
--- /dev/null
+++ b/options.h
@@ -0,0 +1,45 @@
+/*********************************************************************
+ * kd-forest *
+ * Copyright (C) 2014 Tavian Barnes <tavianator@tavianator.com> *
+ * *
+ * This program is free software. It comes without any warranty, to *
+ * the extent permitted by applicable law. You can redistribute it *
+ * and/or modify it under the terms of the Do What The Fuck You Want *
+ * To Public License, Version 2, as published by Sam Hocevar. See *
+ * the COPYING file or http://www.wtfpl.net/ for more details. *
+ *********************************************************************/
+
+#ifndef OPTIONS_H
+#define OPTIONS_H
+
+#include <stdbool.h>
+#include <stdio.h>
+
+// Possible generation modes
+typedef enum {
+ MODE_HUE_SORT,
+ MODE_RANDOM,
+} mode_t;
+
+// Possible color spaces
+typedef enum {
+ COLOR_SPACE_RGB,
+ COLOR_SPACE_LAB,
+ COLOR_SPACE_LUV,
+} color_space_t;
+
+// Command-line options
+typedef struct {
+ unsigned int bit_depth;
+ mode_t mode;
+ color_space_t color_space;
+ bool animate;
+ const char *filename;
+ unsigned int seed;
+ bool help;
+} options_t;
+
+bool parse_options(options_t *options, int argc, char *argv[]);
+void print_usage(FILE *file, const char *command);
+
+#endif // OPTIONS_H