Max Kellermann
f9fc3a42cc
fifo_buffer: move to util/
2013-01-15 01:02:13 +01:00
Max Kellermann
76bc28ab1e
fifo_buffer: add extern "C"
2013-01-15 01:01:25 +01:00
Max Kellermann
f47f86ef02
socket_error: new library for errno / WSAGetLastError()
2013-01-15 00:53:12 +01:00
Max Kellermann
31268ffa24
io_error: add function new_error_errno()
2013-01-15 00:53:12 +01:00
Max Kellermann
0634be9724
Client*: include check.h / config.h
2013-01-14 23:50:01 +01:00
Dark Raven
f56c6a18c1
ClientList: allow deleting clients in client_list_foreach() callback
2013-01-14 11:24:54 +01:00
Max Kellermann
aa4c506fcd
Revert "ClientList.cxx: copy client list before iterating"
...
This reverts commit f53dadcc6d
, to
prepare for a better solution.
2013-01-14 11:24:29 +01:00
Max Kellermann
d3a479b7fa
event/TimeoutMonitor: wrapper for g_timeout_source_new()
2013-01-14 11:12:28 +01:00
Max Kellermann
92fb0e829a
StateFile: convert to a class
2013-01-14 11:00:22 +01:00
Max Kellermann
43a9928537
gcc.h: add C++11 "final" fallback macro
2013-01-14 10:56:42 +01:00
Max Kellermann
c8b408beae
InotifyQueue: convert to a class
2013-01-14 10:13:28 +01:00
Max Kellermann
8e3982dd42
InotifySource: convert to a class
2013-01-14 10:08:26 +01:00
Max Kellermann
e83f805b8f
Main, IOThread: move GMainLoop setup code to class EventLoop
2013-01-14 09:15:49 +01:00
Max Kellermann
be98afe34d
IOThread: use gcc.h
2013-01-14 09:15:49 +01:00
Denis Krjuchkov
f53dadcc6d
ClientList.cxx: copy client list before iterating
...
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-13 15:36:25 +06:00
Denis Krjuchkov
90ab65f8c7
WakeFD.cxx: use two sockets instead of pipe on Win32
...
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-13 15:30:53 +06:00
Denis Krjuchkov
abb0fcb203
Win32Main.cxx: more clean shutdown
...
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-13 15:20:32 +06:00
Denis Krjuchkov
eef4f33a29
configure.ac: use correct variable for checking libmpdclient presence
2013-01-11 16:47:56 +06:00
Max Kellermann
0226440a2d
thread/{Mutex,Cond}: new backend for WIN32
...
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-11 11:11:07 +01:00
Max Kellermann
9d770d6084
GlobalEvents: #undef DELETE on Windows
...
Work around a build failure due to windows.h macro.
2013-01-11 11:10:46 +01:00
Max Kellermann
7f0297dc44
configure.ac: require Windows Vista or newer
...
We're going to use Vista features soon. Sorry for those poor people
still on XP (or Windows, anyway).
2013-01-11 11:09:27 +01:00
Max Kellermann
49f3855407
configure.ac: enable WIN32_LEAN_AND_MEAN on Windows
2013-01-11 11:06:16 +01:00
Denis Krjuchkov
a98aa66620
string_util.c: provide fallback strndup() implementation
...
This patch also adds extern "C" { } wrapper around string_util.h
to allow its usage in C++ code
2013-01-11 13:51:39 +06:00
Max Kellermann
631a268996
input/curl: use std::list instead of GQueue
2013-01-10 23:00:23 +01:00
Max Kellermann
85074f5ac6
icy_metadata: convert to C++
2013-01-10 22:33:16 +01:00
Max Kellermann
12a8ed39d4
input/Curl: add constructor to input_curl class
2013-01-10 22:25:57 +01:00
Max Kellermann
b9ac5e9e76
input/Curl: remove unused source/source_id attributes
2013-01-10 22:25:33 +01:00
Max Kellermann
2758a734a2
input/Curl: remove redundant attribute "url"
...
Use the "url" attribute from the base class instead.
2013-01-10 22:21:30 +01:00
Max Kellermann
01f3131c81
input/Curl: use std::forward_list instead of GSList
2013-01-10 20:52:58 +01:00
Max Kellermann
2ca9236864
input/Curl: remove unused attribute "fds"
2013-01-10 20:52:44 +01:00
Max Kellermann
3bb711837e
input/Curl: require libcurl 7.18
2013-01-10 20:46:47 +01:00
Max Kellermann
ed8798e82f
output/shout: refactor check_block_param() to a function
...
Don't use macro magic, don't dereference the block_param.
2013-01-10 18:46:33 +01:00
Max Kellermann
38474961fd
Log, ...: include cleanup
2013-01-10 18:34:40 +01:00
Max Kellermann
3dd38e7b7f
decoder/wavpack: convert to C++
2013-01-10 18:18:14 +01:00
Max Kellermann
3711a97657
decoder/wavpack: include cleanup
2013-01-10 18:18:02 +01:00
Max Kellermann
911411e630
conf: convert to C++
2013-01-10 18:18:02 +01:00
Max Kellermann
c02cc199bc
path: move code to IsSupportedCharset()
2013-01-10 18:06:21 +01:00
Max Kellermann
dd6c21e092
path: make the "win_charset" buffer static
...
It is illegal to use it after going out of scope.
2013-01-10 17:54:11 +01:00
Max Kellermann
b8cda53bd3
notify: convert to C++
2013-01-10 10:44:04 +01:00
Max Kellermann
e0a97a030f
io_thread: convert to C++
2013-01-10 10:33:20 +01:00
Max Kellermann
33ba288622
input/{curl,soup}: convert to C++
2013-01-10 10:23:20 +01:00
Max Kellermann
d5516dee00
input_stream: convert to C++ (internally)
2013-01-10 10:15:09 +01:00
Max Kellermann
06e0741a52
PlayerControl: switch to the Mutex/Cond classes
2013-01-10 10:12:54 +01:00
Max Kellermann
0b93445380
thread/Cond: new wrapper for pthread_cond_t or GCond
2013-01-10 10:03:19 +01:00
Max Kellermann
483ba5ea1c
thread/GLibMutex: new Mutex implementation
...
Switch WIN32 to this implementation to be able to use condition
variables, which is impossible with CriticalSection.
2013-01-10 10:03:18 +01:00
Max Kellermann
18076ac9b7
PlayerThread: use pc.cond instead of main_cond
...
The main_cond variable was completely unnecessary. The pc.cond object
can be used for both main->pc and pc->main.
2013-01-10 10:01:24 +01:00
Max Kellermann
ad15ca7104
DecoderControl: take ownership of client_cond
...
Don't let the "client" pass its own GCond. This was not used
consistently.
2013-01-10 10:01:18 +01:00
Max Kellermann
53117ac204
DecoderThread: signal the client after decoder finishes
...
Fixes potential dead lock bug.
2013-01-10 10:00:53 +01:00
Max Kellermann
51a8c109ab
thread/PosixMutex: fix indent
2013-01-10 10:00:52 +01:00
Denis Krjuchkov
ea25e0ee55
configure.ac: change newline position to fit into 80 chars
2013-01-10 14:47:15 +06:00