Commit Graph

12196 Commits

Author SHA1 Message Date
Max Kellermann 9e7df54ccd Util/StringView: add struct TStringView 2017-09-12 19:12:09 +02:00
Max Kellermann db23c2f27b util/StringView: allow casting from BasicStringView to StringView 2017-09-12 19:08:47 +02:00
Max Kellermann 9744f437d8 Util/CharUtil: add wchar_t overloads
Needed for WStringView.
2017-09-12 18:22:02 +02:00
Max Kellermann 01f84b0e53 util/StringView: add struct WStringView 2017-09-12 17:17:13 +02:00
Max Kellermann 5dbdd36263 util/StringView: add struct BasicStringView 2017-09-12 17:17:13 +02:00
Max Kellermann 96b557c1f0 util/StringView: remove methods SetEmpty(), Empty() 2017-09-12 17:17:13 +02:00
Max Kellermann ebdb7c8de2 util/WStringAPI: add StringIsEqualIgnoreCase() overload 2017-09-12 17:17:13 +02:00
Max Kellermann 1fda842ee6 util/StringView: use StringAPI.hxx 2017-09-12 17:00:42 +02:00
Max Kellermann f71e20d0ce util/StringView: use value_type 2017-09-12 17:00:38 +02:00
Max Kellermann 988680de33 util/StringView: remove unnecessary operator= overloads
These will be generated by the compiler automatically.
2017-09-12 17:00:02 +02:00
Max Kellermann cdf92c6300 util/StringView: remove redundant template parameters 2017-09-12 16:57:19 +02:00
Max Kellermann be5b726c0a util/StringView: remove Literal()
This is not necessary, because a strlen() on a literal gets optimized
away by the compiler.
2017-09-12 16:55:10 +02:00
Max Kellermann 3491218915 db/update/Service: use C++11 initializers 2017-09-09 07:59:51 +02:00
Max Kellermann d0f6131ba4 output/Interface: allow Pause() to throw exception
Coverity discovered that the Pulse plugin could throw exceptions from
Pause(), but that method was marked "noexcept" because its caller was
not designed to catch exceptions.  So instead of avoiding exceptions
(by catching and logging them in each and every implementation), let's
allow them, and do the catch/log game in the MPD core.
2017-09-08 14:45:53 +02:00
Max Kellermann 9cc37bdea2 command/PlayerCommands: emit "volume" only if it is known
The "-1" magic value is deprecated now.
2017-09-04 08:37:37 +02:00
Max Kellermann 3f754fd350 Merge branch 'v0.20.x' 2017-09-04 08:27:08 +02:00
Max Kellermann f4f461b8bb storage/curl: support Content-Type application/xml 2017-09-01 11:32:40 +02:00
Max Kellermann cbb9b6957f storage/curl: use StringStartsWith() 2017-09-01 11:31:10 +02:00
Max Kellermann f6b56c9317 storage/curl: move code to IsXmlContentType() 2017-09-01 11:30:30 +02:00
Max Kellermann 91438b6540 output/Interface: the default Pause() implementation fails
Fixes regression from commit 31bad5f7af:
if Pause() returns true, the output thread is running a busy loop,
causing 100% CPU usage, instead of just closing the output.

