Commit Graph

12042 Commits

Author SHA1 Message Date
Max Kellermann 61eff1cddf Makefile.am: install the SVG icon
Closes #366
2018-10-22 18:39:50 +02:00
Max Kellermann c26703b7e6 SongFilter: check value.empty() after checking tag fallbacks
In this new order, a filter 'AlbumArtist ""' matches only on songs
which neither have `AlbumArtist` nor `Artist`.
2018-10-22 18:34:47 +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 53448e4633 tag/Fallback: add tag fallbacks for AlbumArtistSort, ArtistSort
Just like AlbumArtist falls back to Artist, AlbumArtistSort should
fall back tom AlbumArtist, ArtistSort and finally Artist.

Closes #355
2018-10-22 10:52:42 +02:00
Max Kellermann 21adc78713 SongFilter: use ApplyTagFallback() 2018-10-22 10:46:26 +02:00
Max Kellermann 0340b01392 db/Count: use ApplyTagFallback() 2018-10-22 10:46:26 +02:00
Max Kellermann 94aed92e9a tag/Set: move code to ApplyTagWithFallback() 2018-10-22 10:10:43 +02:00
Max Kellermann 6b9966e969 tag/Set: include cleanup 2018-10-22 10:09:56 +02:00
Max Kellermann 4bc5333995 tag/Set: use TagBuilder::AddItemUnchecked()
This improves the workaround from commit
b5ba94f1de and actually gives a useful
result for "list" with a disabled tag.
2018-10-22 10:06:04 +02:00
Max Kellermann ff58b8d255 tag/Builder: move code to AddItemUnchecked() 2018-10-22 10:03:47 +02:00
Max Kellermann 3f3f0af543 python/build/libs.py: upgrade CURL to 7.61.1 2018-10-22 08:53:30 +02:00
Max Kellermann 850d208b7b python/build/libs.py: upgrade Opus to 1.3 2018-10-22 08:44:11 +02:00
Max Kellermann da563940b4 python/build/libs.py: upgrade libmpdclient to 2.16 2018-10-22 08:32:32 +02:00
Max Kellermann 282859a62a java/String: include cleanup 2018-08-28 13:07:28 +02:00
Max Kellermann fbeb5eefdc java/Class: drop unnecessary namespace spec 2018-08-28 13:01:01 +02:00
Max Kellermann 85bada0505 java/Class: use DiscardException() in FindOptional()
Sometimes, the JVM returns a non-nullptr value with an exception
pending (seen on Android 1.6, maybe a Dalvik bug?).  Let's catch all
such cases.
2018-08-28 13:00:08 +02:00
Max Kellermann cf96135125 android/Main: remove SDK_INT diversion
MPD has minSdkVersion=21 which is above all the checks here.
2018-08-20 11:25:47 +02:00
Max Kellermann 1ff97783ea Makefile.am: use $(AM_V_GEN) and $(AM_V_at) 2018-08-20 11:22:56 +02:00
Max Kellermann 2bc42c6445 Makefile.am: use $(MKDIR_P) instead of "mkdir -p" 2018-08-20 11:13:25 +02:00
Max Kellermann 49372a222f Makefile.am: use $(@D)/$(@F) instead of $(dir/notdir ...) 2018-08-20 11:04:35 +02:00
Thomas Guillem 9127afbf3f lib/nfs/Connection: use nfs_stat64_async
Since nfs_stat_async is deprecated.
2018-08-20 10:51:24 +02:00
Max Kellermann f2caac595a configure.ac: specify minimum libnfs version 1.9.5
This is the version in Debian Jessie (oldstable), a reasonable "old
enough" version to keep support for.
2018-08-20 10:51:24 +02:00
Thomas Guillem 14d3a7ae83 android: use a gray notification icon 2018-08-20 00:07:35 +02:00
Thomas Guillem f37ab5482b android: improve Settings UI and run mpd on boot
add 2 preferences to:
 - enable Wakelock when MPD is running (prevent suspend)
 - run MPD on boot

and display MPD logs
2018-08-20 00:07:18 +02:00
Thomas Guillem ef38dbe5bf android: fix AndroidManifest.xml warnings
- <uses-permission> must be before <application>
 - specify allowBackup (default)
2018-08-20 00:07:18 +02:00
Thomas Guillem 54a5491b86 android: Main is now a service
- add Settings: Activity to start / stop MPD Service (Main).

- Main is a service that run in foreground with a notification. See
  Service.startForeground documentation for more details.

