]> code.octet-stream.net Git - broadcaster/blobdiff - protocol/protocol.go
Allow web user to cancel transmission in progress
[broadcaster] / protocol / protocol.go
index d168bc36ba3e115f1fec63293e8410f5d2559c3d..e23da3a29486d91eabbf40244abef38345a77c1d 100644 (file)
@@ -19,6 +19,7 @@ const (
 
        FilesType     = "files"
        PlaylistsType = "playlists"
+       StopType      = "stop"
 
        // Status values
 
@@ -52,6 +53,11 @@ type PlaylistsMessage struct {
        Playlists []PlaylistSpec
 }
 
+// Any playlist currently being played should be stopped and PTT disengaged.
+type StopMessage struct {
+       T string
+}
+
 type StatusMessage struct {
        T string
 
@@ -148,5 +154,14 @@ func ParseMessage(data []byte) (string, interface{}, error) {
                return t.T, status, nil
        }
 
+       if t.T == StopType {
+               var stop StopMessage
+               err = json.Unmarshal(data, &stop)
+               if err != nil {
+                       return "", nil, err
+               }
+               return t.T, stop, nil
+       }
+
        return "", nil, errors.New(fmt.Sprintf("unknown message type %v", t.T))
 }