You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
superhighway84/common/player-psfm.go

48 lines
881 B
Go

//go:build poolsuite
package common
import(
"github.com/mrusme/go-poolsuite"
)
type Player struct {
Poolsuite *poolsuite.Poolsuite
poolsuiteLoaded bool
poolsuitePlaying bool
}
func NewPlayer() (*Player) {
player := new(Player)
player.Poolsuite = poolsuite.NewPoolsuite()
player.poolsuiteLoaded = false
player.poolsuitePlaying = false
return player
}
func (p *Player) poolsuitePlay() {
p.Poolsuite.Play(
p.Poolsuite.GetRandomTrackFromPlaylist(
p.Poolsuite.GetRandomPlaylist(),
),
func() { p.poolsuitePlay() },
)
}
func (p *Player) Play() {
if p.poolsuiteLoaded == false {
p.poolsuiteLoaded = true
p.Poolsuite.Load()
}
if p.poolsuitePlaying == false {
p.poolsuitePlay()
p.poolsuitePlaying = true
} else {
p.Poolsuite.PauseResume()
p.poolsuitePlaying = false
}
}