- Main.Client is used to control the service: start or stop it and also receive
  callbacks when service encounters an error, is killed, is started or is
  stopped.

- Main.start to start the service without any fallback.
2018-08-19 23:35:49 +02:00
Thomas Guillem aff070bcbb android: add LogListener
A Java object to send logs on the android side.
2018-08-19 23:32:24 +02:00
Max Kellermann 5af2632d4f Makefile.am: use javac instead of javah to generate JNI header
javah is deprecated.
2018-08-19 23:27:12 +02:00
Max Kellermann 44a31357f4 android/AndroidManifest.xml: increase targetSdkVersion to 26 (required by Google Play) 2018-08-18 20:44:18 +02:00
Joshua Wise 29f78b18b1 storage/plugins/CurlStorage: URL-encode paths in CurlStorage::MapUTF8
When using a database that was not created with a WebDAV music_directory
(i.e., if using a remote database, on which updates happen locally) and
using the Curl storage plugin, MPD would previously send GET requests that
had unescaped spaces in them.  This change uses Curl's URL-encode API to
solve this.
2018-08-17 23:03:56 +02:00
Max Kellermann 147872fe97 lib/curl/Easy: add curl_easy_escape() wrapper 2018-08-17 23:02:49 +02:00
Max Kellermann 38edb58054 increment version number to 0.20.22 2018-08-17 23:02:13 +02:00
Max Kellermann 98afae2520 release v0.20.21 2018-08-17 19:50:59 +02:00
Max Kellermann ddc85c620f configure.ac: make the GIT_COMMIT command worktree-safe
`$srcdir/.git` doesn't exist if `$srcdir` is a worktree.
2018-08-17 19:50:53 +02:00
Max Kellermann 12bc625fe1 android/build.py: add aarch64 support 2018-08-17 19:20:25 +02:00
Max Kellermann 6b407356b9 configure.ac: set ANDROID_ABI=x86 for the Android-x86 build
This was missing in commit 8266ab5588 for #69.
2018-08-17 19:18:29 +02:00
Max Kellermann a4e0b52468 configure.ac, Makefile.am: add variable ANDROID_ABI 2018-08-17 19:01:37 +02:00
Max Kellermann 98efb4f6d5 android: raise minSdkVersion to 21
The number of MPD installs on Android < 5.0 is negligible, and that
API version introduces lots of useful features for MPD.
2018-08-17 19:01:37 +02:00
Max Kellermann 36edb4886c android/build.py: add variable "android_api_level" 2018-08-17 19:01:37 +02:00
Max Kellermann 76290f786d python/build/meson.py: set "needs_exe_wrapper=true"
Prevent Meson from running Android-x86 binaries.  That will fail
because the Android standard libraries are most likely not installed.
2018-08-17 19:00:42 +02:00
Max Kellermann c6299c26b5 python/build/libs.py: disable libnfs utils/examples 2018-08-17 18:32:07 +02:00
Max Kellermann fb5f9baf9c android/build.py: enable libexpat for the "curl" storage plugin 2018-08-17 17:15:05 +02:00
Max Kellermann dee591d970 python/build/libs.py: disable expat documentation 2018-08-17 17:13:39 +02:00
Joshua Wise a5cc13b0c5 build: Add libexpat to the crosscompile build on Windows.
The Curl plugin requires libexpat in order to work these days, so we should
download and build it in order to get the plugin enabled on Windows.
2018-08-17 17:13:39 +02:00
Max Kellermann aaf588aeaa python/libs: upgrade Boost to 1.68.0 2018-08-17 17:13:39 +02:00
Max Kellermann 533a3def9f Makefile.am: add missing $(CURL_CFLAGS) and $(EXPAT_CFLAGS)
Fixes problems with the Windows build because `-DCURL_STATICLIB` was
missing, causing error messages like:

 "undefined reference to `__imp_curl_slist_free_all'"
2018-08-17 17:06:03 +02:00
Max Kellermann fcf487f4e0 playlist/cue: support file type declaration "FLAC" (non-standard)
According to http://wiki.hydrogenaud.io/index.php?title=Cue_sheet FLAC
files should use the "WAVE" file type, but I recently encountered CUE
files declared as "FLAC" which could not be read by MPD.
2018-08-13 08:18:18 +02:00
Max Kellermann 906972973e case-insensitive URI scheme comparison
Required according to RFC 3986:

> An implementation should accept uppercase letters as equivalent to
> lowercase in scheme names

Closes #330
2018-08-02 11:01:45 +02:00