attach play action to track results in quick search

This commit is contained in:
Drew Weymouth
2023-11-05 14:51:59 -08:00
parent 7d7d315d74
commit de8539df0a
4 changed files with 20 additions and 1 deletions
+2
View File
@@ -37,6 +37,8 @@ type Favorites struct {
type MediaProvider interface {
SetPrefetchCoverCallback(cb func(coverArtID string))
GetTrack(trackID string) (*Track, error)
GetAlbum(albumID string) (*AlbumWithTracks, error)
GetAlbumInfo(albumID string) (*AlbumInfo, error)
@@ -55,6 +55,14 @@ func (s *subsonicMediaProvider) EditPlaylistTracks(id string, trackIDsToAdd []st
return s.client.UpdatePlaylistTracks(id, trackIDsToAdd, trackIndexesToRemove)
}
func (s *subsonicMediaProvider) GetTrack(trackID string) (*mediaprovider.Track, error) {
tr, err := s.client.GetSong(trackID)
if err != nil {
return nil, err
}
return toTrack(tr), nil
}
func (s *subsonicMediaProvider) GetAlbum(albumID string) (*mediaprovider.AlbumWithTracks, error) {
al, err := s.client.GetAlbum(albumID)
if err != nil {
+9
View File
@@ -214,6 +214,15 @@ func (p *PlaybackManager) PlayPlaylist(playlistID string, firstTrack int, shuffl
return p.player.PlayTrackAt(firstTrack)
}
func (p *PlaybackManager) PlayTrack(trackID string) error {
tr, err := p.sm.Server.GetTrack(trackID)
if err != nil {
return err
}
p.LoadTracks([]*mediaprovider.Track{tr}, false, false)
return p.PlayFromBeginning()
}
func (p *PlaybackManager) PlayFromBeginning() error {
return p.player.PlayFromBeginning()
}
+1 -1
View File
@@ -503,7 +503,7 @@ func (c *Controller) ShowQuickSearch() {
case mediaprovider.ContentTypeArtist:
c.NavigateTo(ArtistRoute(id))
case mediaprovider.ContentTypeTrack:
// TODO
go c.App.PlaybackManager.PlayTrack(id)
case mediaprovider.ContentTypePlaylist:
c.NavigateTo(PlaylistRoute(id))
case mediaprovider.ContentTypeGenre: