Add sort order selector to albums page

This commit is contained in:
Drew Weymouth
2022-12-28 17:48:52 -08:00
parent ae5b7111bc
commit 105adf4e08
4 changed files with 125 additions and 42 deletions
+35 -9
View File
@@ -26,22 +26,48 @@ func NewLibraryManager(s *ServerManager) *LibraryManager {
}
}
func (l *LibraryManager) RecentlyAddedIter() AlbumIterator {
return l.newBaseIter("newest")
}
type AlbumSortOrder string
func (l *LibraryManager) RecentlyPlayedIter() AlbumIterator {
return l.newBaseIter("recent")
const (
RecentlyAdded AlbumSortOrder = "Recently Added"
RecentlyPlayed AlbumSortOrder = "Recently Played"
FrequentlyPlayed AlbumSortOrder = "Frequently Played"
TitleAZ AlbumSortOrder = "Title (A-Z)"
ArtistAZ AlbumSortOrder = "Artist (A-Z)"
)
var (
AlbumSortOrders []string = []string{
string(RecentlyAdded),
string(RecentlyPlayed),
string(FrequentlyPlayed),
string(TitleAZ),
string(ArtistAZ),
}
)
func (l *LibraryManager) AlbumsIter(sort AlbumSortOrder) AlbumIterator {
switch sort {
case RecentlyAdded:
return l.newBaseIter("newest")
case RecentlyPlayed:
return l.newBaseIter("recent")
case FrequentlyPlayed:
return l.newBaseIter("frequent")
case TitleAZ:
return l.newBaseIter("alphabeticalByName")
case ArtistAZ:
return l.newBaseIter("alphabeticalByArtist")
default:
log.Printf("Undefined album sort order: %s", sort)
return nil
}
}
func (l *LibraryManager) StarredIter() AlbumIterator {
return l.newBaseIter("starred")
}
func (l *LibraryManager) FrequentlyPlayedIter() AlbumIterator {
return l.newBaseIter("frequent")
}
func (l *LibraryManager) SearchIter(query string) AlbumIterator {
return l.newSearchIter(query)
}