--- a/src/hello-dmx.c Fri Apr 11 19:30:41 2014 +0300
+++ b/src/hello-dmx.c Fri Apr 11 19:51:02 2014 +0300
@@ -119,10 +119,51 @@
}
/*
- * Set output range to value.
+ * Fill output range with values.
+ *
+ * r <start> <stop> <value> ...
*/
int cmd_fill ()
{
+ if (console.argc < 3) {
+ return '!';
+ }
+
+ byte start = console.argv[0];
+ byte end = console.argv[1];
+
+ if (!start) {
+ return '!';
+ }
+
+ if (end < start) {
+ return '!';
+ }
+
+ // apply
+ // arg is 1..256
+ byte c = start - 1;
+
+ for ( ; c < end && c < DMX_COUNT - 1; ) {
+ for (byte a = 2; a < console.argc && c < DMX_COUNT - 1; a++) {
+ dmx.out[c++] = console.argv[a];
+ }
+ }
+
+ if (c > dmx.count) {
+ dmx.count = c;
+ }
+
+ return 0;
+}
+
+/*
+ * Set output start-stop/step range to value.
+ *
+ * r <start> <stop> <step> <value>
+ */
+int cmd_range ()
+{
if (console.argc != 4) {
return '!';
}
@@ -156,7 +197,6 @@
return 0;
}
-
/*
* Set output to max. zeroes
*/
@@ -191,6 +231,7 @@
case 'c': return cmd_clear();
case 'o': return cmd_out();
case 'f': return cmd_fill();
+ case 'r': return cmd_range();
case 's': return cmd_set();
case 'z': return cmd_zero();