summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2020-10-28lib/yajl/Handle: strip newlines from error messagesMax Kellermann
Closes https://github.com/MusicPlayerDaemon/MPD/issues/981
2020-10-28lib/yajl/Handle: un-inline the throwing codeMax Kellermann
Reduces header dependencies.
2020-10-28util/FormatString: update API documentationMax Kellermann
2020-10-28protocol/Ack: remove unused variable `ack_domain`Max Kellermann
2020-10-28Main: save the state_file on shutdownMax Kellermann
This got lost in commit 5d597a3646cc (v0.21.19), but it was never noticed because the state_file_interval was way too short due to commit 3413d1bf23a, fixed recently by commit 27cc7b352d5
2020-10-28db/simple: purge songs for unavailable decoder plugins on updateMax Kellermann
2020-10-28fs/Traits: add GetPathSuffix()Max Kellermann
2020-10-28db/simple/Directory: add `pure` attributeMax Kellermann
2020-10-28db/update/Walk: add code commentsMax Kellermann
2020-10-27db/simple: purge special directories for unavailable plugins on updateMax Kellermann
2020-10-27db/update/Walk: adjust lamba indentMax Kellermann
2020-10-27fs/Traits: add GetFilenameSuffix()Max Kellermann
2020-10-17lib/nfs/patches: disable the snprintf->sprintf_s aliasMax Kellermann
snprintf() is available on mingw, and the libnfs kludge broke the build with mingw, because sprintf_s() was now both an inline function and a "dllimport" function (because the macro renamed the inline function snprintf() to sprintf_s() in mingw's stdio.h).
2020-10-16decoder/opus: fix track/album ReplayGain fallbackMax Kellermann
Fixes regression by commit 23d5a2b8620cea69958d087fc7e13fe1e5adb83d - that commit always pretended that any Opus file has both track and album gain, and thus disabled the fallback to the other if one is not set. This patch changes the logic to only submit ReplayGain if at least one value is set, and apply the offset only to that value. If none is available, then the new check in HandleAudio() will submit only the output gain. Closes https://github.com/MusicPlayerDaemon/MPD/issues/977
2020-10-16decoder/opus: submit output_gain even if there is no OpusTags packetMax Kellermann
2020-10-16decoder/opus: move formula to EbuR128ToReplayGain()Max Kellermann
2020-10-16decoder/opus: move comment to `output_gain` fieldMax Kellermann
2020-10-16decoder/opus: convert field `output_gain` to floatMax Kellermann
2020-10-15lib/dbus/Watch: add missing include for assert()Max Kellermann
2020-10-15output/osx: fix several -Wdouble-promotion warningsMax Kellermann
2020-10-15net/SocketAddress: include cleanupMax Kellermann
2020-10-08event/SocketMonitor: don't filter out ERROR/HANGUPMax Kellermann
By bit-wise ANDing the reported flags with GetScheduledFlags(), ERROR/HANGUP always get cleared. This means the MPD event loop could never report those conditions.
2020-10-08event/TimerEvent: add type alias for std::chrono::steady_clock::durationMax Kellermann
2020-10-08event/TimerEvent: use `using` instead of `typedef`Max Kellermann
2020-10-08event/TimerEvent: use auto_unlink hookMax Kellermann
2020-10-08event/Loop: reorder includesMax Kellermann
This just happened to break the Windows build because of the `GetObject` macro in `windows.h`, so I added a kludge to PollResultGeneric.hxx.
2020-10-08StateFileConfig, ...: drop obsolete out-of-class definitionMax Kellermann
2020-10-08config/Data: cast to std::chrono::steady_clock::duration properlyMax Kellermann
Oh no, 3413d1bf23a was broken! Instead of passing a number as "seconds" to the duration constructor, it just abused the duration constructor as cast operator, which caused custom state_file_interval settings to be extremely short.
2020-10-08config/Parser: use std::size_tMax Kellermann
2020-10-08config/{Data,Block}: use With() in GetUnsigned(), GetPositive()Max Kellermann
2020-10-08event/Loop: forward-declare class TimerEventMax Kellermann
2020-10-08event/TimerEvent: use base_hook instead of member_hookMax Kellermann
2020-10-08event/Loop: use `using` instead of `typedef`Max Kellermann
2020-10-06event/Loop: set the uring_initialized flagMax Kellermann
Don't attempt to initialize the io_uring subsystem more than once.
2020-10-05playlist/cue/parser: use lambda to fix ambiguous overloadMax Kellermann
On Windows, there is an IsWhitespaceOrNull() overload with TCHAR, and the compiler doesn't know which one to pass to std::find_if().
2020-10-05playlist/cue/parser: use StringView internallyMax Kellermann
Don't copy the input StringView.
2020-10-05playlist/cue/parser: pass StringView to Feed()Max Kellermann
2020-10-05playlist/cue/parser: add `noexcept`Max Kellermann
2020-10-05playlist/cue/parser: fix nullptr dereferenceMax Kellermann
Closes https://github.com/MusicPlayerDaemon/MPD/issues/974
2020-10-05playlist/cue/parser: fix off-by-one buffer overflowMax Kellermann
cue_next_word() can return a pointer one past the end of the string if the word is followed by the terminating null byte.
2020-10-02output/jack: implement Interrupt()Max Kellermann
2020-10-02output/pulse: implement Interrupt()Max Kellermann
2020-10-02output/alsa: implement Interrupt()Max Kellermann
This allows canceling the blocking method LockWaitWriteAvailable(), and thus allows breaking free of misbehaving ALSA drivers, avoiding a MPD lockup. Closes https://github.com/MusicPlayerDaemon/MPD/issues/966
2020-10-02output/Interface: add virtual method Interrupt()Max Kellermann
This allows interrupting the output thread (for some plugins which implement this method). This way, operations can be canceled properly, instead of waiting for some external entity.
2020-10-02output/Thread: simplify the main loop switchMax Kellermann
Move the InternalPlay() call and the wake_cond.wait() call into the `case Command::NONE` and revert all `continue` statements to a simple `break`.
2020-10-01output/Interface: add `noexcept`Max Kellermann
2020-10-01output/Filtered: move try/catch from IteratePause() to callerMax Kellermann
2020-09-30Merge remote-tracking branches 'neheb/defa', 'neheb/auto' and ↵Max Kellermann
'neheb/clocale' into master
2020-09-29remove clocale testRosen Penev
clocale is part of C++11. In practical terms, gcc's libstdc++ comes with its own locale defines when the libc does not have them. Also reworked to be dependent on !ANDROID. Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-09-26clang-tidy: remove pointless std::moveRosen Penev
Found with performance-move-const-arg Signed-off-by: Rosen Penev <rosenp@gmail.com>