From bece9f42037edf51bca608351123870bcc189dd6 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Fri, 28 Sep 2018 23:38:20 +0200 Subject: move progress away --- cmd/progress/main.go | 24 +++++++++++++++++++++++ cmd/progress/progress.go | 50 ++++++++++++++++++++++++++++++++++++++++++++++++ progress.go | 48 ---------------------------------------------- progress_test.go | 24 ----------------------- 4 files changed, 74 insertions(+), 72 deletions(-) create mode 100644 cmd/progress/main.go create mode 100644 cmd/progress/progress.go delete mode 100644 progress.go delete mode 100644 progress_test.go diff --git a/cmd/progress/main.go b/cmd/progress/main.go new file mode 100644 index 0000000..b387c0c --- /dev/null +++ b/cmd/progress/main.go @@ -0,0 +1,24 @@ +package main + +import ( + "log" + "time" + + "dim13.org/blinkstick" +) + +func main() { + dev, err := blinkstick.Open() + if err != nil { + log.Fatal(err) + } + defer dev.Close() + + p := NewProgress(5*time.Second, 7*time.Second, 8*time.Second) + for i := 0; i < 8; i++ { + p.Update(dev) + time.Sleep(time.Second) + } + + blinkstick.Off(dev) +} diff --git a/cmd/progress/progress.go b/cmd/progress/progress.go new file mode 100644 index 0000000..c461c01 --- /dev/null +++ b/cmd/progress/progress.go @@ -0,0 +1,50 @@ +package main + +import ( + "image/color" + "io" + "time" + + "dim13.org/blinkstick" +) + +var ( + red = color.YCbCr{0x1f, 0x00, 0xff} + yellow = color.YCbCr{0x3f, 0x00, 0xbf} + green = color.YCbCr{0x1f, 0x00, 0x00} + blue = color.YCbCr{0x1f, 0xff, 0x1f} + black = color.Black +) + +type Progress struct { + f []color.Color + start time.Time + soft time.Duration + hard time.Duration + end time.Duration + n int +} + +func NewProgress(soft, hard, end time.Duration) Progress { + return Progress{ + f: make([]color.Color, 8), + start: time.Now(), + soft: soft, + hard: hard, + end: end, + } +} + +func (p *Progress) Update(w io.Writer) { + done := time.Since(p.start) + switch { + case p.hard < done: + p.f[p.n] = red + case p.soft < done: + p.f[p.n] = yellow + default: + p.f[p.n] = green + } + blinkstick.Set(w, p.f...) + p.n = (p.n + 1) % 8 +} diff --git a/progress.go b/progress.go deleted file mode 100644 index f6a18e3..0000000 --- a/progress.go +++ /dev/null @@ -1,48 +0,0 @@ -package blinkstick - -import ( - "image/color" - "io" - "time" -) - -var ( - red = color.YCbCr{0x1f, 0x00, 0xff} - yellow = color.YCbCr{0x3f, 0x00, 0xbf} - green = color.YCbCr{0x1f, 0x00, 0x00} - blue = color.YCbCr{0x1f, 0xff, 0x1f} - black = color.Black -) - -type Progress struct { - f []color.Color - start time.Time - soft time.Duration - hard time.Duration - end time.Duration - n int -} - -func NewProgress(soft, hard, end time.Duration) Progress { - return Progress{ - f: make([]color.Color, 8), - start: time.Now(), - soft: soft, - hard: hard, - end: end, - } -} - -func (p *Progress) Update(w io.Writer) { - done := time.Since(p.start) - switch { - case p.hard < done: - p.f[p.n] = red - case p.soft < done: - p.f[p.n] = yellow - default: - p.f[p.n] = green - } - Set(w, p.f...) - p.n = (p.n + 1) % 8 -} diff --git a/progress_test.go b/progress_test.go deleted file mode 100644 index 1da33b6..0000000 --- a/progress_test.go +++ /dev/null @@ -1,24 +0,0 @@ -// +build ignore - -package blinkstick - -import ( - "testing" - "time" -) - -func TestProgress(t *testing.T) { - dev, err := Open() - if err != nil { - t.Fatal(err) - } - defer dev.Close() - - p := NewProgress(5*time.Second, 7*time.Second, 8*time.Second) - for i := 0; i < 8; i++ { - p.Update(dev) - time.Sleep(time.Second) - } - - Off(dev) -} -- cgit v1.2.3