wip restore queues on start
This commit is contained in:
@@ -260,7 +260,7 @@ func NewAlbumPageHeader(page *AlbumPage) *AlbumPageHeader {
|
||||
go a.page.pm.PlayAlbum(a.page.albumID, 0, false)
|
||||
})
|
||||
shuffleBtn := widget.NewButtonWithIcon(lang.L("Shuffle"), myTheme.ShuffleIcon, func() {
|
||||
a.page.pm.LoadTracks(a.page.tracklist.GetTracks(), backend.Replace, true)
|
||||
a.page.pm.LoadTracks(a.page.tracklist.GetTracks(), backend.Replace, backend.Both, true)
|
||||
a.page.pm.PlayFromBeginning()
|
||||
})
|
||||
var pop *widget.PopUpMenu
|
||||
|
||||
@@ -98,7 +98,7 @@ func (a *FavoritesPage) createHeader(activeBtnIdx int) {
|
||||
widget.NewButtonWithIcon("", myTheme.TracksIcon, a.onShowFavoriteSongs))
|
||||
a.shuffleBtn = widget.NewButtonWithIcon(lang.L("Shuffle"), myTheme.ShuffleIcon, func() {
|
||||
if tr := a.tracklistOrNil(); tr != nil {
|
||||
a.pm.LoadTracks(tr.GetTracks(), backend.Replace, true /*shuffle*/)
|
||||
a.pm.LoadTracks(tr.GetTracks(), backend.Replace, backend.Both, true /*shuffle*/)
|
||||
a.pm.PlayFromBeginning()
|
||||
}
|
||||
})
|
||||
|
||||
@@ -159,18 +159,18 @@ func NewNowPlayingPage(
|
||||
a.relatedList.OnSetRating = a.queueList.OnSetRating
|
||||
a.relatedList.OnSetFavorite = a.queueList.OnSetFavorite
|
||||
a.relatedList.OnPlayItemAt = func(idx int) {
|
||||
a.pm.LoadTracks(a.related, backend.Replace, false)
|
||||
a.pm.LoadTracks(a.related, backend.Replace, backend.Both, false)
|
||||
a.pm.PlayTrackAt(idx)
|
||||
}
|
||||
a.relatedList.OnAddToQueue = func(items []mediaprovider.MediaItem) {
|
||||
a.pm.LoadItems(items, backend.Append, false)
|
||||
a.pm.LoadItems(items, backend.Append, backend.Both, false)
|
||||
}
|
||||
a.relatedList.OnPlaySelection = func(items []mediaprovider.MediaItem, shuffle bool) {
|
||||
a.pm.LoadItems(items, backend.Replace, shuffle)
|
||||
a.pm.LoadItems(items, backend.Replace, backend.Both, shuffle)
|
||||
a.pm.PlayFromBeginning()
|
||||
}
|
||||
a.relatedList.OnPlaySelectionNext = func(items []mediaprovider.MediaItem) {
|
||||
a.pm.LoadItems(items, backend.InsertNext, false)
|
||||
a.pm.LoadItems(items, backend.InsertNext, backend.Both, false)
|
||||
}
|
||||
a.relatedList.OnPlaySongRadio = func(track *mediaprovider.Track) {
|
||||
go func() {
|
||||
|
||||
@@ -348,11 +348,11 @@ func NewPlaylistPageHeader(page *PlaylistPage) *PlaylistPageHeader {
|
||||
})
|
||||
a.editButton.Hidden = true
|
||||
playButton := widget.NewButtonWithIcon(lang.L("Play"), theme.MediaPlayIcon(), func() {
|
||||
a.page.pm.LoadTracks(a.page.tracks, backend.Replace, false)
|
||||
a.page.pm.LoadTracks(a.page.tracks, backend.Replace, backend.Both, false)
|
||||
a.page.pm.PlayFromBeginning()
|
||||
})
|
||||
shuffleBtn := widget.NewButtonWithIcon(lang.L("Shuffle"), myTheme.ShuffleIcon, func() {
|
||||
a.page.pm.LoadTracks(a.page.tracks, backend.Replace, true)
|
||||
a.page.pm.LoadTracks(a.page.tracks, backend.Replace, backend.Both, true)
|
||||
a.page.pm.PlayFromBeginning()
|
||||
})
|
||||
|
||||
|
||||
@@ -25,20 +25,20 @@ func (m *Controller) ConnectTracklistActions(tracklist *widgets.Tracklist) {
|
||||
func (m *Controller) connectTracklistActionsWithReplayGainMode(tracklist *widgets.Tracklist, mode player.ReplayGainMode) {
|
||||
tracklist.OnAddToPlaylist = m.DoAddTracksToPlaylistWorkflow
|
||||
tracklist.OnPlaySelectionNext = func(tracks []*mediaprovider.Track) {
|
||||
m.App.PlaybackManager.LoadTracks(tracks, backend.InsertNext, false)
|
||||
m.App.PlaybackManager.LoadTracks(tracks, backend.InsertNext, backend.Both, false)
|
||||
}
|
||||
tracklist.OnAddToQueue = func(tracks []*mediaprovider.Track) {
|
||||
m.App.PlaybackManager.LoadTracks(tracks, backend.Append, false)
|
||||
m.App.PlaybackManager.LoadTracks(tracks, backend.Append, backend.Both, false)
|
||||
}
|
||||
tracklist.OnPlayTrackAt = func(idx int) {
|
||||
m.App.PlaybackManager.LoadTracks(tracklist.GetTracks(), backend.Replace, false)
|
||||
m.App.PlaybackManager.LoadTracks(tracklist.GetTracks(), backend.Replace, backend.Both, false)
|
||||
if m.App.Config.ReplayGain.Mode == backend.ReplayGainAuto {
|
||||
m.App.PlaybackManager.SetReplayGainMode(mode)
|
||||
}
|
||||
m.App.PlaybackManager.PlayTrackAt(idx)
|
||||
}
|
||||
tracklist.OnPlaySelection = func(tracks []*mediaprovider.Track, shuffle bool) {
|
||||
m.App.PlaybackManager.LoadTracks(tracks, backend.Replace, shuffle)
|
||||
m.App.PlaybackManager.LoadTracks(tracks, backend.Replace, backend.Both, shuffle)
|
||||
if m.App.Config.ReplayGain.Mode == backend.ReplayGainAuto {
|
||||
m.App.PlaybackManager.SetReplayGainMode(mode)
|
||||
}
|
||||
@@ -70,7 +70,7 @@ func (m *Controller) connectTracklistActionsWithReplayGainMode(tracklist *widget
|
||||
log.Println("Error getting song radio: ", err)
|
||||
return
|
||||
}
|
||||
m.App.PlaybackManager.LoadTracks(tracks, backend.Replace, false)
|
||||
m.App.PlaybackManager.LoadTracks(tracks, backend.Replace, backend.Both, false)
|
||||
if m.App.Config.ReplayGain.Mode == backend.ReplayGainAuto {
|
||||
m.App.PlaybackManager.SetReplayGainMode(mode)
|
||||
}
|
||||
@@ -164,11 +164,11 @@ func (m *Controller) onDownloadAlbum(albumID string) {
|
||||
func (m *Controller) ConnectArtistGridActions(grid *widgets.GridView) {
|
||||
grid.OnShowItemPage = func(id string) { m.NavigateTo(ArtistRoute(id)) }
|
||||
grid.OnPlayNext = func(artistID string) {
|
||||
go m.App.PlaybackManager.LoadTracks(m.GetArtistTracks(artistID), backend.InsertNext, false)
|
||||
go m.App.PlaybackManager.LoadTracks(m.GetArtistTracks(artistID), backend.InsertNext, backend.Both, false)
|
||||
}
|
||||
grid.OnPlay = func(artistID string, shuffle bool) { go m.App.PlaybackManager.PlayArtistDiscography(artistID, shuffle) }
|
||||
grid.OnAddToQueue = func(artistID string) {
|
||||
go m.App.PlaybackManager.LoadTracks(m.GetArtistTracks(artistID), backend.Append, false)
|
||||
go m.App.PlaybackManager.LoadTracks(m.GetArtistTracks(artistID), backend.Append, backend.Both, false)
|
||||
}
|
||||
grid.OnAddToPlaylist = func(artistID string) {
|
||||
m.DoAddTracksToPlaylistWorkflow(
|
||||
|
||||
@@ -46,7 +46,7 @@ func (c *Controller) ShowQuickSearch() {
|
||||
case mediaprovider.ContentTypeTrack:
|
||||
c.App.PlaybackManager.LoadTracks(
|
||||
[]*mediaprovider.Track{item.(*mediaprovider.Track)},
|
||||
backend.Replace, false /*shuffle*/)
|
||||
backend.Replace, backend.Both, false /*shuffle*/)
|
||||
c.App.PlaybackManager.PlayFromBeginning()
|
||||
case mediaprovider.ContentTypeAlbum:
|
||||
go c.App.PlaybackManager.PlayAlbum(id, 0, shuffle)
|
||||
@@ -69,7 +69,7 @@ func (c *Controller) ShowQuickSearch() {
|
||||
go func() {
|
||||
tracks, err := c.GetSongRadioTracks(track)
|
||||
if err != nil {
|
||||
c.App.PlaybackManager.LoadTracks(tracks, backend.Replace, false)
|
||||
c.App.PlaybackManager.LoadTracks(tracks, backend.Replace, backend.Both, false)
|
||||
c.App.PlaybackManager.PlayFromBeginning()
|
||||
}
|
||||
}()
|
||||
@@ -99,6 +99,7 @@ func (c *Controller) ShowQuickSearch() {
|
||||
|
||||
func (c *Controller) handleSearchDialogOnAddToQueue(t mediaprovider.ContentType, id string, item any, next bool) {
|
||||
insertMode := backend.Append
|
||||
queueType := backend.Both
|
||||
if next {
|
||||
insertMode = backend.InsertNext
|
||||
}
|
||||
@@ -106,13 +107,13 @@ func (c *Controller) handleSearchDialogOnAddToQueue(t mediaprovider.ContentType,
|
||||
case mediaprovider.ContentTypeTrack:
|
||||
c.App.PlaybackManager.LoadTracks(
|
||||
[]*mediaprovider.Track{item.(*mediaprovider.Track)},
|
||||
insertMode, false /*shuffle*/)
|
||||
insertMode, queueType, false /*shuffle*/)
|
||||
case mediaprovider.ContentTypeAlbum:
|
||||
go c.App.PlaybackManager.LoadAlbum(id, insertMode, false)
|
||||
case mediaprovider.ContentTypeArtist:
|
||||
go func() {
|
||||
tracks := c.GetArtistTracks(id)
|
||||
c.App.PlaybackManager.LoadTracks(tracks, insertMode, false)
|
||||
c.App.PlaybackManager.LoadTracks(tracks, insertMode, queueType, false)
|
||||
}()
|
||||
case mediaprovider.ContentTypePlaylist:
|
||||
go c.App.PlaybackManager.LoadPlaylist(id, insertMode, false)
|
||||
@@ -120,7 +121,7 @@ func (c *Controller) handleSearchDialogOnAddToQueue(t mediaprovider.ContentType,
|
||||
go func() {
|
||||
tr, err := c.App.ServerManager.Server.GetRandomTracks(id /*genre name*/, c.App.Config.Application.EnqueueBatchSize)
|
||||
if err != nil {
|
||||
c.App.PlaybackManager.LoadTracks(tr, insertMode, false /*shuffle*/)
|
||||
c.App.PlaybackManager.LoadTracks(tr, insertMode, queueType, false /*shuffle*/)
|
||||
}
|
||||
}()
|
||||
case mediaprovider.ContentTypeRadioStation:
|
||||
|
||||
Reference in New Issue
Block a user