in progress MediaItem refactor - does not build

This commit is contained in:
Drew Weymouth
2024-05-31 09:35:46 -07:00
parent 403e1a19b5
commit f67a0c5fc1
10 changed files with 171 additions and 44 deletions
+26 -3
View File
@@ -15,6 +15,25 @@ type PlaybackManager struct {
engine *playbackEngine
}
type MediaType int
const (
MediaTypeTrack MediaType = iota
MediaTypeRadioStation
)
type NowPlayingMetadata struct {
Type MediaType
ID string
Title string
Artists []string
ArtistIDs []string
Album string
AlbumID string
CoverArtID string
Duration int
}
func NewPlaybackManager(
ctx context.Context,
s *ServerManager,
@@ -46,16 +65,20 @@ func (p *PlaybackManager) DisableCallbacks() {
}
// Gets the curently playing song, if any.
func (p *PlaybackManager) NowPlaying() *mediaprovider.Track {
func (p *PlaybackManager) NowPlaying() *NowPlayingMetadata {
return p.engine.NowPlaying()
}
func (p *PlaybackManager) NowPlayingMediaItem() mediaprovider.MediaItem {
return p.engine.NowPlayingMediaItem()
}
func (p *PlaybackManager) NowPlayingIndex() int {
return p.engine.NowPlayingIndex()
}
// Sets a callback that is notified whenever a new song begins playing.
func (p *PlaybackManager) OnSongChange(cb func(nowPlaying *mediaprovider.Track, justScrobbledIfAny *mediaprovider.Track)) {
func (p *PlaybackManager) OnSongChange(cb func(nowPlaying *NowPlayingMetadata, justScrobbledIfAny *mediaprovider.Track)) {
p.engine.onSongChange = append(p.engine.onSongChange, cb)
}
@@ -194,7 +217,7 @@ func (p *PlaybackManager) fetchAndPlayTracks(fetchFn func() ([]*mediaprovider.Tr
}
}
func (p *PlaybackManager) GetPlayQueue() []*mediaprovider.Track {
func (p *PlaybackManager) GetPlayQueue() []mediaprovider.MediaItem {
return p.engine.GetPlayQueue()
}