aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2013-01-14event/TimeoutMonitor: wrapper for g_timeout_source_new()Max Kellermann8-60/+152
2013-01-14StateFile: convert to a classMax Kellermann3-75/+80
2013-01-14gcc.h: add C++11 "final" fallback macroMax Kellermann1-0/+1
2013-01-14InotifyQueue: convert to a classMax Kellermann3-41/+45
2013-01-14InotifySource: convert to a classMax Kellermann3-98/+96
2013-01-14Main, IOThread: move GMainLoop setup code to class EventLoopMax Kellermann11-76/+131
2013-01-14IOThread: use gcc.hMax Kellermann1-4/+6
2013-01-13ClientList.cxx: copy client list before iteratingDenis Krjuchkov1-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.
2013-01-13WakeFD.cxx: use two sockets instead of pipe on Win32Denis Krjuchkov2-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.
2013-01-13Win32Main.cxx: more clean shutdownDenis Krjuchkov1-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.
2013-01-11thread/{Mutex,Cond}: new backend for WIN32Max Kellermann4-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().
2013-01-11GlobalEvents: #undef DELETE on WindowsMax Kellermann1-0/+8
Work around a build failure due to windows.h macro.
2013-01-11configure.ac: enable WIN32_LEAN_AND_MEAN on WindowsMax Kellermann3-1/+3
2013-01-11string_util.c: provide fallback strndup() implementationDenis Krjuchkov3-0/+48
This patch also adds extern "C" { } wrapper around string_util.h to allow its usage in C++ code
2013-01-10input/curl: use std::list instead of GQueueMax Kellermann1-93/+80
2013-01-10icy_metadata: convert to C++Max Kellermann4-163/+136
2013-01-10input/Curl: add constructor to input_curl classMax Kellermann1-32/+30
2013-01-10input/Curl: remove unused source/source_id attributesMax Kellermann1-7/+0
2013-01-10input/Curl: remove redundant attribute "url"Max Kellermann1-4/+2
Use the "url" attribute from the base class instead.
2013-01-10input/Curl: use std::forward_list instead of GSListMax Kellermann1-27/+21
2013-01-10input/Curl: remove unused attribute "fds"Max Kellermann1-3/+1
2013-01-10input/Curl: require libcurl 7.18Max Kellermann1-24/+4
2013-01-10output/shout: refactor check_block_param() to a functionMax Kellermann1-18/+15
Don't use macro magic, don't dereference the block_param.
2013-01-10Log, ...: include cleanupMax Kellermann3-3/+0
2013-01-10decoder/wavpack: convert to C++Max Kellermann4-36/+58
2013-01-10decoder/wavpack: include cleanupMax Kellermann1-3/+0
2013-01-10conf: convert to C++Max Kellermann1-63/+73
2013-01-10path: move code to IsSupportedCharset()Max Kellermann1-6/+15
2013-01-10path: make the "win_charset" buffer staticMax Kellermann1-1/+1
It is illegal to use it after going out of scope.
2013-01-10notify: convert to C++Max Kellermann6-99/+79
2013-01-10io_thread: convert to C++Max Kellermann5-30/+27
2013-01-10input/{curl,soup}: convert to C++Max Kellermann5-67/+86
2013-01-10input_stream: convert to C++ (internally)Max Kellermann7-19/+18
2013-01-10PlayerControl: switch to the Mutex/Cond classesMax Kellermann3-13/+10
2013-01-10thread/Cond: new wrapper for pthread_cond_t or GCondMax Kellermann5-0/+189
2013-01-10thread/GLibMutex: new Mutex implementationMax Kellermann2-19/+44
Switch WIN32 to this implementation to be able to use condition variables, which is impossible with CriticalSection.
2013-01-10PlayerThread: use pc.cond instead of main_condMax Kellermann4-8/+2
The main_cond variable was completely unnecessary. The pc.cond object can be used for both main->pc and pc->main.
2013-01-10DecoderControl: take ownership of client_condMax Kellermann4-7/+8
Don't let the "client" pass its own GCond. This was not used consistently.
2013-01-10DecoderThread: signal the client after decoder finishesMax Kellermann1-0/+2
Fixes potential dead lock bug.
2013-01-10thread/PosixMutex: fix indentMax Kellermann1-13/+13
2013-01-10GlobalEvents: lock-less operation using std::atomicMax Kellermann3-39/+9
Use a bit field instead of a mutex-protected bool array.
2013-01-10event/WakeFD: use eventfd() if availableMax Kellermann2-1/+46
2013-01-10fd_util: support eventfd()Max Kellermann2-0/+25
2013-01-09GlobalEvents: move code to class WakeFDMax Kellermann3-27/+148
2013-01-09EventPipe: rename to GlobalEventsMax Kellermann16-268/+261
2013-01-09EventPipe: use Mutex instead of GMutexMax Kellermann1-10/+7
2013-01-09event_pipe.h: convert to C++Max Kellermann13-40/+14
2013-01-09sig_handlers, log: convert to C++Max Kellermann6-17/+13
2013-01-09mixer/{alsa,pulse}: convert to C++Max Kellermann6-29/+57
2013-01-09Playlist.hxx: move prototype to PlaylistGlobal.hxxMax Kellermann4-3/+28