1
0
Fork 0
huge-piano/main.go

42 lines
763 B
Go
Raw Permalink Normal View History

2018-04-06 23:39:07 +08:00
package main
import (
"flag"
"log"
)
var sp string
var pack string
var mapFile string
func main() {
flag.StringVar(&sp, "serial", "", "connect serial port")
flag.StringVar(&pack, "pack", "", "specify audio pack folder")
flag.StringVar(&mapFile, "mapfile", "", "specify mapfile")
flag.Parse()
p := newPort(sp)
ma := newMoving(p.samp)
ch := chanLogger(ma.changes)
2018-04-07 06:36:25 +08:00
mapped := newKeymap(ch, mapFile)
audio := newAudio(mapped.play, pack)
2018-04-06 23:39:07 +08:00
2018-04-07 06:36:25 +08:00
go audio.watch()
go mapped.watch()
2018-04-06 23:39:07 +08:00
go ma.watch()
p.watch()
}
func chanLogger(in chan stateFlip) chan stateFlip {
out := make(chan stateFlip)
go func() {
2018-04-07 06:36:25 +08:00
log.Println("Logging stateFlips...")
for sf := range in {
2018-04-06 23:39:07 +08:00
log.Print(sf)
out <- sf
}
2018-04-07 06:36:25 +08:00
log.Println("Not logging stateFlips")
2018-04-06 23:39:07 +08:00
}()
return out
}