attach play action to track results in quick search
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user