Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | | Main, IOThread: move GMainLoop setup code to class EventLoop | Max Kellermann | 2013-01-14 | 11 | -76/+131 | |
| | | ||||||
* | | IOThread: use gcc.h | Max Kellermann | 2013-01-14 | 1 | -4/+6 | |
| | | ||||||
* | | ClientList.cxx: copy client list before iterating | Denis Krjuchkov | 2013-01-13 | 1 | -1/+2 | |
| | | | | | | | | | | | | | | | | It seems that it is not safe to remove the item from std::list while it's being iterated somewhere else. This is a very simple quick fix to make things work until some better solution is implemented. | |||||
* | | WakeFD.cxx: use two sockets instead of pipe on Win32 | Denis Krjuchkov | 2013-01-13 | 2 | -5/+128 | |
| | | | | | | | | | | | | | | | | | | Pipes aren't really pollable on Windows. GLib emulates polling on pipes using separate reader/writer threads. This adds significant overhead and keeps a strong dependency on GLib. socketpair() function is absent on Windows as well. We implement it here in a loose way. | |||||
* | | Win32Main.cxx: more clean shutdown | Denis Krjuchkov | 2013-01-13 | 1 | -5/+22 | |
| | | | | | | | | | | | | | | | | | | | | This change fixes two issues: 1) console_handler is called from a separate thread. Thread-safe primitive is required for correct operation. 2) If console_handler returns TRUE our process is immediately terminated. We use Sleep() to give main thread an opportunity to shutdown correctly. | |||||
* | | thread/{Mutex,Cond}: new backend for WIN32 | Max Kellermann | 2013-01-11 | 4 | -4/+135 | |
| | | | | | | | | | | | | Use CRITICAL_SECTION and CONDITION_VARIABLE. This requires Windows Vista or newer. It fixes problems with GLib threading objects that were implicitly created by static constructors before g_thread_init(). | |||||
* | | GlobalEvents: #undef DELETE on Windows | Max Kellermann | 2013-01-11 | 1 | -0/+8 | |
| | | | | | | | | Work around a build failure due to windows.h macro. | |||||
* | | configure.ac: enable WIN32_LEAN_AND_MEAN on Windows | Max Kellermann | 2013-01-11 | 3 | -1/+3 | |
| | | ||||||
* | | string_util.c: provide fallback strndup() implementation | Denis Krjuchkov | 2013-01-11 | 3 | -0/+48 | |
| | | | | | | | | | | This patch also adds extern "C" { } wrapper around string_util.h to allow its usage in C++ code | |||||
* | | input/curl: use std::list instead of GQueue | Max Kellermann | 2013-01-10 | 1 | -93/+80 | |
| | | ||||||
* | | icy_metadata: convert to C++ | Max Kellermann | 2013-01-10 | 4 | -163/+136 | |
| | | ||||||
* | | input/Curl: add constructor to input_curl class | Max Kellermann | 2013-01-10 | 1 | -32/+30 | |
| | | ||||||
* | | input/Curl: remove unused source/source_id attributes | Max Kellermann | 2013-01-10 | 1 | -7/+0 | |
| | | ||||||
* | | input/Curl: remove redundant attribute "url" | Max Kellermann | 2013-01-10 | 1 | -4/+2 | |
| | | | | | | | | Use the "url" attribute from the base class instead. | |||||
* | | input/Curl: use std::forward_list instead of GSList | Max Kellermann | 2013-01-10 | 1 | -27/+21 | |
| | | ||||||
* | | input/Curl: remove unused attribute "fds" | Max Kellermann | 2013-01-10 | 1 | -3/+1 | |
| | | ||||||
* | | input/Curl: require libcurl 7.18 | Max Kellermann | 2013-01-10 | 1 | -24/+4 | |
| | | ||||||
* | | output/shout: refactor check_block_param() to a function | Max Kellermann | 2013-01-10 | 1 | -18/+15 | |
| | | | | | | | | Don't use macro magic, don't dereference the block_param. | |||||
* | | Log, ...: include cleanup | Max Kellermann | 2013-01-10 | 3 | -3/+0 | |
| | | ||||||
* | | decoder/wavpack: convert to C++ | Max Kellermann | 2013-01-10 | 4 | -36/+58 | |
| | | ||||||
* | | decoder/wavpack: include cleanup | Max Kellermann | 2013-01-10 | 1 | -3/+0 | |
| | | ||||||
* | | conf: convert to C++ | Max Kellermann | 2013-01-10 | 1 | -63/+73 | |
| | | ||||||
* | | path: move code to IsSupportedCharset() | Max Kellermann | 2013-01-10 | 1 | -6/+15 | |
| | | ||||||
* | | path: make the "win_charset" buffer static | Max Kellermann | 2013-01-10 | 1 | -1/+1 | |
| | | | | | | | | It is illegal to use it after going out of scope. | |||||
* | | notify: convert to C++ | Max Kellermann | 2013-01-10 | 6 | -99/+79 | |
| | | ||||||
* | | io_thread: convert to C++ | Max Kellermann | 2013-01-10 | 5 | -30/+27 | |
| | | ||||||
* | | input/{curl,soup}: convert to C++ | Max Kellermann | 2013-01-10 | 5 | -67/+86 | |
| | | ||||||
* | | input_stream: convert to C++ (internally) | Max Kellermann | 2013-01-10 | 7 | -19/+18 | |
| | | ||||||
* | | PlayerControl: switch to the Mutex/Cond classes | Max Kellermann | 2013-01-10 | 3 | -13/+10 | |
| | | ||||||
* | | thread/Cond: new wrapper for pthread_cond_t or GCond | Max Kellermann | 2013-01-10 | 5 | -0/+189 | |
| | | ||||||
* | | thread/GLibMutex: new Mutex implementation | Max Kellermann | 2013-01-10 | 2 | -19/+44 | |
| | | | | | | | | | | Switch WIN32 to this implementation to be able to use condition variables, which is impossible with CriticalSection. | |||||
* | | PlayerThread: use pc.cond instead of main_cond | Max Kellermann | 2013-01-10 | 4 | -8/+2 | |
| | | | | | | | | | | The main_cond variable was completely unnecessary. The pc.cond object can be used for both main->pc and pc->main. | |||||
* | | DecoderControl: take ownership of client_cond | Max Kellermann | 2013-01-10 | 4 | -7/+8 | |
| | | | | | | | | | | Don't let the "client" pass its own GCond. This was not used consistently. | |||||
* | | DecoderThread: signal the client after decoder finishes | Max Kellermann | 2013-01-10 | 1 | -0/+2 | |
| | | | | | | | | Fixes potential dead lock bug. | |||||
* | | thread/PosixMutex: fix indent | Max Kellermann | 2013-01-10 | 1 | -13/+13 | |
| | | ||||||
* | | GlobalEvents: lock-less operation using std::atomic | Max Kellermann | 2013-01-10 | 3 | -39/+9 | |
| | | | | | | | | Use a bit field instead of a mutex-protected bool array. | |||||
* | | event/WakeFD: use eventfd() if available | Max Kellermann | 2013-01-10 | 2 | -1/+46 | |
| | | ||||||
* | | fd_util: support eventfd() | Max Kellermann | 2013-01-10 | 2 | -0/+25 | |
| | | ||||||
* | | GlobalEvents: move code to class WakeFD | Max Kellermann | 2013-01-09 | 3 | -27/+148 | |
| | | ||||||
* | | EventPipe: rename to GlobalEvents | Max Kellermann | 2013-01-09 | 16 | -268/+261 | |
| | | ||||||
* | | EventPipe: use Mutex instead of GMutex | Max Kellermann | 2013-01-09 | 1 | -10/+7 | |
| | | ||||||
* | | event_pipe.h: convert to C++ | Max Kellermann | 2013-01-09 | 13 | -40/+14 | |
| | | ||||||
* | | sig_handlers, log: convert to C++ | Max Kellermann | 2013-01-09 | 6 | -17/+13 | |
| | | ||||||
* | | mixer/{alsa,pulse}: convert to C++ | Max Kellermann | 2013-01-09 | 6 | -29/+57 | |
| | | ||||||
* | | Playlist.hxx: move prototype to PlaylistGlobal.hxx | Max Kellermann | 2013-01-09 | 4 | -3/+28 | |
| | | ||||||
* | | Playlist: move playlist_increment_version_all() into the class | Max Kellermann | 2013-01-09 | 3 | -6/+5 | |
| | | ||||||
* | | event_pipe: convert to C++ | Max Kellermann | 2013-01-09 | 2 | -3/+11 | |
| | | ||||||
* | | idle: convert to C++ | Max Kellermann | 2013-01-09 | 17 | -43/+23 | |
| | | ||||||
* | | ReplayGainCoinfig: initialize replay_gain_limit with default value | Max Kellermann | 2013-01-09 | 1 | -1/+1 | |
| | | ||||||
* | | ReplayGainCoinfig: make DEFAULT_REPLAYGAIN_LIMIT static | Max Kellermann | 2013-01-09 | 1 | -1/+1 | |
| | |