Commit Graph

14229 Commits

Author SHA1 Message Date
Max Kellermann 3a0d6d96c1 input/smbclient: wrap in MaybeBufferedInputStream
This enables the input buffer for remote files and caches file
contents in MPD.

Closes https://github.com/MusicPlayerDaemon/MPD/issues/376
2019-04-23 14:08:27 +02:00
Max Kellermann ccc58f2a32 Merge branch 'v0.21.x' 2019-04-18 11:49:05 +02:00
Max Kellermann ead3dc6a92 LocateUri: pass URI plugin kind, optionally disables plugin verify
Commit b3a458338a added a LocateUri()
call to several playlist commands, which applied InputPlugin URI
scheme verification to playlist URIs.  This broke the SoundCloud
playlist plugin which uses "soundcloud://" URIs for which no input
plugin exists.

This commit allows the caller to specify the kind of plugin which
shall be used to verify the URI.  Right now, only "input" is
implemented; "storage" uses the "input" verification for now; and
"playlist" has no verification at all (for now).

Closes https://github.com/MusicPlayerDaemon/MPD/issues/528
2019-04-18 10:03:15 +02:00
Max Kellermann 7d814cc899 neighbor/smbclient: fix double smbc_closedir() call
There is already one call in ReadServers(), which is the correct place
to do it.
2019-04-18 09:40:56 +02:00
Max Kellermann d6dbf64efb CommandLine: fix another build failure with -Ddatabase=false
Split several printf() calls to make it easier to deal with all those
#ifdefs.
2019-04-18 09:20:12 +02:00
Eugene Gorodinsky 8d18b4c24b Fix meson.build to work properly with '-Ddatabase=false' 2019-04-18 08:55:13 +02:00
Max Kellermann d28307e082 neighbor/smbclient: fix double smbc_closedir() call
There is already one call in ReadServers(), which is the correct place
to do it.
2019-04-16 20:07:48 +02:00
Max Kellermann aa5c5bf14f neighbor/smbclient: add noexcept 2019-04-16 20:05:14 +02:00
Max Kellermann 2e80477218 neighbor/smbclient: make Server attributes "const" 2019-04-16 20:05:11 +02:00
Max Kellermann 8b9df85daa neighbor/smbclient: remove unused attribute "alive" 2019-04-16 20:04:53 +02:00
Max Kellermann edafe4cad6 tag/Id3Unique: add noexcept 2019-04-16 10:38:57 +02:00
Max Kellermann 3cbadf42a5 java/Ref: add move constructor 2019-04-11 11:34:52 +02:00
Max Kellermann 1d49f1108f java/Ref: allow LocalRef to be nullable
Makes using the Java glue classes simpler to use, at the cost of very
little overhead.
2019-04-11 11:32:07 +02:00
Max Kellermann 8e5e97bfed command: add command "getfingerprint"
A first use case for our libchromaprint integration added by commit
30e22b753b
2019-04-05 14:23:35 +02:00
Max Kellermann 17dd334b82 client/ThreadBackgroundCommand: fix inverted check 2019-04-05 14:23:35 +02:00
Max Kellermann ab5eb4f9ce tag/meson.build: move libchromaprint detection to lib/chromaprint/ 2019-04-05 13:51:48 +02:00
Max Kellermann a30af2ba42 lib/chromaprint/DecoderClient: replace method PrintResult() 2019-04-05 13:40:05 +02:00
Max Kellermann 9f1c23e217 client/BackgroundCommand: infrastructure for commands running in background 2019-04-05 11:18:15 +02:00
Max Kellermann 28fc1d555f decoder/Thread: eliminate decoder_input_stream_open() 2019-04-05 10:32:07 +02:00
Max Kellermann ac74f284aa decoder/Bridge: check for STOP before InputStream::IsReady()
If the DecoderThread gets woken up by a STOP command, this should be
detected as early as possible.
2019-04-05 10:32:06 +02:00
Max Kellermann 77af999b46 decoder/Thread: use DecoderBridge::OpenUri(), eliminate duplicate code 2019-04-05 10:29:24 +02:00
Max Kellermann 4926763f00 decoder/Bridge: call InputStream::Check() before returning 2019-04-05 10:29:20 +02:00
Max Kellermann a19eee78c6 decoder/Bridge: make many attributes private 2019-04-05 09:26:03 +02:00
Max Kellermann 6be3c99876 decoder/Bridge: add noexcept 2019-04-05 09:04:08 +02:00
Max Kellermann 8006911a1f decoder/Client: add noexcept 2019-04-05 09:03:42 +02:00
Max Kellermann 61e5828790 input/InputStream: add noexcept to ReadTag() 2019-04-05 08:57:42 +02:00
Max Kellermann 6addc9d6e0 pcm/PcmConvert: remove unused attribute "dest_format" 2019-04-04 21:06:28 +02:00
Max Kellermann e78d825059 pcm/PcmConvert: eliminate Open() and Close()
Let the constructor and destructor do this.  This means that all users
have to be converted to allocate PcmConvert dynamically.
2019-04-04 21:01:08 +02:00
Max Kellermann 00b04468dc filter/Convert: make in_audio_format const 2019-04-04 21:00:23 +02:00
Max Kellermann 8a07724b23 test/RunChromaprint: move class ChromaprintDecoderClient to lib/chromaprint/ 2019-04-04 20:29:27 +02:00
Max Kellermann 5256929b17 tag/Chromaprint: move to lib/chromaprint/Context.hxx 2019-04-04 20:21:10 +02:00
Max Kellermann 093bf5d859 event/*, ...: make GetEventLoop() const 2019-04-04 20:07:57 +02:00
Max Kellermann 4f6144dc71 lib/curl/Init: add const overloads 2019-04-04 20:06:43 +02:00
Max Kellermann 2d1493ed7a lib/curl/Init: add noexcept 2019-04-04 20:06:20 +02:00
Max Kellermann 43677d5740 event/MaskMonitor: add noexcept 2019-04-04 19:54:17 +02:00
Max Kellermann 693815bb32 input/AsyncInputStream: add noexcept 2019-04-04 19:54:17 +02:00
Max Kellermann 58d7804d66 Client: eliminate SetExpired(), call Close() directly 2019-04-04 10:37:38 +02:00
Max Kellermann ea5e6d8f33 Merge branch 'v0.21.x' 2019-04-04 10:29:58 +02:00
Max Kellermann f6941f9a44 event/SocketMonitor: don't cancel if OnSocketReady() returns false
Expect OnSocketReady() to cancel events.  If it returns false, the
SocketMonitor may be destructed already.  This fixes a use-after-free
bug in the "httpd" output plugin.
2019-04-04 10:24:58 +02:00
Max Kellermann d2eb4df8fc event/{Fully,}BufferedSocket: add more API documentation 2019-04-04 10:24:58 +02:00
Max Kellermann df33a898d7 zeroconf/Bonjour: fix OnSocketReady() return value
Keep the SocketMonitor registered.  This wrong return value was added
6 years ago in commit 72cf8dd8a0, andd
apparently, nobody ever noticed.
2019-04-04 10:24:29 +02:00
Max Kellermann 325c7b8e8b output/httpd: close client connection on error
This missing piece probably never really hurt, because
HttpdClient::OnSocketClosed() would be called right after a socket
error, but it's better to be explicit about closing on error.
2019-04-04 09:39:22 +02:00
Max Kellermann 380656d8c9 output/httpd: add missing mutex lock 2019-04-03 22:53:03 +02:00
Max Kellermann 9111bc2c21 output/httpd: add more API documentation about locking 2019-04-03 22:49:25 +02:00
Max Kellermann c1272c72b0 client/Process: reset the CommandListBuilder before processing it
Allows removing a CommandResult::CLOSE check.
2019-04-03 22:38:26 +02:00
Max Kellermann 7d1db5c19f client/Process: refactor IsExpired() checks 2019-04-03 22:31:49 +02:00
Max Kellermann 2142d070a3 client/Process: refactor return statements 2019-04-03 22:30:38 +02:00
Max Kellermann 9711cee26d client/Process: update code comment 2019-04-03 22:30:18 +02:00
Max Kellermann 39baa4e364 client/Process: more strict syntax check 2019-04-03 22:29:43 +02:00
Max Kellermann f339a53e3c client/Process: move basic syntax check to the beginning of method
This catches lines within command lists as well.
2019-04-03 22:27:41 +02:00