Max Kellermann
08500be239
tag/VorbisComment: use [[gnu::pure]]
2021-10-13 10:31:51 +02:00
Max Kellermann
3ef7d8fecb
tag/Tag: use [[gnu::pure]]
2021-10-13 10:31:51 +02:00
Max Kellermann
ffde7223b9
tag/Table: use [[gnu::pure]]
2021-10-13 10:31:51 +02:00
Max Kellermann
4e84fa4a00
RemoteTagCache: use [[gnu::pure]]
2021-10-13 10:31:51 +02:00
Max Kellermann
78e49928b6
command/QueueCommands: disallow moving the current song relative to itself
...
This was a no-op previously, but this operation makes no sense.
2021-10-07 22:55:41 +02:00
Max Kellermann
c0bcfe244c
command/QueueCommands: reimplement relative "move"/"moveid" offsets
...
The existing implementation has been utterly broken forever; I cannot
explain what it actually does, but it doesn't do what the
documentation says.
2021-10-07 22:49:38 +02:00
Max Kellermann
e63ecd81ec
command/QueueCommands: eliminate id lookup from handle_addid()
...
Use MoveRange() instead of MoveId().
2021-10-07 22:44:06 +02:00
Max Kellermann
c47a858d15
command/QueueCommands: move code to RequireCurrentPosition()
2021-10-07 22:21:00 +02:00
Max Kellermann
076c9a0dd9
command/QueueCommands: offset relative "addid" positions by one
...
Now, "+0" means "right after the current song" and "-0" means "right
before the current song". Mnemonic: there are zero songs between the
current song and the newly added song.
2021-10-07 22:12:10 +02:00
Max Kellermann
3993176b76
command/QueueCommands: support relative offsets in "addid"
...
A similar feature was present long ago in MPD, but was deprecated in
version 0.16 because the implementation was broken. This commit
re-adds the feature in a way that's well-defined and not broken.
Close https://github.com/MusicPlayerDaemon/MPD/issues/1221
2021-10-07 21:55:56 +02:00
Max Kellermann
16cad48641
command/QueueCommands: validate the "addid" position before adding the song
...
Validate early, so we avoid the rollback if an error occurs.
2021-10-07 21:27:07 +02:00
Max Kellermann
7a6d0c2efc
command/Queue: move LookupRemoteTag() to the end
...
Skip the LookupRemoteTag() call if the MoveId() call fails.
2021-10-07 21:13:45 +02:00
Max Kellermann
f6035f2dda
util/UriRelative: use std::string_view
...
Eliminates lots of implicit std::string temporaries.
2021-10-07 14:49:53 +02:00
Max Kellermann
c34a1e29de
util/UriRelative: fix variable mixup
2021-10-07 14:44:41 +02:00
Max Kellermann
45f3dd8b7a
Revert "python/build/libs.py: remove flac, switch to Meson wrap"
...
This reverts commit 6ed4aff4d3
. The
Meson wrap is broken on non-x86, because it unconditionally includes
<cpuid.h> which is an x86 only header.
2021-10-07 13:28:17 +02:00
James D. Smith
acc1bd6297
playlist/PlaylistSong: Remove dots from playlist file paths.
2021-10-07 13:15:40 +02:00
James D. Smith
49ed9dae34
util/UriUtil: New uri_squash_dot_segments.
2021-10-07 13:14:54 +02:00
Max Kellermann
cf554d306d
LocateUri: implement UriPluginKind::STORAGE properly
...
This way, URI schemes supported by arbitrary storage plugins are
allowed.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1270
2021-10-06 20:36:39 +02:00
Max Kellermann
ef24cfa523
storage/Plugin: add "prefixes"
2021-10-06 20:14:01 +02:00
Max Kellermann
5d35983298
decoder/openmpt: catch libopenmpt exceptions in scan_stream()
...
Fixes crash bug.
2021-10-06 20:14:01 +02:00
Max Kellermann
2dacb36789
LocateUri: throw std::invalid_argument instead of std::runtime_error
...
This should translate to ACK_ERROR_ARG instead of ACK_ERROR_UNKNOWN.
2021-10-06 19:26:33 +02:00
Max Kellermann
57a1403f08
output/pipewire: implement Delay(), fix busy loop while paused
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1265
2021-09-24 11:33:35 +02:00
Max Kellermann
bad3283182
output/pipewire: add flag "active", replaces some uses of "paused"
...
This way, we know whether we're explicitly "paused" or "not yet
activated because the ring buffer hasn't been filled yet".
2021-09-24 11:33:30 +02:00
Max Kellermann
6ed4aff4d3
python/build/libs.py: remove flac, switch to Meson wrap
2021-09-21 16:44:51 +02:00
Max Kellermann
9ea1578a97
lib/expat/meson.build: propagate the libexpat dependency
...
Fixes the build with libexpat from Meson wrap.
2021-09-21 14:38:00 +02:00
Max Kellermann
520028dcfc
python/build/libs.py: remove libexpat, switch to Meson wrap
2021-09-21 14:08:23 +02:00
Max Kellermann
aef0535c55
python/build/libs.py: remove libvorbis, switch to Meson wrap
2021-09-21 13:49:50 +02:00
Max Kellermann
410b8711f2
lib/curl/meson.build: add -DCURL_STATICLIB on Windows
...
Necessary since commit 6acf81d5ae
2021-09-21 13:24:35 +02:00
Max Kellermann
6acf81d5ae
python/build/libs.py: build CURL with cmake
2021-09-21 12:30:39 +02:00
Max Kellermann
937423dbcf
event/Loop: check the quit
flag after RunDeferred()
...
Allow DeferredEvents to call EventLoop::Break().
2021-09-10 12:14:18 +02:00
Rosen Penev
40483d8478
fix wrong emplace usage
...
emplace already calls std::pair. No need for it again.
No need to emplace when calling std::make_shared.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-09-07 21:14:37 -07:00
Rosen Penev
6ec5089cc9
remove std::make_pair
...
make_pair is an old C++98 function that can be replaced by modern
shorter constructs.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-09-07 21:13:22 -07:00
Max Kellermann
bdd8c34c67
Merge branch 'move' of git://github.com/neheb/MPD
2021-08-29 06:47:05 +02:00
Max Kellermann
c9a9248c9f
java/Class: use Java::LocalObject
...
This eliminates all but one DeleteLocalRef() call.
2021-08-28 08:09:54 +02:00
Max Kellermann
31f7fede30
java/GlobalRef: remove method Set(), always require initialization
2021-08-28 08:08:30 +02:00
Max Kellermann
917fe549b0
java/Object: use type aliases
2021-08-28 08:05:57 +02:00
Max Kellermann
8e430e55af
Java/GlobalRef: add LocalRef cast constructor
2021-08-28 08:04:20 +02:00
Max Kellermann
9e61bda592
java/String: add class StringUTFChars()
2021-08-27 12:30:43 +02:00
Max Kellermann
56997290d7
io/BufferedOutputStream: add method Discard()
2021-08-27 12:06:36 +02:00
Max Kellermann
d2f84f3df8
io/BufferedOutputStream: allow specifying the buffer size
2021-08-27 12:06:20 +02:00
Max Kellermann
9da28e5c73
io/BufferedOutputStream: more API documentation
2021-08-27 12:06:02 +02:00
Max Kellermann
d1f9b06f84
io/BufferedOutputStream: add WriteT()
2021-08-27 12:05:26 +02:00
Max Kellermann
f9f3306db9
io/BufferedOutputStream: use std::size_t
2021-08-27 12:05:06 +02:00
Max Kellermann
19d19cd737
fs/io/BufferedOutputStream: avoid including windows.h
...
Include the most specific header documented by MSDN instead.
2021-08-27 12:04:44 +02:00
Max Kellermann
b1175acb59
util/StringView: hard-code C++17
2021-08-27 12:01:31 +02:00
Max Kellermann
672278e5fd
util/StringView: use [[gnu::]] attributes
2021-08-27 11:59:37 +02:00
Max Kellermann
da155f8822
util/StringCompare: use [[gnu::]] attributes
2021-08-27 11:58:25 +02:00
Max Kellermann
4026ef63b6
util/StringAPI: use [[gnu::]] attributes
2021-08-27 11:57:56 +02:00
Max Kellermann
b282682ba5
use using
instead of typedef
2021-08-27 11:57:33 +02:00
Max Kellermann
ad00926e1b
util/AllocatedArray: add method release()
2021-08-27 11:24:50 +02:00