- Only add/play tracks matching the genre in the genre pages
- Add new files page
- Workaround for the issue that forked-daapd cannot pause playback for
stream or a pipe
- Listen for "database" events to properly update the library stats and
display the correct links on the top nav bar
Fixes missing display of audiobooks/podcasts link in top navbar after
adding the first audiobook/podcast (library updated through inotify and
not with a full scan)
forked-daapd can not pause playback from a stream or a pipe and returns
an error and aborts playback in that case. This works around this issue
by stopping playback if the now playing item is a stream or a pipe.
If a file gets updated/rescanned we generally don't want to reset the above
values. This commit adds DB_FLAG_NO_ZERO, which marks a field so that
db_file_update() will only update it if the new value is non-zero (i.e. the
caller probably has a "better" value).
This change means that we will use album_artist even if compilation_artist
is configured, thus compilation_artist will only be used to override artist.
The constraints on songalbumid and songartistid where changed with v20, so we
need to make sure they take effect when upgrading.
This commit tries to do the table recreation like sqlite recommends and without
manually crafted copy queries that are probably prone to errors.
Since we are recreating anyway, this commit also reorders the columns slightly.
It also includes auto-drop/recreation of triggers (should really have been its
own commit) during upgrade, like is already done with indices.
The idea here is to make sure the fixing up of tags is done in a consistent
manner. For strings, this means stuff like trimming and empty strings -> null
are applied the same unless there are special exception rules set. It also
means that defaults are applied the same across structs, e.g. "Unknown artist"
for both mfi->artist and queue_item->artist.
The change is also necessary because we want to remove trimming from the sql
query and instead implement it ourselves.
- fix for play shuffle
- index based navigation for artists, albums, genres, genre
albums/tracks
- dedicated genre tracks page
- refactor modal dialogs into separate components
- refactor list item components into functional components
- show queue item modal dialog in now playing page
- add composer to track and queue item modal dialog
- show cover artwork in album modal dialog
- reduce timeout for scroll behavior (should reduce ugly jumps
navigating to different routes)