Commit Graph

4491 Commits

Author SHA1 Message Date
chme
e3b0442fc7 [README] Add documentation for expression parameter in queue/items/add 2019-01-02 09:51:54 +01:00
chme
2ead24a2f7 [jsonapi] Add optional expression parameter to queue/items/add endpoint
Adds support to add tracks by a smart pl query expression
2019-01-02 09:51:54 +01:00
chme
ca99bf8718 [jsonapi] Sort files by filename and return directories in api/config 2019-01-02 09:51:54 +01:00
ejurgensen
cd7af46c36 [db] Generic version of db_drop_indices/triggers + fix memleak
Memleak in db_drop_triggers() in error case (array "index" not being freed)
2019-01-01 21:34:29 +01:00
ejurgensen
faa41ee206
Merge pull request #653 from chme/db_init
[db] Fix missing creation of triggers for persistent ids in db init
2019-01-01 10:35:40 +01:00
chme
010e8b2959 [db] Fix missing creation of triggers for persistent ids in db init 2019-01-01 09:38:02 +01:00
ejurgensen
333c46318d Merge branch 'db_refactor1' 2018-12-31 15:57:49 +01:00
ejurgensen
19c39bf133 [scan] Always use compilation_artist for tracks in compilation dir
Reason is that tracks in compilation dir are not to be trusted when it comes
to album_artist.

