Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | util/fifo_buffer: add method _init() | Max Kellermann | 2013-01-15 |
| | |||
* | Client: move connection functions into the class | Max Kellermann | 2013-01-15 |
| | |||
* | SignalHandlers: emit GlobalEvents::SHUTDOWN | Max Kellermann | 2013-01-15 |
| | | | | .. instead of calling g_main_loop_quit(), which may dead-lock. | ||
* | fifo_buffer: move to util/ | Max Kellermann | 2013-01-15 |
| | |||
* | fifo_buffer: add extern "C" | Max Kellermann | 2013-01-15 |
| | |||
* | socket_error: new library for errno / WSAGetLastError() | Max Kellermann | 2013-01-15 |
| | |||
* | io_error: add function new_error_errno() | Max Kellermann | 2013-01-15 |
| | |||
* | Client*: include check.h / config.h | Max Kellermann | 2013-01-14 |
| | |||
* | ClientList: allow deleting clients in client_list_foreach() callback | Dark Raven | 2013-01-14 |
| | |||
* | Revert "ClientList.cxx: copy client list before iterating" | Max Kellermann | 2013-01-14 |
| | | | | | This reverts commit f53dadcc6d0a29ce7419a07a51762b4b44654696, to prepare for a better solution. | ||
* | event/TimeoutMonitor: wrapper for g_timeout_source_new() | Max Kellermann | 2013-01-14 |
| | |||
* | StateFile: convert to a class | Max Kellermann | 2013-01-14 |
| | |||
* | gcc.h: add C++11 "final" fallback macro | Max Kellermann | 2013-01-14 |
| | |||
* | InotifyQueue: convert to a class | Max Kellermann | 2013-01-14 |
| | |||
* | InotifySource: convert to a class | Max Kellermann | 2013-01-14 |
| | |||
* | Main, IOThread: move GMainLoop setup code to class EventLoop | Max Kellermann | 2013-01-14 |
| | |||
* | IOThread: use gcc.h | Max Kellermann | 2013-01-14 |
| | |||
* | ClientList.cxx: copy client list before iterating | Denis Krjuchkov | 2013-01-13 |
| | | | | | | | | 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 |
| | | | | | | | | | 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 |
| | | | | | | | | | | 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. | ||
* | configure.ac: use correct variable for checking libmpdclient presence | Denis Krjuchkov | 2013-01-11 |
| | |||
* | thread/{Mutex,Cond}: new backend for WIN32 | Max Kellermann | 2013-01-11 |
| | | | | | | 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 |
| | | | | Work around a build failure due to windows.h macro. | ||
* | configure.ac: require Windows Vista or newer | Max Kellermann | 2013-01-11 |
| | | | | | We're going to use Vista features soon. Sorry for those poor people still on XP (or Windows, anyway). | ||
* | configure.ac: enable WIN32_LEAN_AND_MEAN on Windows | Max Kellermann | 2013-01-11 |
| | |||
* | string_util.c: provide fallback strndup() implementation | Denis Krjuchkov | 2013-01-11 |
| | | | | | 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 |
| | |||
* | icy_metadata: convert to C++ | Max Kellermann | 2013-01-10 |
| | |||
* | input/Curl: add constructor to input_curl class | Max Kellermann | 2013-01-10 |
| | |||
* | input/Curl: remove unused source/source_id attributes | Max Kellermann | 2013-01-10 |
| | |||
* | input/Curl: remove redundant attribute "url" | Max Kellermann | 2013-01-10 |
| | | | | Use the "url" attribute from the base class instead. | ||
* | input/Curl: use std::forward_list instead of GSList | Max Kellermann | 2013-01-10 |
| | |||
* | input/Curl: remove unused attribute "fds" | Max Kellermann | 2013-01-10 |
| | |||
* | input/Curl: require libcurl 7.18 | Max Kellermann | 2013-01-10 |
| | |||
* | output/shout: refactor check_block_param() to a function | Max Kellermann | 2013-01-10 |
| | | | | Don't use macro magic, don't dereference the block_param. | ||
* | Log, ...: include cleanup | Max Kellermann | 2013-01-10 |
| | |||
* | decoder/wavpack: convert to C++ | Max Kellermann | 2013-01-10 |
| | |||
* | decoder/wavpack: include cleanup | Max Kellermann | 2013-01-10 |
| | |||
* | conf: convert to C++ | Max Kellermann | 2013-01-10 |
| | |||
* | path: move code to IsSupportedCharset() | Max Kellermann | 2013-01-10 |
| | |||
* | path: make the "win_charset" buffer static | Max Kellermann | 2013-01-10 |
| | | | | It is illegal to use it after going out of scope. | ||
* | notify: convert to C++ | Max Kellermann | 2013-01-10 |
| | |||
* | io_thread: convert to C++ | Max Kellermann | 2013-01-10 |
| | |||
* | input/{curl,soup}: convert to C++ | Max Kellermann | 2013-01-10 |
| | |||
* | input_stream: convert to C++ (internally) | Max Kellermann | 2013-01-10 |
| | |||
* | PlayerControl: switch to the Mutex/Cond classes | Max Kellermann | 2013-01-10 |
| | |||
* | thread/Cond: new wrapper for pthread_cond_t or GCond | Max Kellermann | 2013-01-10 |
| | |||
* | thread/GLibMutex: new Mutex implementation | Max Kellermann | 2013-01-10 |
| | | | | | 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 |
| | | | | | 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 |
| | | | | | Don't let the "client" pass its own GCond. This was not used consistently. |