Commit Graph

684 Commits

Author SHA1 Message Date
Max Kellermann f5c9071494 *: copyright year 2018 2018-10-31 17:54:59 +01:00
Max Kellermann 66ab2de578 Merge branch 'v0.20.x' 2018-10-22 18:20:29 +02:00
Max Kellermann db27bb76e2 db: fix broken command "list ... group"
Grouping in the "list" command was completely broken from the start,
unlike "count group".  I have no idea what I have been thinking when I
wrote commit ae178c77bd, but it didn't
make any sense.

This commit is a rewrite of the feature.

For clients to be able to detect this feature, this commit also
increments the protocol version.
2018-10-22 13:08:24 +02:00
Max Kellermann 7cfe929c36 db/Count: print empty group if song without grouped tag exists
Be consistent with "list" responses.
2018-10-22 12:42:18 +02:00
Max Kellermann 6c06244e83 db/Count: move code to tag/VisitCallback.hxx 2018-10-22 11:50:51 +02:00
Max Kellermann 0340b01392 db/Count: use ApplyTagFallback() 2018-10-22 10:46:26 +02:00
Max Kellermann 94592c1406 build with Meson instead of autotools
So long, autotools!  This is my last MPD related project to migrate
away from it.  It has its strengths, but also very obvious weaknesses
and weirdnesses.  Today, many of its quirks are not needed anymore,
and are cumbersome and slow.  Now welcome our new Meson overlords!
2018-10-14 23:41:38 +02:00
Max Kellermann 6c40a27809 db/update/ExcludeList: fix variable name in #else block 2018-10-01 08:40:53 +02:00
Max Kellermann 8736a3533b db/update/ExcludeList: add missing #ifdef 2018-10-01 08:40:15 +02:00
Max Kellermann 0701333ec1 db/proxy: forward filter as expression to server
This adds support for the full set of MPD 0.21 filter types.
2018-09-02 22:39:45 +02:00
Max Kellermann a8e70f0901 db/proxy: forward sort and window to server 2018-09-02 17:51:30 +02:00
Max Kellermann c7c32a3ce9 db/Print: move sort/window emulation code to class DatabaseVisitorHelper
That way, each plugin can decide to implement it better.
2018-09-02 17:37:02 +02:00
Max Kellermann 94694e0f33 db/simple: pass DatabaseSelection to WalkMount()
This passes the new `sort` and `window` attributes to the mounted
database.
2018-09-02 17:13:35 +02:00
Max Kellermann a73176a1e9 db/Helpers: fix include guard 2018-09-02 12:32:33 +02:00
Max Kellermann e6a974a93e db/Selection: add sort and window
Remove them as parameters from `db_selection_print()`.
2018-09-02 11:10:04 +02:00
Max Kellermann 9894967fcb db/Selection: move bool attribute to the end
May allow a better memory layout.
2018-09-02 11:10:04 +02:00
Max Kellermann 92da483ecd db/Selection: add noexcept 2018-09-02 11:10:04 +02:00
Max Kellermann 9cc960ac5e db/proxy: require MPD 0.19 2018-09-02 11:07:32 +02:00
Max Kellermann 18dd082f1e db/proxy: use ~0 instead of -1
No undefined behavior.
2018-09-02 11:06:08 +02:00
Max Kellermann 81b734be10 db/Interface: add "noexcept" 2018-09-02 10:20:48 +02:00
Max Kellermann c59be7ced3 db/Interface: add more documentation about exceptions 2018-09-02 10:19:10 +02:00
Max Kellermann c5c4d4a57e db/proxy: forward the audio format
Requires libmpdclient 2.15.
2018-09-02 08:38:23 +02:00
Max Kellermann 2d0b429b6a db/proxy: require libmpdclient 2.9 2018-09-02 08:21:11 +02:00
Max Kellermann 60620d9af5 db/Print: move variable i 2018-09-02 08:17:22 +02:00
Max Kellermann 15b2a4862e protocol/RangeArg: add Contains() 2018-09-02 08:17:22 +02:00
Max Kellermann 2915d2dd0f protocol/RangeArg: add IsAll() 2018-09-02 08:17:22 +02:00
Max Kellermann 993f8d6a5e db/Print: pass RangeArg to db_selection_print() 2018-09-02 08:17:22 +02:00
Max Kellermann ec54754e22 Compiler.h: move to util/ 2018-08-20 16:19:17 +02:00
Max Kellermann cc64c715a2 db/update/Service: Enqueue() throws on error 2018-08-19 23:15:52 +02:00
Max Kellermann 01d3777574 decoder/Thread, ...: log all exceptions 2018-08-09 11:14:40 +02:00
Max Kellermann d929d0c26f song/Filter: move each class into a separate source 2018-08-02 13:54:36 +02:00
Max Kellermann 90201e9970 DetachedSong, db/LightSong, SongFilter: move to src/song/ 2018-08-02 13:51:18 +02:00
Max Kellermann f7fb8a33d7 db/Print: pass TagType to PrintUniqueTags() 2018-07-25 11:21:47 +02:00
Max Kellermann 0505cb8f7e db/Print: move code to PrintSongUris() 2018-07-25 11:18:45 +02:00
Max Kellermann 2cfccc1c34 SongFilter: make Item an interface
Prepare to allow more complex expressions.
2018-07-25 11:04:41 +02:00
Max Kellermann 426b9672cf db/Configured: use struct ConfigData 2018-07-17 23:06:17 +02:00
Max Kellermann ad866f7a7d db/update/Config: use struct ConfigData 2018-07-17 22:41:28 +02:00
Max Kellermann 338a6f2a96 db/update/Walk: move UpdateConfig initialization to class UpdateService 2018-07-17 22:39:52 +02:00
Max Kellermann c3aa53cc97 db/update/Walk: move configuration to struct UpdateConfig 2018-07-17 22:36:37 +02:00
Max Kellermann 5b192beaa5 config/Global: remove ConfigBlock::SetUsed() call, let caller do that
This fixes an old bug which caused the "unused" warnings to be
unreliable; only the first block in the list was marked as being
"used", no matter if it was really used, and the rest was never marked
as "used", suppressing all warnings for them.
2018-07-17 21:08:41 +02:00
Max Kellermann af33a9f4b8 config/Block: allow moving name and value 2018-07-17 20:27:46 +02:00
Max Kellermann 99d5b61698 fs/Path: add operator/(Path,Path)
Modeled after std::filesystem::operator/() from C++17.
2018-07-17 18:33:32 +02:00
Max Kellermann 816603fd9a config/Config*: rename files, drop "Config" prefix 2018-07-16 19:50:07 +02:00
Max Kellermann 72b6c09a73 db/simple: add an AudioFormat to each Song 2018-07-06 22:49:02 +02:00
Max Kellermann 2c30e16371 db/simple/Song: remove obsolete comment 2018-07-06 21:50:53 +02:00
Max Kellermann 72437ca9e2 db/simple/Song: use C++11 initializers 2018-07-06 21:49:52 +02:00
Max Kellermann 9a29d02e7e Merge branch 'v0.20.x' 2018-07-06 19:43:01 +02:00
Max Kellermann b8259e604a db/update/{Walk,ExcludeList}: use InputStream to read .mpdignore
Supports .mpdignore on NFS/SMB and others (closes #290).
2018-07-06 19:19:04 +02:00
Max Kellermann 60d5bf0240 util/StringFormat: new utility library 2018-07-06 19:07:02 +02:00
Max Kellermann 63406efcd8 db/update/ExcludeList: allow comments only at start of line 2018-07-06 18:27:17 +02:00