See afee99d5db (commitcomment-31807556).
2018-12-31 15:55:49 +01:00
ejurgensen
9929832b5f [db] Don't zero play_count, skip_count, seek, time_played, time_skipped on update
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).
2018-12-31 15:55:49 +01:00
ejurgensen
734b4e9851 [db] Transfer some library tag fixup to the db's generic fixup
Transfer setting defaults for media_kind and item_kind. Also sets
default media_kind for queue_items.
2018-12-31 15:55:49 +01:00
ejurgensen
c3eb95d201 [db] Change use of compilation_artist, so that album_artist has preference
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.
2018-12-31 15:55:49 +01:00
ejurgensen
9fc2065ada [db] Use album_artist if we have no artist metadata 2018-12-31 15:55:49 +01:00
ejurgensen
8043ca1291 [db] Drop upgrade support for pre-v17 db versions
Also drop the old way of recreating the files table, it is now replaced by
db_table_upgrade().
2018-12-31 15:55:49 +01:00
ejurgensen
a4c254e6e7 [db] Recreate v20 files table, so that new constraints take effect if upgrading
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.
2018-12-31 15:55:49 +01:00
ejurgensen
1de8f39264 [db] Generic fixup + align fixing up between mfi, pli and queue_item
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.
2018-12-31 15:55:49 +01:00
ejurgensen
fc5a66f86d [misc] New utility functions: trim, atrim and safe_snprintf_cat 2018-12-31 15:55:49 +01:00
ejurgensen
d3121f4ec7 [db] Use prepared statements for file insert, update and ping
Get rid of the SQL query strings, since they are prone to errors and are
probably also slower that using prepared statements.
2018-12-31 15:55:49 +01:00
ejurgensen
53d7005547 [pipe] Error check of b64_decode return value 2018-12-29 16:50:27 +01:00
ejurgensen
103dda29f3 [misc] Move CHECK_NULL inside b64_decode (around the malloc)
To stay in line with general use of the macro
2018-12-29 16:39:52 +01:00
chme
271978f41a [travis-ci] Build on Ubuntu 16.04 (Xenial) 2018-12-29 16:34:56 +01:00
chme
05fd28239b [travis] Build libwebsockets 2.0.3 from source 2018-12-29 16:34:56 +01:00
chme
788cb6f133 [pipe/raop] Check for NULL to avoid scan-build issues (in case of oom) 2018-12-29 16:34:56 +01:00
ejurgensen
a37fc0916f [alsa] Fix scan-build issue: Argument with 'nonnull' attribute passed null 2018-12-29 16:34:56 +01:00
chme
2ffb94c9d1 [db] Fix scan-build issue "Argument with 'nonnull' attribute passed
null"
2018-12-29 16:34:56 +01:00
chme
46b37b2c80 [daapd] Fix scan-build issue "Dereference of null pointer" 2018-12-29 16:34:56 +01:00
chme
75432ce73f [rtsp] Initialize addr to avoid scan-build issue "Assigned value is
garbage or undefined"
2018-12-29 16:34:56 +01:00
chme
f3a495cd37 [player] Fix memory leak if opening new source failed
player.c:2032:11: warning: Potential leak of memory pointed to by 'ps'
2018-12-29 16:34:56 +01:00
chme
b7f3e71f7e [db_upgrade] Fix memory leak in error case
db_upgrade.c:72:7: warning: Potential memory leak
2018-12-29 16:34:56 +01:00
chme
21ce281cd1 [filescanner] Fix Use-after-free error
library/filescanner_ffmpeg.c:396:7: warning: Use of memory after it is
freed
2018-12-29 16:34:56 +01:00
ejurgensen
80a86cbab5
Merge pull request #649 from chme/output_notification
[player] Send notification on output added/removed
2018-12-29 13:56:36 +01:00
chme
2a76e888f0 [player] Send notification on output added/removed 2018-12-29 08:46:00 +01:00
chme
d9f00a3ab6
Merge pull request #645 from whatdoineed2do/queue-add-item-count-fix
[jsonapi] correct count of tracks added returned
2018-12-28 19:54:55 +01:00
whatdoineed2do/Ray
e9f92ba1a7 [jsonapi] correct count of tracks added returned 2018-12-24 19:27:19 +00:00
chme
4961dd9141
Merge pull request #634 from chme/webinterface
Update player webinterface (v0.3.0)
2018-12-24 07:22:37 +01:00
chme
ef68e00b03 [htdocs] Rebuild player web interface v0.3.0
- 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)
2018-12-24 06:38:45 +01:00
chme
427772e3c8 [web-src] Add rating to track details 2018-12-24 06:38:45 +01:00
chme
7d4bf8e75e [web-src] Fix building index list for genre/album tracks (use title_sort instead of title) 2018-12-24 06:38:45 +01:00
chme
67af2cc6a9 [web-src] Refactor showing notification after queue add action 2018-12-23 10:35:34 +01:00
chme
b0bfa6be60 [web-src] Change style for info button in now playing page 2018-12-23 09:31:05 +01:00
chme
2a3bcead37 [web-src] Fix generating id for index nav (name_sort instead of name) 2018-12-23 09:31:05 +01:00
chme
7714558043 [web-src] Update dependencies 2018-12-23 09:31:05 +01:00
chme
c423266b73 [web-src] Add visual indication that for index nav 2018-12-23 09:31:05 +01:00
chme
7b07d9cee7 [web-src] Fix margin/padding top for media item lists in pages with index navigation 2018-12-23 09:31:05 +01:00
chme
11179f7ac5 [web-src] Add index navigation to artist tracks page 2018-12-23 09:31:05 +01:00
chme
8b37039b15 [web-src] Rename PageTracks to PageArtistTracks 2018-12-23 09:31:05 +01:00
chme
bb9bf36de7 [web-src] Reduce size of icon + text for actions in dialog footer 2018-12-23 09:31:05 +01:00
chme
63be54313f [web-src] Show cover art in spotify album dialog 2018-12-23 09:31:04 +01:00
chme
1d5d6f4858 [web-src] Add index button list to genre album/tracks page and generate index-id-tag in ListItemXXX 2018-12-23 09:31:04 +01:00
chme
1d21b7cc1d [web-src] Only show index button list if more than one entry is present 2018-12-23 09:31:04 +01:00
chme
f8f23ced86 [web-src] Reduce timeout for scroll behavior to 10 ms 2018-12-23 09:31:04 +01:00