package frontend import ( "atomicgo.dev/keyboard" "atomicgo.dev/keyboard/keys" ws "github.com/gorilla/websocket" "git.smsvc.net/pomodoro/ChronoTomato/internal/websocket" ChronoTomato "git.smsvc.net/pomodoro/ChronoTomato/pkg/models" GoTomato "git.smsvc.net/pomodoro/GoTomato/pkg/models" ) func keyhandler(conn *ws.Conn, config ChronoTomato.Config, message *GoTomato.ServerMessage, quit chan bool) { keyboard.Listen(func(key keys.Key) (stop bool, err error) { select { case <-websocket.Done: quit <- true return true, nil default: switch key.String() { case "space": if !message.Ongoing { websocket.SendCmd(conn, config.Password, "start") break } if message.Paused { websocket.SendCmd(conn, config.Password, "resume") } else { websocket.SendCmd(conn, config.Password, "pause") } case "s": websocket.SendCmd(conn, config.Password, "stop") case "r": if config.PomodoroConfig != (GoTomato.GoTomatoPomodoroConfig{}) { websocket.Send_updateSettings(conn, config.Password, config.PomodoroConfig) } case "q": quit <- true return true, nil } } return false, nil }) }