aboutsummaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-05-21 18:50:45 +0200
committerDimitri Sokolyuk <demon@dim13.org>2015-05-21 18:50:45 +0200
commit1cb19c68d8ef3f525c0c051f60240b07054477a1 (patch)
tree9fc4f459358f17d6656fd549d92fc8bb9bee518f /main.go
parentbbf61b753c77c76eb2b1afcd441bdb31c6fe19de (diff)
Convert into package
Diffstat (limited to 'main.go')
-rw-r--r--main.go62
1 files changed, 0 insertions, 62 deletions
diff --git a/main.go b/main.go
deleted file mode 100644
index 68e8705..0000000
--- a/main.go
+++ /dev/null
@@ -1,62 +0,0 @@
-package main
-
-import (
- "fmt"
- "log"
- "time"
-
- "github.com/GeertJohan/go.hid"
-)
-
-type Button struct {
- Button bool
- Lid bool
-}
-
-func GetState(dev *hid.Device) Button {
- buf := make([]byte, 8)
- buf[0] = 0x01
- buf[7] = 0x02
-
- if _, err := dev.Write(buf); err != nil {
- log.Fatal(err)
- }
-
- if _, err := dev.ReadTimeout(buf, 200); err != nil {
- log.Fatal(err)
- }
-
- if buf[7] != 0x03 {
- log.Fatal("bad magic")
- }
-
- return Button{
- buf[0]&(1<<0) == 0,
- buf[0]&(1<<1) == 0,
- }
-}
-
-func PollState(dev *hid.Device) <-chan Button {
- state := make(chan Button)
- go func() {
- for {
- state <- GetState(dev)
- time.Sleep(100 * time.Millisecond)
- }
- }()
- return state
-}
-
-func main() {
- dev, err := hid.Open(0x1D34, 0x000D, "")
- if err != nil {
- log.Fatal(err)
- }
- defer dev.Close()
-
- state := PollState(dev)
-
- for {
- fmt.Println(<-state)
- }
-}