X-Git-Url: https://code.octet-stream.net/broadcaster/blobdiff_plain/5335a89faef3dce1b7fedd4a262319316f87f2dd..f737b8a74d0f94182eaaf5d106505643be40927d:/radio/main.go diff --git a/radio/main.go b/radio/main.go index 22658a3..5edd54e 100644 --- a/radio/main.go +++ b/radio/main.go @@ -227,7 +227,10 @@ func playlistWorker(ch <-chan []protocol.PlaylistSpec, stop <-chan bool) { } var soonestTime time.Time for _, v := range specs { - t, err := time.ParseInLocation(protocol.StartTimeFormat, v.StartTime, loc) + t, err := time.ParseInLocation(protocol.StartTimeFormatSecs, v.StartTime, loc) + if err != nil { + t, err = time.ParseInLocation(protocol.StartTimeFormat, v.StartTime, loc) + } if err != nil { log.Println("Error parsing start time", err) continue @@ -327,16 +330,20 @@ entries: }))) } + aborting := false select { case <-done: log.Println("Audio playback complete") case <-cancel: - log.Println("Disengaging PTT and aborting playlist playback") - ptt.DisengagePTT() - break entries + log.Println("Playlist aborting as requested") + aborting = true } - log.Println("PTT off since audio file has finished") + speaker.Clear() + log.Println("PTT off") ptt.DisengagePTT() + if aborting { + break entries + } } log.Println("Playlist finished", playlist.Name) statusCollector.PlaylistBeginIdle <- true