From 050d6489416bdedcd98a4c09bf6af4bfcbefb51a Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Fri, 8 Sep 2017 01:11:47 +0200 Subject: Don't report lid open after button pressed --- cmd/runcmd/main.go | 7 ++++--- redbutton.go | 6 +++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/cmd/runcmd/main.go b/cmd/runcmd/main.go index aaaa36c..f76b882 100644 --- a/cmd/runcmd/main.go +++ b/cmd/runcmd/main.go @@ -11,7 +11,7 @@ import ( type StateFn func(redbutton.Event) StateFn func Init(b redbutton.Event) StateFn { - if b == redbutton.Armed { + if b == redbutton.LidOpen { log.Println("Ready...") return Armed } @@ -19,7 +19,7 @@ func Init(b redbutton.Event) StateFn { } func Armed(b redbutton.Event) StateFn { - if b == redbutton.Pressed { + if b == redbutton.ButtonPressed { log.Println("Go!") go Exec(os.Args[1:]) return Reset @@ -28,7 +28,8 @@ func Armed(b redbutton.Event) StateFn { } func Reset(b redbutton.Event) StateFn { - if b == redbutton.Closed { + if b == redbutton.LidClosed { + log.Println("Reset...") return Init } return Reset diff --git a/redbutton.go b/redbutton.go index d31864e..4ee3885 100644 --- a/redbutton.go +++ b/redbutton.go @@ -44,7 +44,7 @@ func Poll(dev *hid.Device, d time.Duration) <-chan Event { } ch := make(chan Event) go func() { - prev := Unknown + prev := LidClosed tick := time.NewTicker(d) defer tick.Stop() defer close(ch) @@ -53,10 +53,10 @@ func Poll(dev *hid.Device, d time.Duration) <-chan Event { if err != nil { return } - if state != prev { + if state != prev && prev != ButtonPressed { ch <- state - prev = state } + prev = state } }() return ch -- cgit v1.2.3