diff --git a/internal/radio/listeners.go b/internal/radio/listeners.go index 9b0ee5a..41f251c 100644 --- a/internal/radio/listeners.go +++ b/internal/radio/listeners.go @@ -1,6 +1,7 @@ package radio import ( + "encoding/json" "errors" "fmt" "math" @@ -58,3 +59,14 @@ func (l *ListenerCounter) Dec() (int, error) { l.current-- return l.current, nil } + +func (l *ListenerCounter) MarshalJSON() ([]byte, error) { + l.mut.Lock() + defer l.mut.Unlock() + return json.Marshal(&struct { + Current int `json:"current"` + Peak int `json:"peak"` + }{ + Current: l.current, + Peak: l.peak}) +}