From 5d30297ec4354b812f692f36d7c990ee8e9ece0e Mon Sep 17 00:00:00 2001 From: bel Date: Wed, 1 Mar 2023 23:30:20 -0700 Subject: [PATCH] wheeeee --- src/main.go | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/src/main.go b/src/main.go index 67bbffd..ddd9053 100644 --- a/src/main.go +++ b/src/main.go @@ -2,9 +2,40 @@ package src import ( "context" - "errors" + "mayhem-party/src/device/input" + "mayhem-party/src/device/output" + "time" ) func Main(ctx context.Context) error { - return errors.New("not impl") + reader := input.New() + writer := output.New() + c := time.NewTicker(time.Millisecond * 50) + defer c.Stop() + + block := func() bool { + select { + case <-c.C: + return true + case <-ctx.Done(): + return false + } + } + + state := map[output.Key]bool{} + for block() { + delta := reader.Read() + for _, button := range delta { + state[output.Key(button.Char)] = button.Down + } + keys := make([]output.Key, 0) + for k, v := range state { + if v { + keys = append(keys, k) + } + } + writer.Press(keys...) + } + + return ctx.Err() }