aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2017-09-08 01:11:47 +0200
committerDimitri Sokolyuk <demon@dim13.org>2017-09-08 01:11:47 +0200
commit050d6489416bdedcd98a4c09bf6af4bfcbefb51a (patch)
treebae20f4cc06ca1385777f9d74e9ad3fbad8ad7b7
parentce079660d29e274804b8affd70acb4efe7ae4958 (diff)
Don't report lid open after button pressed
-rw-r--r--cmd/runcmd/main.go7
-rw-r--r--redbutton.go6
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