]> code.octet-stream.net Git - broadcaster/blobdiff - radio/main.go
Bump to v1.2.0
[broadcaster] / radio / main.go
index 1f95d76e6bdd0c13816959501cfc48b73b3780e8..13824b023b33d96f453f02b8787b747ca5b0042b 100644 (file)
@@ -20,7 +20,7 @@ import (
        "golang.org/x/net/websocket"
 )
 
-const version = "v1.0.0"
+const version = "v1.2.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