X-Git-Url: https://code.octet-stream.net/broadcaster/blobdiff_plain/d49d716a33dc5eda5b0cb634b762405f7cf509fe..364c7ca21eae4dd7262c945f1feb10f136c3d064:/radio/main.go diff --git a/radio/main.go b/radio/main.go index 1f95d76..5edd54e 100644 --- a/radio/main.go +++ b/radio/main.go @@ -20,7 +20,7 @@ import ( "golang.org/x/net/websocket" ) -const version = "v1.0.0" +const version = "v1.1.0" const sampleRate = 44100 var config RadioConfig = NewRadioConfig() @@ -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