Max Kellermann
a291415326
event/BufferedSocket: move output buffer to FullyBufferedSocket
...
BufferedSocket has just an input buffer, and FullyBufferedSocket adds
the output buffer.
2013-01-30 11:03:44 +01:00
Max Kellermann
4ad7456428
event/SocketMonitor: OnSocketReady() returns bool
2013-01-30 11:03:44 +01:00
Max Kellermann
73f36858bb
event/SocketMonitor: add methods Read(), Write()
2013-01-30 10:39:17 +01:00
Max Kellermann
fe3f0332f7
page: convert to C++
2013-01-30 09:18:52 +01:00
Max Kellermann
718fd97612
icy_server: convert to C++
2013-01-30 09:17:03 +01:00
Max Kellermann
f8ff45b212
icy_server: pass pointer to _metadata_page()
...
Don't use va_list.
2013-01-30 09:13:46 +01:00
Max Kellermann
f5c0b0d316
ArchiveFile: convert to a class
2013-01-29 23:26:51 +01:00
Max Kellermann
ba51045d9e
refcount: convert to C++
2013-01-29 23:20:19 +01:00
Max Kellermann
9f0fb8f6a8
ArchivePlugin: replace scan_reset(), scan_next() with visit()
...
Add the interface ArchiveVisitor.
2013-01-29 21:21:07 +01:00
Max Kellermann
a42f9fd4e2
ArchivePlugin: scan_next() returns const string
2013-01-29 21:11:04 +01:00
Max Kellermann
e66005563e
playlist/despotify: various code simplifications
2013-01-29 20:36:28 +01:00
Max Kellermann
8cad20585d
playlist/memory: use std::forward_list instead of GSList
2013-01-29 20:32:54 +01:00
Max Kellermann
a8b75dc4df
playlist/{asx,rss,soundcloud,xspf}: merge code to MemoryPlaylistProvider
2013-01-29 18:56:35 +01:00
Max Kellermann
e4455962c6
ClientSubscribe: remove obsolete typedef
2013-01-29 18:37:40 +01:00
Max Kellermann
20f85745e7
require GLib 2.24
2013-01-29 18:33:37 +01:00
Max Kellermann
feb8d5b82f
ConfigFile, CommandLine: use the Path class
2013-01-29 18:09:39 +01:00
Max Kellermann
eb8922f346
test/{read_conf,run_filter}: convert to C++
2013-01-29 17:23:58 +01:00
Max Kellermann
84eb95466b
output/osx: convert to C++
2013-01-29 16:59:21 +01:00
Max Kellermann
3dd8beb380
decoder/faad: use the newer NeAAC* API
...
Drop support for the old faacDec* API.
2013-01-29 16:17:15 +01:00
Max Kellermann
26a9ce7b29
output/{alsa,oss}: convert to C++
2013-01-29 14:32:32 +01:00
Max Kellermann
76417d4446
InputStream: use std::string
2013-01-28 23:41:45 +01:00
Max Kellermann
cffc78ad6a
InputStream: store references instead of pointers
2013-01-28 23:35:01 +01:00
Max Kellermann
dcf55c7e32
InputStream: add constructor/destructor
...
Eliminate input_stream_init() and input_stream_deinit().
2013-01-28 23:29:43 +01:00
Max Kellermann
e565cd4404
input/despotify: add constructor/destructor
2013-01-28 23:13:19 +01:00
Max Kellermann
5934ccbb74
input/despotify: rename class
2013-01-28 23:12:10 +01:00
Max Kellermann
e39969a0d0
input/iso9660: add constructor/destructor
2013-01-28 22:54:07 +01:00
Max Kellermann
d68185aa28
input/iso9660: rename the classes
2013-01-28 22:52:40 +01:00
Max Kellermann
4cab151ed2
input/zzip: add constructor/destructor
2013-01-28 22:48:04 +01:00
Max Kellermann
8ac9b77e5c
input/zzip: rename the classes
2013-01-28 22:43:59 +01:00
Max Kellermann
1b9da5d978
input/bzip2: add constructor/destructor
2013-01-28 22:39:09 +01:00
Max Kellermann
ab2b7358cb
archive/bzip2: rename the classes
2013-01-28 22:17:40 +01:00
Max Kellermann
8ceea85813
DatabaseLock, input/bzip2: remove obsolete Glib/gcc workaround
2013-01-28 22:17:40 +01:00
Max Kellermann
d0a812d2df
input/Soup: move code into the class
2013-01-28 22:00:24 +01:00
Max Kellermann
3dad2e1c0f
input/soup: rename the class
2013-01-28 21:59:40 +01:00
Max Kellermann
70e4399334
input/ffmpeg: add constructor/destructor
2013-01-28 21:46:38 +01:00
Max Kellermann
00f8c2d46f
input/ffmpeg: rename the class
2013-01-28 21:45:44 +01:00
Max Kellermann
0dd4b52b63
decoder/ffmpeg: require ffmpeg/libav 0.7.6
...
This is the version present in Ubuntu Oneiric, the oldest distribution
with gcc 4.6. Debian Squeeze is off target, because it has gcc 4.4,
which is unable to compile MPD anyway.
This commit drops all API compatibility hacks for older versions.
2013-01-28 21:32:14 +01:00
Max Kellermann
88c17926e4
decoder/mp4ff: delete obsolete plugin
...
The underlying library has been obsolete for many years.
2013-01-28 21:32:14 +01:00
Max Kellermann
541192c941
db/Proxy: explicitly request first element of array
...
Works around gcc 4.6 bug.
2013-01-28 21:32:14 +01:00
Max Kellermann
2e9f054ec0
audio_config: include cleanup
2013-01-28 20:30:47 +01:00
Max Kellermann
2aa34882b7
output/httpd: move functions into the HttpdOutput class
2013-01-27 23:23:46 +01:00
Max Kellermann
27f8ef2f33
output/httpd: rename struct httpd_output
2013-01-27 23:21:39 +01:00
Max Kellermann
2cbe21c791
ZeroconfAvahi: pass GMainContext to avahi_glib_poll_new()
2013-01-27 22:53:21 +01:00
Max Kellermann
0988056471
ZeroconfBonjour: use SocketMonitor instead of GIOChannel
2013-01-27 22:38:14 +01:00
Max Kellermann
95c3f57b30
zeroconf: convert to C++
2013-01-27 22:38:14 +01:00
Max Kellermann
068f191c0d
event/SocketMonitor: add method Steal()
2013-01-27 22:38:14 +01:00
Max Kellermann
a65afa8090
PlayerControl: work around std::nanf() not being available on MacPorts
2013-01-27 21:58:35 +01:00
Max Kellermann
8155784990
string_util: add fallback for strnlen()
...
Usually, when strndup() is not available, strndup() isn't either,
because both are POSIX 2008.
2013-01-27 21:43:27 +01:00
Denis Krjuchkov
e98e2a0b07
Path::FromUTF8() returns nulled instance on error, add error handling where required
2013-01-28 00:13:46 +06:00
Denis Krjuchkov
943064bb51
Path: convert remaining funcs to methods, keep fs_charset as std::string
2013-01-28 00:13:46 +06:00
Denis Krjuchkov
7149a8ae4f
Path: merge utf8_to_fs_charset() into Path::FromUTF8()
2013-01-28 00:13:45 +06:00
Denis Krjuchkov
3c7cf94643
Path: convert fs_charset_to_utf8() to static method Path::ToUTF8()
2013-01-28 00:13:45 +06:00
Denis Krjuchkov
3bd35d1883
Path: introduce MPD_PATH_MAX_UTF8
2013-01-28 00:13:45 +06:00
Max Kellermann
6f3d70b5e2
DecoderControl, InputStream: use Mutex/Cond instead of GMutex/GCond
2013-01-27 18:39:32 +01:00
Max Kellermann
257a0dee75
playlist/*: convert to C++
2013-01-27 17:38:09 +01:00
Denis Krjuchkov
e995cd928c
Path: define MPD_PATH_MAX to 260 on Windows
2013-01-26 11:18:12 +06:00
Denis Krjuchkov
292d7c3fdf
Path: ToUTF() returns std::string
2013-01-26 11:16:12 +06:00
Max Kellermann
0273cd44b0
input_stream: forward-declare the struct
...
Hide the definition from C code, to prepare the transition to C++.
2013-01-26 01:24:01 +01:00
Max Kellermann
3203a7dd8c
tag_file: convert to C++
2013-01-26 01:23:02 +01:00
Max Kellermann
86b0adc82c
playlist/*: convert to C++
2013-01-26 01:17:43 +01:00
Max Kellermann
ba49f20f68
decoder/ffmpeg: convert to C++
2013-01-26 01:17:43 +01:00
Denis Krjuchkov
a3ee26da64
Mapper: improve usage of Path class
2013-01-26 01:14:13 +01:00
Max Kellermann
a9b62a2ece
PlayerControl: add second Cond object
...
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-25 23:53:43 +01:00
Max Kellermann
49567f1f3e
input_{internal,plugin}: convert to C++
2013-01-25 22:43:01 +01:00
Max Kellermann
94fffb332b
archive/*: convert to C++
2013-01-24 19:18:58 +01:00
Max Kellermann
dc2e64c92b
DecoderControl: fix typo in assertion check
2013-01-23 18:02:40 +01:00
Denis Krjuchkov
ef93cdf4a8
Path: move to fs subdirectory
2013-01-22 01:24:53 +06:00
Denis Krjuchkov
4ad90e2d52
FileSystem: extract DirectoryReader, improve the rest
...
- 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-22 01:05:30 +06:00
Max Kellermann
7c0e4dfb56
input/archive: fix memory leak in error handler
2013-01-21 19:08:35 +01:00
Max Kellermann
9ec069104f
input,playlist/despotify: convert to C++
2013-01-21 19:01:10 +01:00
Max Kellermann
7d21d60dba
despotify_utils: fix indent
2013-01-21 19:00:50 +01:00
Max Kellermann
ed8562c300
despotify_utils: include cleanup
2013-01-21 19:00:01 +01:00
Max Kellermann
22ec1c3498
despotify_utils: add missing copyright header
2013-01-21 18:59:37 +01:00
Max Kellermann
9cc90b1fbe
input/cdio_paranoia: convert to C++
2013-01-21 17:58:30 +01:00
Max Kellermann
0c9f22507f
input/ffmpeg: convert to C++
2013-01-21 17:50:43 +01:00
Max Kellermann
9c870e4276
input/rewind: convert to C++
2013-01-21 17:36:19 +01:00
Max Kellermann
5cffe693b0
input/file,mms: convert to C++
2013-01-21 10:52:40 +01:00
Max Kellermann
e01615fd1e
input_internal.h: add extern "C"
2013-01-21 10:52:19 +01:00
Max Kellermann
3928c4e9ae
UpdateRemove: Mutex/Cond instead of GMutex/GCond
2013-01-21 10:42:47 +01:00
Max Kellermann
32799fef5c
DecoderControl: move functions into the class
2013-01-21 10:13:29 +01:00
Max Kellermann
e1b03b4a71
PlayerControl: move functions into the class
2013-01-20 17:48:23 +01:00
Denis Krjuchkov
e6ed592b8a
FileSystem: new library for Path-friendly file system routines
2013-01-20 19:08:36 +06:00
Denis Krjuchkov
6f4560184c
dummy.cxx: remove unused file
...
This file was used previously to force C++ linkage.
It's no longer required because most of the code is C++ anyway.
2013-01-19 12:45:50 +06:00
Max Kellermann
e5039c478a
Path: new class "Path" wraps filesystem path strings
2013-01-18 15:34:01 +01:00
Max Kellermann
8901514506
Playlist, Song: clarify parameter encoding
2013-01-18 15:34:01 +01:00
Max Kellermann
21fe376d1d
path: convert to C++
2013-01-17 00:43:27 +01:00
Max Kellermann
e22ef6c481
output/roar: convert to C++
2013-01-16 23:29:56 +01:00
Max Kellermann
2bb01093c0
Idle: don't wake up event loop on duplicate event
2013-01-16 23:27:17 +01:00
Max Kellermann
36c814d26e
Idle: use std::atomic instead of GMutex
2013-01-16 23:23:47 +01:00
Max Kellermann
d769b74d61
Main: fix comment typo
2013-01-16 23:23:47 +01:00
Max Kellermann
601495fa0f
ClientList: convert to a class
2013-01-16 23:00:13 +01:00
Max Kellermann
1998633739
ClientGlobal: move client_close_all() to ClientList.cxx
2013-01-16 22:56:52 +01:00
Max Kellermann
0194217f9d
Revert "ClientList: allow deleting clients in client_list_foreach() callback"
...
This reverts commit f56c6a18c1
. This
fix is not necessary anymore because clients are now being deleted by
the timer callback.
2013-01-16 22:49:51 +01:00
Max Kellermann
b0bbb8b693
Client: use TimeoutMonitor to track connection timeout
...
Don't use a global loop over the whole client list.
2013-01-16 21:51:08 +01:00
Max Kellermann
cab84af72e
Client: move "idle" functions into the class
2013-01-16 21:46:13 +01:00
Max Kellermann
74500eacca
Merge branch 'v0.17.x'
2013-01-16 20:05:26 +01:00
Brice Jaglin
1105e61f29
decoder/ffmpeg: support float planar audio
2013-01-16 19:54:54 +01:00
Max Kellermann
b7cf279d6d
zeroconf-avahi: eliminate "goto"
2013-01-16 00:23:00 +01:00
Max Kellermann
452a30d7af
input/Curl: break loop when remaining length becomes 0
...
Fixes assertion failure (regression).
2013-01-15 23:39:32 +01:00
Max Kellermann
49e79620fd
PlayerControl: initialise attribute "border_pause"
2013-01-15 23:21:14 +01:00
Max Kellermann
ae5a721df9
Playlist: initialise attribute "playing"
2013-01-15 23:09:18 +01:00
Max Kellermann
0dd5f2915a
ServerSocket: use the SocketMonitor class
2013-01-15 22:56:06 +01:00
Max Kellermann
a0ebd444ad
event/SocketMonitor: add method Open()
...
Allow creating a closed SocketMonitor instance.
2013-01-15 22:56:06 +01:00
Max Kellermann
0c6072c4e4
ServerSocket: move more code to methods
2013-01-15 22:53:14 +01:00
Max Kellermann
8917264110
ServerSocket, SocketUtil: use the SocketError library
...
Use WinSock errors on Windows.
2013-01-15 22:42:15 +01:00
Max Kellermann
e90d606f0a
socket_util: convert to C++
2013-01-15 22:41:56 +01:00
Max Kellermann
5bb2d64ddb
SocketError: merge duplicate FormatMessage() calls
...
Make a class that contains the formatting code and the buffer.
2013-01-15 22:41:56 +01:00
Max Kellermann
bc66dc45e6
server_socket: convert to C++
2013-01-15 21:42:55 +01:00
Max Kellermann
7087935656
output/httpd: convert to C++
2013-01-15 20:20:51 +01:00
Max Kellermann
5822daa63d
output_internal, ...: add extern "C"
2013-01-15 20:20:51 +01:00
Max Kellermann
4808c7ef39
encoder/{Vorbis,Opus}: use new/delete
2013-01-15 20:20:51 +01:00
Max Kellermann
7071126770
InotifySource: use the SocketMonitor class
2013-01-15 18:18:34 +01:00
Max Kellermann
2101daef5a
mixer/Alsa: use MultiSocketMonitor
2013-01-15 18:18:00 +01:00
Max Kellermann
083065f433
input/Curl: move code to class MultiSocketMonitor
2013-01-15 18:16:55 +01:00
Max Kellermann
4cfc4a5a94
input/Curl: simpler GPollFD initialisation
...
Using initializer list.
2013-01-15 18:16:38 +01:00
Max Kellermann
1c7ee737e6
input/Curl: don't remove/add modified GPollFD
...
Not necessary, GLib will pick up the updated GPollFD automatically.
2013-01-15 18:16:15 +01:00
Max Kellermann
39439b80f5
Client: rebase on the new BufferedSocket class
2013-01-15 12:15:33 +01:00
Max Kellermann
396480cf94
event/SocketMonitor: wrapper class for GSource + GPollFD
2013-01-15 11:00:48 +01:00
Max Kellermann
3e03527930
Client: move output buffer code to new class PeakBuffer
2013-01-15 10:59:28 +01:00
Max Kellermann
4fa724461e
util/fifo_buffer: add method _init()
2013-01-15 10:59:28 +01:00
Max Kellermann
1e2018ce83
Client: move connection functions into the class
2013-01-15 10:59:28 +01:00
Max Kellermann
3fcf17cb79
SignalHandlers: emit GlobalEvents::SHUTDOWN
...
.. instead of calling g_main_loop_quit(), which may dead-lock.
2013-01-15 10:59:28 +01:00
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
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
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
Max Kellermann
5c3c506638
GlobalEvents: lock-less operation using std::atomic
...
Use a bit field instead of a mutex-protected bool array.
2013-01-10 00:57:18 +01:00
Max Kellermann
ecd5eb02c5
event/WakeFD: use eventfd() if available
2013-01-10 00:10:01 +01:00
Max Kellermann
3be57dc4a3
fd_util: support eventfd()
2013-01-10 00:10:01 +01:00
Max Kellermann
a93caf3cfe
GlobalEvents: move code to class WakeFD
2013-01-09 23:47:38 +01:00
Max Kellermann
26ebfc04b0
EventPipe: rename to GlobalEvents
2013-01-09 23:31:43 +01:00
Max Kellermann
8782f6d232
EventPipe: use Mutex instead of GMutex
2013-01-09 23:30:07 +01:00
Max Kellermann
5faf443038
event_pipe.h: convert to C++
2013-01-09 22:37:47 +01:00
Max Kellermann
8eacd13ce7
sig_handlers, log: convert to C++
2013-01-09 22:33:06 +01:00
Max Kellermann
d3e1b72d38
mixer/{alsa,pulse}: convert to C++
2013-01-09 22:25:24 +01:00
Max Kellermann
b5e1bd5705
Playlist.hxx: move prototype to PlaylistGlobal.hxx
2013-01-09 22:23:37 +01:00
Max Kellermann
4bef0a1e62
Playlist: move playlist_increment_version_all() into the class
2013-01-09 22:21:16 +01:00
Max Kellermann
3e5f09be0b
event_pipe: convert to C++
2013-01-09 13:02:13 +01:00
Max Kellermann
e86e77ad67
idle: convert to C++
2013-01-09 13:01:38 +01:00
Max Kellermann
6b4374583a
ReplayGainCoinfig: initialize replay_gain_limit with default value
2013-01-09 12:25:14 +01:00
Max Kellermann
f8a99a391e
ReplayGainCoinfig: make DEFAULT_REPLAYGAIN_LIMIT static
2013-01-09 08:56:16 +01:00
Max Kellermann
2564f763d7
ClientList: don't use GLib
...
Use std::list instead of GList.
2013-01-09 08:12:44 +01:00
Max Kellermann
377a2b9e07
ClientList: add header ClientList.hxx
2013-01-09 08:08:36 +01:00
Max Kellermann
045993001c
zeroconf-bonjour: include Listen.hxx instead of listen.h
...
Should fix the OS X build.
2013-01-09 08:07:26 +01:00
Max Kellermann
affc446690
Queue: use std::stable_sort() instead of g_qsort_with_data()
2013-01-08 16:51:21 +01:00
Max Kellermann
255ee646c2
song: don't use GLib
2013-01-08 16:47:12 +01:00
Max Kellermann
0308ec564e
util/list: don't use GLib
2013-01-08 16:41:36 +01:00
Max Kellermann
6cafec8ae6
Queue: allocate memory with new/delete
2013-01-08 16:35:09 +01:00
Max Kellermann
8ef87be482
Queue: use signed integer instead of G_MAXUINT
...
The check for unsigned underflow is fragile and unreliable.
2013-01-08 16:33:33 +01:00
Max Kellermann
6c57047362
Queue: move code to new class IdTable
2013-01-08 16:11:25 +01:00
Max Kellermann
e29bc6912b
Queue: rename internal types
2013-01-08 16:05:10 +01:00
Max Kellermann
ce57b8b6df
Queue: move HASH_MULT and Item into the Queue class
2013-01-08 16:04:10 +01:00
Max Kellermann
d81a9029db
Queue: move GenerateId() and others into the class
2013-01-08 15:38:10 +01:00
Max Kellermann
bf4311cd9b
decoder/OggUtil,Opus: move code to new class OggSyncState
2013-01-08 11:04:14 +01:00
Max Kellermann
8f7adf79a3
decoder/Opus: read total time
2013-01-08 01:38:02 +01:00
Max Kellermann
97b164d03b
decoder/OggUtil: add OggExpectPageSeek()
2013-01-08 01:30:44 +01:00
Max Kellermann
61e7e531c2
decoder/Opus: move page reader into the decoder class
2013-01-08 01:22:11 +01:00