aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2013-01-27zeroconf: convert to C++Max Kellermann8-38/+106
2013-01-27event/SocketMonitor: add method Steal()Max Kellermann2-3/+17
2013-01-27PlayerControl: work around std::nanf() not being available on MacPortsMax Kellermann1-0/+6
2013-01-27string_util: add fallback for strnlen()Max Kellermann2-0/+23
Usually, when strndup() is not available, strndup() isn't either, because both are POSIX 2008.
2013-01-28Path::FromUTF8() returns nulled instance on error, add error handling where ↵Denis Krjuchkov8-23/+69
required
2013-01-28Path: convert remaining funcs to methods, keep fs_charset as std::stringDenis Krjuchkov4-30/+28
2013-01-28Path: merge utf8_to_fs_charset() into Path::FromUTF8()Denis Krjuchkov2-13/+4
2013-01-28Path: convert fs_charset_to_utf8() to static method Path::ToUTF8()Denis Krjuchkov7-53/+59
2013-01-28Path: introduce MPD_PATH_MAX_UTF8Denis Krjuchkov1-0/+10
2013-01-27DecoderControl, InputStream: use Mutex/Cond instead of GMutex/GCondMax Kellermann41-205/+168
2013-01-27playlist/*: convert to C++Max Kellermann23-240/+274
2013-01-26Path: define MPD_PATH_MAX to 260 on WindowsDenis Krjuchkov1-1/+3
2013-01-26Path: ToUTF() returns std::stringDenis Krjuchkov3-11/+20
2013-01-26input_stream: forward-declare the structMax Kellermann36-141/+266
Hide the definition from C code, to prepare the transition to C++.
2013-01-26tag_file: convert to C++Max Kellermann3-6/+10
2013-01-26playlist/*: convert to C++Max Kellermann15-56/+75
2013-01-26decoder/ffmpeg: convert to C++Max Kellermann5-25/+67
2013-01-26Mapper: improve usage of Path classDenis Krjuchkov6-46/+44
2013-01-25PlayerControl: add second Cond objectMax Kellermann3-2/+34
This fixes a deadlock bug introduced by 18076ac9. After all, the second Cond was necessary. The problem: two threads can wait for a signal at the same time. The player thread waits for the output thread to finish playback. The main thread waits for the player thread to complete a command. The output thread finishes playback, and sends a signal, which unfortunately does not wake up the player thread, but the main thread. The main thread sees that the command is still not finished, and waits again. The signal is lost forever, and MPD is deadlocked.
2013-01-25input_{internal,plugin}: convert to C++Max Kellermann18-43/+34
2013-01-24archive/*: convert to C++Max Kellermann19-142/+185
2013-01-23DecoderControl: fix typo in assertion checkMax Kellermann1-3/+3
2013-01-22Path: move to fs subdirectoryDenis Krjuchkov21-22/+22
2013-01-22FileSystem: extract DirectoryReader, improve the restDenis Krjuchkov3-100/+125
- DirectoryReader is extracted to separate header - FileSystem.cxx/FileSystem.hxx/DirectoryReader.hxx moved to fs/ subdir - Functions return true on success, instead of 0 (where applicable) - ReadLink return result instead of out parameter - UnlinkFile is renamed to RemoveFile - CheckExists/CheckIsRegular/CheckIsDirectory are renamed to PathExists/FileExists/DirectoryExists
2013-01-21input/archive: fix memory leak in error handlerMax Kellermann1-1/+3
2013-01-21input,playlist/despotify: convert to C++Max Kellermann8-45/+61
2013-01-21despotify_utils: fix indentMax Kellermann1-7/+7
2013-01-21despotify_utils: include cleanupMax Kellermann2-4/+6
2013-01-21despotify_utils: add missing copyright headerMax Kellermann1-0/+19
2013-01-21input/cdio_paranoia: convert to C++Max Kellermann3-53/+64
2013-01-21input/ffmpeg: convert to C++Max Kellermann3-20/+30
2013-01-21input/rewind: convert to C++Max Kellermann3-76/+80
2013-01-21input/file,mms: convert to C++Max Kellermann5-69/+88
2013-01-21input_internal.h: add extern "C"Max Kellermann3-8/+8
2013-01-21UpdateRemove: Mutex/Cond instead of GMutex/GCondMax Kellermann3-22/+10
2013-01-21DecoderControl: move functions into the classMax Kellermann6-360/+281
2013-01-20PlayerControl: move functions into the classMax Kellermann14-400/+335
2013-01-20FileSystem: new library for Path-friendly file system routinesDenis Krjuchkov2-0/+258
2013-01-19dummy.cxx: remove unused fileDenis Krjuchkov1-30/+0
This file was used previously to force C++ linkage. It's no longer required because most of the code is C++ anyway.
2013-01-18Path: new class "Path" wraps filesystem path stringsMax Kellermann21-238/+380
2013-01-18Playlist, Song: clarify parameter encodingMax Kellermann6-15/+15
2013-01-17path: convert to C++Max Kellermann15-33/+20
2013-01-16output/roar: convert to C++Max Kellermann4-137/+99
2013-01-16Idle: don't wake up event loop on duplicate eventMax Kellermann1-2/+3
2013-01-16Idle: use std::atomic instead of GMutexMax Kellermann4-44/+5
2013-01-16Main: fix comment typoMax Kellermann1-1/+1
2013-01-16ClientList: convert to a classMax Kellermann12-152/+72
2013-01-16ClientGlobal: move client_close_all() to ClientList.cxxMax Kellermann3-32/+13
2013-01-16Revert "ClientList: allow deleting clients in client_list_foreach() callback"Max Kellermann1-2/+2
This reverts commit f56c6a18c13f4135fa9944cb7cb568115a018955. This fix is not necessary anymore because clients are now being deleted by the timer callback.
2013-01-16Client: use TimeoutMonitor to track connection timeoutMax Kellermann6-78/+22
Don't use a global loop over the whole client list.