# HG changeset patch # User Tero Marttila # Date 1397233095 -10800 # Node ID be139319a961a0f104e8f1776ef5d8a7f2d97259 # Parent 53743ecc9150652e71a629e62b3c9e1922d8164d dmx: cmd_fill diff -r 53743ecc9150 -r be139319a961 src/hello-dmx.c --- a/src/hello-dmx.c Fri Apr 11 19:03:49 2014 +0300 +++ b/src/hello-dmx.c Fri Apr 11 19:18:15 2014 +0300 @@ -119,6 +119,45 @@ } /* + * Set output range to value. + */ +int cmd_fill () +{ + if (console.argc != 4) { + return '!'; + } + + byte start = console.argv[0]; + byte end = console.argv[1]; + byte skip = console.argv[2]; + byte value = console.argv[3]; + byte c; + + if (!start) { + return '!'; + } + + if (end < start) { + return '!'; + } + + if (!skip) { + return '!'; + } + + for (c = start; c <= end && c < DMX_COUNT; c += skip) { + dmx.out[c - 1] = value; + } + + // XXX: -1 + if (c > dmx.count) { + dmx.count = c; + } + + return 0; +} + +/* * Set output to max. zeroes */ int cmd_zero () @@ -151,6 +190,7 @@ switch (console.cmd) { case 'c': return cmd_clear(); case 'o': return cmd_out(); + case 'f': return cmd_fill(); case 's': return cmd_set(); case 'z': return cmd_zero();