Closes #105
2017-08-31 15:02:15 +02:00
Max Kellermann 987c505906 event/TimeoutMonitor: remove obsolete class 2017-08-29 16:53:15 +02:00
Max Kellermann 598bb93cc2 StateFile: migrate from TimeoutMonitor to TimerEvent 2017-08-29 16:52:02 +02:00
Max Kellermann dc531b64ae db/update/InotifyQueue: migrate from TimeoutMonitor to TimerEvent 2017-08-29 16:38:50 +02:00
Max Kellermann 91d4b5cfed lib/nfs/Connection: migrate from TimeoutMonitor to TimerEvent 2017-08-29 16:36:16 +02:00
Max Kellermann c24b8460e0 lib/curl/Global: migrate from TimeoutMonitor to TimerEvent 2017-08-29 16:33:20 +02:00
Max Kellermann 2e471daef1 storage/nfs: migrate from TimeoutMonitor to TimerEvent 2017-08-29 16:30:50 +02:00
Max Kellermann 7ae57a3531 event/MultiSocketMonitor: migrate from TimeoutMonitor to TimerEvent 2017-08-29 16:28:27 +02:00
Max Kellermann 11f36c0bd6 zeroconf/AvahiPoll: migrate from TimeoutMonitor to TimerEvent 2017-08-29 16:28:27 +02:00
Max Kellermann fd520eeed2 Client: migrate from TimeoutMonitor to TimerEvent 2017-08-29 16:28:27 +02:00
Max Kellermann 30a5dd267b event/TimeoutMonitor: move code to new class TimerEvent 2017-08-29 16:28:27 +02:00
Max Kellermann 2f0d683378 event/Loop: fix inverted checkin RemoveDeferred() 2017-08-29 16:28:24 +02:00
Max Kellermann a1309a90ac event/Loop: use boost::intrusive::list to store IdleMonitors and DeferredMonitors
The intrusive contains can easily erase items without searching
through the whole list.  This removes a good amount of runtime
overhead.
2017-08-29 15:43:16 +02:00
Max Kellermann 010855a294 event/Loop: use boost::intrusive::multiset to store TimeoutMonitors
By using an "intrusive" data structure, we can easily eliminate
struct TimerRecord.
2017-08-29 14:42:59 +02:00
Max Kellermann 71ed3ff992 event/Loop: move TimerRecord::due to class TimeoutMonitor
Prepare to eliminate the TimerRecord struct.
2017-08-29 14:13:09 +02:00
Max Kellermann d4266d0063 event/Loop: remove unused method TimerRecord::IsDue() 2017-08-29 13:41:11 +02:00
Max Kellermann 8225064aab lib/upnp/Discovery: add missing include
Got lost in commit e5ee357903
2017-08-29 13:41:03 +02:00
Max Kellermann e5ee357903 lib/upnp/Discovery: use DeferredMonitor instead of BlockingCall() 2017-08-25 11:01:30 +02:00
Max Kellermann 8aef518c05 lib/upnp/Discovery: add method GetEventLoop() 2017-08-25 10:59:49 +02:00
Max Kellermann 309ed77ef4 lib/upnp/Device: use std::string::find() instead of ...find_first_of() 2017-08-25 10:57:40 +02:00
Max Kellermann 9a6d2b791f lib/upnp/Discovery: avoid a std::string copy 2017-08-25 10:55:30 +02:00
Max Kellermann 2a5010a426 lib/upnp/Discovery: remove obsolete comment 2017-08-25 10:16:19 +02:00
Max Kellermann be29da46f8 lib/upnp/Discovery: use std::list::remove_if() 2017-08-25 10:14:18 +02:00
Max Kellermann d0734e27ba lib/upnp/Discovery: use range-based "for" 2017-08-25 10:11:35 +02:00
Max Kellermann 732f6aaa30 neighbor/Explorer: add "noexcept" 2017-08-25 10:09:34 +02:00
Max Kellermann dd422c7b8b neighbor/plugins/*: remove redundant "virtual" 2017-08-25 10:07:32 +02:00
Max Kellermann c8f7a859ea lib/upnp/Discovery: use CURL instead of UpnpDownloadUrlItem()
We can do CURL requests asynchronously, and we don't need a
synchronous WorkQueue thread for that.

This allows parallelizing lookups and allows immediate cancellation.
2017-08-25 09:52:44 +02:00
Max Kellermann 28a2d41b85 db/DatabasePlugin: pass EventThread's EventLoop to create()
Allows database plugins to use the EventThread, e.g. for CURL
integration.
2017-08-24 19:53:52 +02:00
Max Kellermann 7e76656a18 db/DatabasePlugin: add #EventLoop parameter documentation 2017-08-24 19:45:23 +02:00
Max Kellermann 0b93f52ba4 Merge tag 'v0.20.10'
release v0.20.10
2017-08-24 09:35:34 +02:00
Max Kellermann a00d412008 player/Thread: initialize play_audio_format, fixes assertion
This fixes an assertion failure caused by resuming playback before the
decoder has finished startup.
2017-08-23 17:43:49 +02:00