Age | Commit message (Collapse) | Author | |
---|---|---|---|
2020-10-28 | lib/yajl/Handle: strip newlines from error messages | Max Kellermann | |
Closes https://github.com/MusicPlayerDaemon/MPD/issues/981 | |||
2020-10-28 | lib/yajl/Handle: un-inline the throwing code | Max Kellermann | |
Reduces header dependencies. | |||
2020-10-28 | util/FormatString: update API documentation | Max Kellermann | |
2020-10-28 | protocol/Ack: remove unused variable `ack_domain` | Max Kellermann | |
2020-10-28 | Main: save the state_file on shutdown | Max 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-28 | db/simple: purge songs for unavailable decoder plugins on update | Max Kellermann | |
2020-10-28 | fs/Traits: add GetPathSuffix() | Max Kellermann | |
2020-10-28 | db/simple/Directory: add `pure` attribute | Max Kellermann | |
2020-10-28 | db/update/Walk: add code comments | Max Kellermann | |
2020-10-27 | db/simple: purge special directories for unavailable plugins on update | Max Kellermann | |
2020-10-27 | db/update/Walk: adjust lamba indent | Max Kellermann | |
2020-10-27 | fs/Traits: add GetFilenameSuffix() | Max Kellermann | |
2020-10-17 | lib/nfs/patches: disable the snprintf->sprintf_s alias | Max 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-16 | decoder/opus: fix track/album ReplayGain fallback | Max 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-16 | decoder/opus: submit output_gain even if there is no OpusTags packet | Max Kellermann | |
2020-10-16 | decoder/opus: move formula to EbuR128ToReplayGain() | Max Kellermann | |
2020-10-16 | decoder/opus: move comment to `output_gain` field | Max Kellermann | |
2020-10-16 | decoder/opus: convert field `output_gain` to float | Max Kellermann | |
2020-10-15 | lib/dbus/Watch: add missing include for assert() | Max Kellermann | |
2020-10-15 | output/osx: fix several -Wdouble-promotion warnings | Max Kellermann | |
2020-10-15 | net/SocketAddress: include cleanup | Max Kellermann | |
2020-10-08 | event/SocketMonitor: don't filter out ERROR/HANGUP | Max 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-08 | event/TimerEvent: add type alias for std::chrono::steady_clock::duration | Max Kellermann | |
2020-10-08 | event/TimerEvent: use `using` instead of `typedef` | Max Kellermann | |
2020-10-08 | event/TimerEvent: use auto_unlink hook | Max Kellermann | |
2020-10-08 | event/Loop: reorder includes | Max 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-08 | StateFileConfig, ...: drop obsolete out-of-class definition | Max Kellermann | |
2020-10-08 | config/Data: cast to std::chrono::steady_clock::duration properly | Max 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-08 | config/Parser: use std::size_t | Max Kellermann | |
2020-10-08 | config/{Data,Block}: use With() in GetUnsigned(), GetPositive() | Max Kellermann | |
2020-10-08 | event/Loop: forward-declare class TimerEvent | Max Kellermann | |
2020-10-08 | event/TimerEvent: use base_hook instead of member_hook | Max Kellermann | |
2020-10-08 | event/Loop: use `using` instead of `typedef` | Max Kellermann | |
2020-10-06 | event/Loop: set the uring_initialized flag | Max Kellermann | |
Don't attempt to initialize the io_uring subsystem more than once. | |||
2020-10-05 | playlist/cue/parser: use lambda to fix ambiguous overload | Max 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-05 | playlist/cue/parser: use StringView internally | Max Kellermann | |
Don't copy the input StringView. | |||
2020-10-05 | playlist/cue/parser: pass StringView to Feed() | Max Kellermann | |
2020-10-05 | playlist/cue/parser: add `noexcept` | Max Kellermann | |
2020-10-05 | playlist/cue/parser: fix nullptr dereference | Max Kellermann | |
Closes https://github.com/MusicPlayerDaemon/MPD/issues/974 | |||
2020-10-05 | playlist/cue/parser: fix off-by-one buffer overflow | Max 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-02 | output/jack: implement Interrupt() | Max Kellermann | |
2020-10-02 | output/pulse: implement Interrupt() | Max Kellermann | |
2020-10-02 | output/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-02 | output/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-02 | output/Thread: simplify the main loop switch | Max 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-01 | output/Interface: add `noexcept` | Max Kellermann | |
2020-10-01 | output/Filtered: move try/catch from IteratePause() to caller | Max Kellermann | |
2020-09-30 | Merge remote-tracking branches 'neheb/defa', 'neheb/auto' and ↵ | Max Kellermann | |
'neheb/clocale' into master | |||
2020-09-29 | remove clocale test | Rosen 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-26 | clang-tidy: remove pointless std::move | Rosen Penev | |
Found with performance-move-const-arg Signed-off-by: Rosen Penev <rosenp@gmail.com> |