aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--blinkstick.go27
-rw-r--r--cmd/blinkstick/main.go2
-rw-r--r--cmd/color/main.go2
-rw-r--r--cmd/progress/main.go2
4 files changed, 22 insertions, 11 deletions
diff --git a/blinkstick.go b/blinkstick.go
index 351b901..beff7ce 100644
--- a/blinkstick.go
+++ b/blinkstick.go
@@ -28,9 +28,10 @@ func rgb(c color.Color) (r, g, b uint8) {
}
// SetIndex sets color by index
-func SetIndex(w io.Writer, i int, c color.Color) {
+func SetIndex(w io.Writer, i int, c color.Color) error {
r, g, b := rgb(c)
- w.Write([]byte{5, 0, uint8(i), r, g, b})
+ _, err := w.Write([]byte{5, 0, uint8(i), r, g, b})
+ return err
}
// Set 0 to 64 colors
@@ -62,12 +63,22 @@ func Set(w io.Writer, colors ...color.Color) error {
return err
}
-// SetAll sets all 8 LEDs to same color
-func SetAll(w io.Writer, c color.Color) error {
- return Set(w, c, c, c, c, c, c, c, c)
+// SetAll sets all n LEDs to same color
+func SetAll(w io.Writer, n int, c color.Color) error {
+ if n == 0 {
+ n = 8
+ }
+ colors := make([]color.Color, n)
+ for i := 0; i < n; i++ {
+ colors[i] = c
+ }
+ return Set(w, colors...)
}
-// Off all LEDs
-func Off(w io.Writer) error {
- return SetAll(w, nil)
+// Off all n LEDs
+func Off(w io.Writer, n int) error {
+ if n == 0 {
+ n = 8
+ }
+ return SetAll(w, n, nil)
}
diff --git a/cmd/blinkstick/main.go b/cmd/blinkstick/main.go
index ad80246..9a095ea 100644
--- a/cmd/blinkstick/main.go
+++ b/cmd/blinkstick/main.go
@@ -37,7 +37,7 @@ func main() {
}
defer dev.Close()
- defer blinkstick.Off(dev)
+ defer blinkstick.Off(dev, 8)
pal := []color.Color{
color.YCbCr{0x1f, 0x00, 0xff}, // red
diff --git a/cmd/color/main.go b/cmd/color/main.go
index 3e97749..2a41bab 100644
--- a/cmd/color/main.go
+++ b/cmd/color/main.go
@@ -21,5 +21,5 @@ func main() {
}
defer dev.Close()
- blinkstick.SetAll(dev, c)
+ blinkstick.SetAll(dev, 8, c)
}
diff --git a/cmd/progress/main.go b/cmd/progress/main.go
index 9a839d8..34d9de5 100644
--- a/cmd/progress/main.go
+++ b/cmd/progress/main.go
@@ -20,5 +20,5 @@ func main() {
time.Sleep(time.Second)
}
- blinkstick.Off(dev)
+ blinkstick.Off(dev, 8)
}