github.com/wtfutil/wtf@v0.43.0/modules/spotifyweb/keyboard.go (about) 1 package spotifyweb 2 3 import ( 4 "time" 5 6 "github.com/gdamore/tcell/v2" 7 ) 8 9 func (widget *Widget) initializeKeyboardControls() { 10 widget.InitializeHelpTextKeyboardControl(widget.ShowHelp) 11 widget.InitializeRefreshKeyboardControl(widget.Refresh) 12 13 widget.SetKeyboardChar("h", widget.selectPrevious, "Select previous item") 14 widget.SetKeyboardChar("l", widget.selectNext, "Select next item") 15 widget.SetKeyboardChar(" ", widget.playPause, "Play/pause") 16 widget.SetKeyboardChar("s", widget.toggleShuffle, "Toggle shuffle") 17 18 widget.SetKeyboardKey(tcell.KeyDown, widget.selectNext, "Select next item") 19 widget.SetKeyboardKey(tcell.KeyUp, widget.selectPrevious, "Select previous item") 20 } 21 22 func (widget *Widget) selectPrevious() { 23 err := widget.client.Previous() 24 if err != nil { 25 return 26 } 27 28 time.Sleep(time.Millisecond * 500) 29 widget.Refresh() 30 } 31 32 func (widget *Widget) selectNext() { 33 err := widget.client.Next() 34 if err != nil { 35 return 36 } 37 38 time.Sleep(time.Millisecond * 500) 39 widget.Refresh() 40 } 41 42 func (widget *Widget) playPause() { 43 var err error 44 if widget.playerState.CurrentlyPlaying.Playing { 45 err = widget.client.Pause() 46 } else { 47 err = widget.client.Play() 48 } 49 if err != nil { 50 return 51 } 52 53 time.Sleep(time.Millisecond * 500) 54 widget.Refresh() 55 } 56 57 func (widget *Widget) toggleShuffle() { 58 widget.playerState.ShuffleState = !widget.playerState.ShuffleState 59 err := widget.client.Shuffle(widget.playerState.ShuffleState) 60 if err != nil { 61 return 62 } 63 64 time.Sleep(time.Millisecond * 500) 65 widget.Refresh() 66 }