Start routine at wakeup end
This commit is contained in:
parent
1def1ff67a
commit
e1f5fbcd6c
7 changed files with 101 additions and 16 deletions
|
|
@ -31,6 +31,8 @@ type Player struct {
|
|||
claironTime time.Duration
|
||||
claironFile string
|
||||
|
||||
endRoutines []*reveil.Routine
|
||||
|
||||
ntick int64
|
||||
hasClaironed bool
|
||||
hasSpokeWeather bool
|
||||
|
|
@ -41,7 +43,7 @@ type Player struct {
|
|||
playedItem int
|
||||
}
|
||||
|
||||
func WakeUp(cfg *config.Config) (err error) {
|
||||
func WakeUp(cfg *config.Config, routine []reveil.Identifier) (err error) {
|
||||
if CommonPlayer != nil {
|
||||
return fmt.Errorf("Unable to start the player: a player is already running")
|
||||
}
|
||||
|
|
@ -50,16 +52,16 @@ func WakeUp(cfg *config.Config) (err error) {
|
|||
seed -= seed % 172800
|
||||
rand.Seed(seed)
|
||||
|
||||
CommonPlayer, err = NewPlayer(cfg)
|
||||
CommonPlayer, err = NewPlayer(cfg, routine)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
go CommonPlayer.WakeUp()
|
||||
go CommonPlayer.WakeUp(cfg)
|
||||
return nil
|
||||
}
|
||||
|
||||
func NewPlayer(cfg *config.Config) (*Player, error) {
|
||||
func NewPlayer(cfg *config.Config, routines []reveil.Identifier) (*Player, error) {
|
||||
// Load our settings
|
||||
settings, err := reveil.ReadSettings(cfg.SettingsFile)
|
||||
if err != nil {
|
||||
|
|
@ -83,6 +85,17 @@ func NewPlayer(cfg *config.Config) (*Player, error) {
|
|||
reverseOrder: int(time.Now().Unix()/86400)%2 == 0,
|
||||
}
|
||||
|
||||
// Load routines
|
||||
for _, routine := range routines {
|
||||
r, err := reveil.LoadRoutineFromId(routine, cfg)
|
||||
if err != nil {
|
||||
log.Printf("Unable to load routine %x: %s", routine, err.Error())
|
||||
continue
|
||||
}
|
||||
|
||||
p.endRoutines = append(p.endRoutines, r)
|
||||
}
|
||||
|
||||
// Load our track list
|
||||
tracks, err := reveil.LoadTracks(cfg)
|
||||
if err != nil {
|
||||
|
|
@ -136,7 +149,7 @@ func (p *Player) playFile(filepath string) (err error) {
|
|||
return
|
||||
}
|
||||
|
||||
func (p *Player) WakeUp() {
|
||||
func (p *Player) WakeUp(cfg *config.Config) {
|
||||
log.Println("Playlist in use:", strings.Join(p.Playlist, " ; "))
|
||||
|
||||
// Prepare sound player
|
||||
|
|
@ -241,6 +254,11 @@ loopcalm:
|
|||
|
||||
CommonPlayer = nil
|
||||
}
|
||||
|
||||
// TODO: Start Routine if any
|
||||
for _, r := range p.endRoutines {
|
||||
go r.Launch(cfg)
|
||||
}
|
||||
}
|
||||
|
||||
func (p *Player) NextTrack() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue