summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <programble@gmail.com>2018-03-31 14:28:10 -0400
committerJune McEnroe <programble@gmail.com>2018-03-31 14:28:10 -0400
commitd1374bec60f89a25baff11340c849b04d26b6355 (patch)
tree5a4e3028cf686829c372c6f50baa152a20b0489e
parentAdd hex output to scheme (diff)
downloadsrc-d1374bec60f89a25baff11340c849b04d26b6355.tar.gz
src-d1374bec60f89a25baff11340c849b04d26b6355.zip
Generate basic ANSI color scheme
Diffstat (limited to '')
-rw-r--r--bin/scheme.c60
1 files changed, 36 insertions, 24 deletions
diff --git a/bin/scheme.c b/bin/scheme.c
index 9762a3bb..25f9d77a 100644
--- a/bin/scheme.c
+++ b/bin/scheme.c
@@ -1,5 +1,4 @@
-/*
- * Copyright (C) 2018  Curtis McEnroe <june@causal.agency>
+/* Copyright (C) 2018  Curtis McEnroe <june@causal.agency>
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as published by
@@ -120,7 +119,39 @@ static void hex(const struct Hsv *scheme, uint8_t len) {
     }
 }
 
+enum {
+    BLACK,
+    RED,
+    GREEN,
+    YELLOW,
+    BLUE,
+    MAGENTA,
+    CYAN,
+    WHITE,
+};
+struct Ansi {
+    struct Hsv dark[8];
+    struct Hsv light[8];
+};
+
 int main(int argc, char *argv[]) {
+    struct Ansi scheme = {
+        .light = {
+            [BLACK]   = { 0.0,   0.0, 0.2 },
+            [RED]     = { 0.0,   1.0, 1.0 },
+            [GREEN]   = { 120.0, 1.0, 1.0 },
+            [YELLOW]  = { 60.0,  1.0, 1.0 },
+            [BLUE]    = { 240.0, 1.0, 1.0 },
+            [MAGENTA] = { 300.0, 1.0, 1.0 },
+            [CYAN]    = { 180.0, 1.0, 1.0 },
+            [WHITE]   = { 360.0, 0.0, 1.0 },
+        },
+    };
+    for (int i = 0; i < 8; ++i) {
+        scheme.dark[i] = scheme.light[i];
+        scheme.dark[i].v /= 2.0;
+    }
+
     enum { HEX, PNG } output = HEX;
 
     int opt;
@@ -132,29 +163,10 @@ int main(int argc, char *argv[]) {
         }
     }
 
-    struct Hsv scheme[] = {
-        { 0.0,   1.0, 1.0 },
-        { 45.0,  1.0, 1.0 },
-        { 90.0,  1.0, 1.0 },
-        { 135.0, 1.0, 1.0 },
-        { 180.0, 1.0, 1.0 },
-        { 225.0, 1.0, 1.0 },
-        { 270.0, 1.0, 1.0 },
-        { 315.0, 1.0, 1.0 },
-        { 0.0,   0.5, 1.0 },
-        { 45.0,  0.5, 1.0 },
-        { 90.0,  0.5, 1.0 },
-        { 135.0, 0.5, 1.0 },
-        { 180.0, 0.5, 1.0 },
-        { 225.0, 0.5, 1.0 },
-        { 270.0, 0.5, 1.0 },
-        { 315.0, 0.5, 1.0 },
-    };
-    size_t len = sizeof(scheme) / sizeof(scheme[0]);
-
+    size_t len = sizeof(scheme) / sizeof(struct Hsv);
     switch (output) {
-        case HEX: hex(scheme, len); break;
-        case PNG: png(scheme, len); break;
+        case HEX: hex((struct Hsv *)&scheme, len); break;
+        case PNG: png((struct Hsv *)&scheme, len); break;
     }
 
     return EX_OK;
s='logsubject'>Clean up spawn constantsJune McEnroe 2018-03-05Rename Tile timestamps {create,modify,access}TimeJune McEnroe 2018-03-05Pack message type enumsJune McEnroe 2018-03-05Undef COLOR_ constants in torus.hJune McEnroe 2018-03-05Generate tagsJune McEnroe 2017-10-03Simplify Makefile with pattern ruleJune McEnroe Insert rant about how GNU make handles the .c rule with extra dependencies. Also I don't care that everything links curses now. 2017-09-27Remove leading blank linesJune McEnroe 2017-09-27Add merge.c to READMEJune McEnroe 2017-09-03Assert client coords are valid after movementJune McEnroe 2017-09-03Relicense AGPLJune McEnroe I know it's already published under a permissive license in what is probably its final form, but I want to license it AGPL anyway on principle following some conversations I had about open source, corporations and copyleft. 2017-09-01Revert "Add client readOnly mode"June McEnroe This reverts commit 34f25ae40a3db9369e9d98b3814f2b93bbc21451. 2017-09-01Remove clientRemove call from clientCastJune McEnroe If an error occurs on a client socket during a broadcast, that client will show up in the kqueue loop with EV_EOF and get removed that way. Tested by sending SIGKILL to a client and watching its cursor disappear. 2017-09-01Add client readOnly modeJune McEnroe 2017-08-31Clean up merge toolJune McEnroe Choose the version with the most recent access if the modify times are the same. 2017-08-31Choose B for tiles with equal modify timesJune McEnroe This way newer access counts and times will be preserved. 2017-08-31Add quick data file merge toolJune McEnroe Hopefully I won't have to use it ever again. 2017-08-30Use only foreground color for selecting spawnJune McEnroe 2017-08-29Add four additional spawnsJune McEnroe 2017-08-28Add respawningJune McEnroe 2017-08-26Move license above includesJune McEnroe Why was it down there? 2017-08-26Snapshot metadataJune McEnroe 2017-08-26Add meta.c to READMEJune McEnroe 2017-08-26Use MakefileJune McEnroe