aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2013-11-06event/FullyBufferedSocket: remove obsolete TODO commentMax Kellermann1-16/+0
We have a better solution now.
2013-11-06ClientRead: "close" flushes the output bufferMax Kellermann3-1/+12
Add a new CommandResult code called "FINISH" which, unlike "CLOSE", will attempt to flush the output buffer. This is a one-shot attempt; it will do one write, and not try again.
2013-11-06event/FullyBufferedSocket: try to write without extra roundtripMax Kellermann2-17/+33
Postpone the write using IdleMonitor instead of scheduling a write event. This reduces the number of system calls, because we don't need to register and unregister the write event in epoll.
2013-11-06event/FullyBufferedSocket: make WriteFromBuffer() protectedMax Kellermann2-4/+4
.. and rename it to Flush().
2013-11-06PlayerThread: enable buffering when starting playbackMax Kellermann1-1/+1
For some reason, this got lost in commit 975deca8. Re-enabling this fixes stuttering at the beginning of radio streams.
2013-11-06input/curl: fix bug with redirected streamsMax Kellermann1-110/+138
Migrate from the old curl_multi_perform() API to the newer curl_multi_socket_action() API (since CURL 7.16). This allows working around a bug with HTTP redirections with epoll: when CURL closes a socket and the new one happens to have the same file number, MPD did not have a chance to remove the old one from epoll and subsequently attempted to use EPOLL_CTL_MOD, which was not allowed by epoll, because it's a new socket now.
2013-11-06input/curl: move code into class CurlMultiMax Kellermann1-43/+66
Move all global variables there, and keep just one global variable: the pointer to the CurlMulti instance. Prepares for the next commit.
2013-11-06input/curl: remove the global list of requestsMax Kellermann1-13/+0
Unused.
2013-11-06input/curl: don't abort all requests on curl_multi_perform() errorMax Kellermann1-40/+7
Eliminate some complicated code that's not worth the trouble.
2013-11-06input/curl: use CURLOPT_PRIVATEMax Kellermann1-5/+7
Replaces the loop in input_curl_find_request().
2013-11-06event/SocketMonitor: add method Abandon()Max Kellermann4-2/+32
2013-11-05system/ByteOrder: fix big-endian supportMax Kellermann1-2/+2
D'oh!
2013-11-05playlist/pls: fix reversed song orderMax Kellermann1-1/+0
Remove the forward_list::reverse() call. It was not necessary, because pls_parser() already reads the playlist in reverse order.
2013-11-05decoder/dsf: enable DSD128Jurgen Kramer1-2/+2
2013-11-05add various missing headersNatanael Copa3-0/+3
Fixes building with gcc-4.8 Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
2013-11-04output/alsa: avoid endless loop in Raspberry Pi workaroundMax Kellermann1-1/+17
See code comment.
2013-11-04event/ServerSocket: don't abort if IPv6 is not availableMax Kellermann1-1/+19
First check if an IPv6 socket can be created.
2013-11-04Log: add level "DEFAULT"Max Kellermann14-45/+72
Map LogLevel::INFO to G_LOG_LEVEL_INFO, and LogLevel::DEFAULT to G_LOG_LEVEL_MESSAGE. Now client connect/disconnect message are only logged on log_level "secure".
2013-11-04Log: document the LogLevel itemsMax Kellermann1-0/+16
2013-11-04event/ServerSocket: fix assertion failureMax Kellermann1-1/+1
Regression from previous commit. D'oh!
2013-11-04event/ServerSocket: open sockets in the order they were configuredMax Kellermann2-5/+5
Use a std::list which can be appended at the end.
2013-11-04system/resolver: return path of UNIX domain socketsMax Kellermann1-7/+15
getnameinfo() doesn't work well - it always returns "localhost".
2013-11-04ClientRead: always ignore whitespace at the end of the lineMax Kellermann1-2/+7
2013-11-04filter/AutoConvert: modify child_audio_format, not in_audio_formatMax Kellermann1-2/+2
This prevented using the "volume_normalization" feature with some codecs (e.g. mp3), because the normalization code requires 16 bit samples. If the codec happens to deliver formats other than S16, the AutoConvert filter succeeds to initialize the conversion filter, but the returned input audio format was wrong.
2013-10-31CommandLine: simplified program name lineMax Kellermann1-1/+1
2013-10-30system/FatalError: use _exit() instead of exit()Max Kellermann1-2/+2
Skip the global destructors. We don't need them here - we bail out as quickly as we can.
2013-10-30system/FatalError: move code to Abort()Max Kellermann1-3/+10
2013-10-30*: update copyright year to 2013Max Kellermann116-116/+116
2013-10-30ClientList: disconnect all clients in destructorMax Kellermann1-0/+3
Fixes assertion failure.
2013-10-30mixer/software: fix double free bugMax Kellermann1-3/+15
2013-10-30PlaylistState: ignore "mixrampdelay:nan"Max Kellermann1-1/+7
mixramp_delay==nan() causes severe problems with cross-fading.
2013-10-30increase default buffer size to 4 MBMax Kellermann1-1/+1
2 MB was too small for cross-fading a 24 bit file. Increasing to 4 MB is still not too large for weak machines, but is enough for cross-fading.
2013-10-30db/proxy: remove obsolete #undefsMax Kellermann1-2/+0
2013-10-30db/proxy: auto-reconnectMax Kellermann1-14/+64
2013-10-30ReplayGainInfo: use large negative value instead of infinityMax Kellermann2-4/+4
The last piece to allow -ffast-math.
2013-10-30PlayerCommands: show CrossFade/MixRamp only if enabledMax Kellermann1-4/+10
2013-10-30PcmMix: use negative value instead of NaN for additionMax Kellermann3-7/+6
Avoid NaN to allow -ffast-math.
2013-10-30CrossFade: eliminate NaN from mixramp_interpolate()Max Kellermann1-4/+4
Use a boolean flag instead.
2013-10-30CrossFade: use negative value for invalid MixRamp overlapMax Kellermann1-5/+12
Avoid NaN to allow -ffast-math.
2013-10-30CrossFade: use negative value for invalid mixramp_delayMax Kellermann3-6/+5
Avoid NaN to allow -ffast-math.
2013-10-30CrossFade: remove obsolete API documentationMax Kellermann1-3/+0
2013-10-30Main: check the g_get_user_special_dir() resultMax Kellermann1-4/+7
Fixes crash.
2013-10-30db/proxy: return server errors using "enum ack"Max Kellermann1-2/+13
2013-10-30db/proxy: pass search/find to remote MPDMax Kellermann2-1/+54
2013-10-30db/proxy: pass SongFilter to the remote MPD in VisitUniqueTags()Max Kellermann1-2/+72
2013-10-30db/proxy: add missing nullptr checkMax Kellermann1-1/+2
2013-10-29SongFilter: add special keyword "base"Max Kellermann4-3/+50
Restores the features from the previous draft commands "findin" / "searchin".
2013-10-29Revert "command: new commands "findin", "searchin" with base URI"Max Kellermann3-25/+4
This reverts commit a577944ab5a1f4d688e5901fa3efaf7cd1673588. Will be replaced by new options for the old commands "search" and "find".
2013-10-29util/UriUtil: add uri_is_child_or_same()Max Kellermann2-0/+31
2013-10-29db/proxy: enable song matchingJean-Francois Dockes1-9/+23