Max Kellermann
9b95e65bd9
release v0.21.16
2019-10-16 11:58:36 +02:00
Max Kellermann
12a86c4975
queue/PlaylistEdit: fix relative destination offset when moving a range
...
Commit 13208bf5a7
added range support to
the `move` command, but applied the wrong offset to the `to` variable.
When the source range is before the current song, and the song thus
gets decremented by the range size, then the final destination offset
must also be decremented by the range size.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/663
2019-10-15 17:00:16 +02:00
Max Kellermann
0b9435858b
storage/curl: unescape file names from PROPFIND
...
This is the last missing piece for https://github.com/MusicPlayerDaemon/MPD/issues/662
2019-10-15 16:49:17 +02:00
Max Kellermann
f0386459ee
storage/curl: follow redirects for collections without trailing slash
2019-10-15 16:42:39 +02:00
Max Kellermann
e98d4670b8
storage/curl: work around different case in hex digits
2019-10-15 16:26:53 +02:00
Max Kellermann
56cc42b752
storage/curl: use MapUTF8() to reuse existing escaping code
...
Commit 29f78b18b1
continued.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/662
2019-10-15 16:26:53 +02:00
Max Kellermann
ead208987d
storage/curl: unescape URI in MapToRelativeUTF8()
2019-10-15 16:26:49 +02:00
Max Kellermann
364acc8949
lib/curl/Escape: add CurlUnescape()
2019-10-15 13:39:02 +02:00
Max Kellermann
a8f4d2b6fc
storage/curl: move code to EscapeUriPath()
2019-10-15 13:24:06 +02:00
Max Kellermann
0eb113e7c6
lib/curl/String: OO wrapper for allocated strings returned from CURL
2019-10-15 13:13:39 +02:00
Max Kellermann
b2c4a5db14
util/UTF8: use uint8_t
instead of unsigned char
2019-10-14 13:44:11 +02:00
Max Kellermann
cadfccfd0c
util/UTF8: add noexcept
2019-10-14 13:41:06 +02:00
Max Kellermann
c89c7f71a2
thread/Util: lower the real-time priority from 50 to 40
...
On linux-rt, kernel IRQ threads are configured with priority=50, and
this change configures MPD somewhat below that priority, leaving some
room for other programs to be configured in between.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/643
2019-10-09 14:40:02 +02:00
Andre Heider
96a9670c69
lib/icu: fix build with iconv()
2019-10-07 13:34:04 +02:00
Max Kellermann
dcc5ce6792
storage/curl: request the "resourcetype" property to fix update
...
Without requesting the property, "good" WebDAV servers would not send
it, and so MPD could never recognize a directory, failing the database
update.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/660
2019-10-07 12:44:48 +02:00
Max Kellermann
23d08820a2
db/update/Walk: fix crash when music_directory is not a directory
...
Add a runtime sanity check to avoid the assertion failure.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/660
2019-10-07 12:24:25 +02:00
Max Kellermann
b9b906ab20
increment version number to 0.21.16
2019-10-07 12:24:25 +02:00
Max Kellermann
2f3e94f8d0
output/MultipleOutputs: add method IsOpen()
2019-09-26 14:52:19 +02:00
Max Kellermann
f616bfe354
output/MultipleOutputs: add method HasName()
2019-09-26 14:48:31 +02:00
Max Kellermann
f2c3d86612
output: use StringIsEqual()
2019-09-26 14:48:31 +02:00
Max Kellermann
d7dbf47a3f
time/ISO8601: support omitting minutes
2019-09-25 21:39:25 +02:00
Max Kellermann
3db584a3ea
curl/Easy: add SetReadFunction()
2019-09-25 21:37:42 +02:00
Max Kellermann
409002b1c3
curl/Easy: add Perform()
2019-09-25 21:37:22 +02:00
Max Kellermann
29b542fd36
curl/Easy: add SetTimeout()
2019-09-25 21:36:52 +02:00
Max Kellermann
c9590db188
util/StringView: enable string_view support only on C++17
2019-09-25 21:34:48 +02:00
Max Kellermann
0643b5abad
release v0.21.15
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAl2LvuAQHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEg3VD/9uWiK11PPXfpAqOQgL63c1CS/6HJizwnox
n0ns3T7eJJPXy06NTwuo5M8JeAIhuysEciHlJeGBf4NIGwGGHOL3nQv3FkWJlfeh
UrIJq66gIzElZ62Jvq+7zkkfjm6A0tmQoAEoIPouus+A4RNwndpqsKSotZzLK0yY
ACkJTxl8JJj+UbLzleDKSA+RxG817onGKl+urkvNDRdD7xs3VEUX6jhddVM1n3m+
BqCaihuQZYXur45mYIwFI7H5JevRawnEX8L6tERW0cE8j5IhnnPjwYvMX+DcZoTe
DgYuGkfPTfl31QufbbetTwWITjf4nrummYrAM/fKcNJcaqZFo4hs7m7N6p9c2ebm
QCUG0On32Lvkq4/iLAxXIdoy38mPkarREB2XQebHa6j2XPFjxB01lXLGYJzPtqBu
LCFRpR+ssWeZDQ3uP+fAzlgMXmB+owWa9NVqU5vlx97TCmXInOeim6tfq1T4keGW
3VFLqM6VAw4QyhrbowU0xbvxvYkWrgpkYbM5NcfwI67xZGLsI5vnRzX05VgF6BFZ
B7g+JIWjv+Mjm1ltsvC4OlJEcCXZb0BQWvwLHq0EGeEP/R9MWYX6BxlF1V8FWR2S
bIL0qIqtZfuUI66irNn23ZCyN4DilMcZkS8f30321hB2GLputG8zZwCcjxy1a/ft
1OoHXRfKNw==
=uONC
-----END PGP SIGNATURE-----
Merge tag 'v0.21.15'
release v0.21.15
2019-09-25 21:27:31 +02:00
Max Kellermann
964804a4c2
release v0.21.15
2019-09-25 21:24:15 +02:00
Max Kellermann
92495d2b0b
decoder/mpcdec: fix bogus ReplayGain values
...
Apparently, libmpcdec sets gain/peak variables to zero if they are not
present. This clashes with our formula and results in bogus values
which cause noise during playback.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/640
2019-09-13 19:52:11 +02:00
Max Kellermann
9270829b5b
ReplayGainInfo: move more code to a function
2019-09-13 19:50:49 +02:00
Max Kellermann
b6243a9945
decoder/mpcdec: merge duplicate code
2019-09-13 19:50:43 +02:00
Max Kellermann
496f88653d
ReplayGainInfo: add static method Undefined()
2019-09-13 19:46:39 +02:00
Max Kellermann
5ef645df97
NEWS: add missing line for 818b7e0641
2019-09-08 12:54:16 +02:00
Max Kellermann
bf49c9e4e2
decoder/{dsf,dsdiff}: precalculate bit rate
2019-09-08 12:52:02 +02:00
Max Kellermann
0da9c91af2
decoder/{dsf,dsdiff}: fix displayed bit rate
...
The formula did not consider the channel count.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/639
2019-09-08 12:45:05 +02:00
Max Kellermann
d63e2c2641
db/update: scan CUE playlist contents
...
This commit adds a PlaylistPlugin attribute "as_folder" which for now
is only enabled in the "CUE" playlist plugin (which handles separate
"*.cue" files). If a playlist with this flag set is being scanned
during database update, it will be parsed and its contents will be
added to the database. This allows clients to inspect them like
directories and its contents will be searchable.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/39
2019-09-08 00:39:53 +02:00
Max Kellermann
5fdb804a50
db/simple/Song: add attribute "target"
...
Will be used for Song objects representing tracks inside a CUE file.
2019-09-08 00:32:16 +02:00
Max Kellermann
91c1274ac6
db/Song: translate relative "real_uri" paths
2019-09-08 00:31:10 +02:00
Max Kellermann
9caf90f74f
util/UriRelative: add uri_apply_relative()
2019-09-08 00:07:37 +02:00
Max Kellermann
71448e645c
util/UriExtract: use uri_get_scheme() in uri_has_scheme()
2019-09-08 00:06:52 +02:00
Max Kellermann
0509472636
util/UriExtract: add uri_is_relative_path()
2019-09-08 00:04:49 +02:00
Max Kellermann
0b956cf968
util/StringAPI: add memrchr() wrapper
2019-09-07 23:59:59 +02:00
Max Kellermann
2c3eb5b8ad
test/TestUriRelative: new unit test
2019-09-07 23:27:24 +02:00
Max Kellermann
58363cf4dd
util/UriRelative: allow "parent" to end with slash
2019-09-07 23:27:24 +02:00
Max Kellermann
2574615fa3
util/UriRelative: use StringAfterPrefix() instead of memcmp()
...
memcmp() can overrun the buffer.
2019-09-07 23:24:41 +02:00
Max Kellermann
15fbd2b4ab
util/UriRelative: use StringIsEqual()
2019-09-07 23:22:16 +02:00
Max Kellermann
ee36a48dbb
db/simple/Directory: RemoveSong() returns SongPtr
2019-09-05 21:12:10 +02:00
Max Kellermann
07f212c98c
SongSave: return DetachedSong, not a std::unique_ptr<>
...
Eliminate unnecessary dynamic allocations.
2019-09-05 20:58:04 +02:00
Max Kellermann
a1e2602c3d
SongSave: allow throwing any exception
2019-09-05 20:58:00 +02:00
Max Kellermann
b03e4ae692
queue/Save: move code to LoadQueueSong()
2019-09-05 20:56:47 +02:00
Max Kellermann
57808d1a1b
queue/Save: queue_load_song() throws on error
...
Don't catch and log exceptions here; let the caller decide.
2019-09-05 20:55:18 +02:00