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
Max Kellermann
ceb652915f
decoder/Opus: move code to HandlePackets()
2013-01-08 01:20:03 +01:00
Max Kellermann
cdaf504ab8
decoder/Opus: make internal methods inline
2013-01-08 01:19:18 +01:00
Max Kellermann
9fb5aad157
decoder/OggUtil: add OggExpectFirstPage() and OggExpectPageIn()
2013-01-08 01:08:01 +01:00
Max Kellermann
a6301d45f4
decoder/Opus: use OggExpectPage() in main loop
2013-01-08 01:05:59 +01:00
Max Kellermann
b83d069266
decoder/OggUtil: add struct forward declarations
2013-01-08 01:02:06 +01:00
Max Kellermann
960b9a9664
input_stream: add method _cheap_seeking()
...
Move code from the Vorbis decoder plugin.
2013-01-07 23:25:08 +01:00
Max Kellermann
acb45caa42
decoder/ogg_codec: convert to C++
2013-01-07 22:14:52 +01:00
Max Kellermann
39060b528a
decoder/vorbis: convert to C++
2013-01-07 22:04:58 +01:00
Max Kellermann
4a36323f1b
Queue: don't include glib.h
2013-01-07 22:01:56 +01:00
Max Kellermann
c6281b2680
Queue: use C++ random instead of GLib's GRand
2013-01-07 22:00:57 +01:00
Max Kellermann
5b8b7d1412
util/LazyRandomEngine: lazy wrapper for std::mt19937
2013-01-07 21:27:51 +01:00
Max Kellermann
53e5139b99
Queue: move queue_shuffle_order_first() into the class
2013-01-07 21:26:22 +01:00
Max Kellermann
2b8ce83c9b
Queue: move queue_shuffle_order_range() into the class
2013-01-07 21:17:01 +01:00
Max Kellermann
52638c68f5
Playlist: convert functions to methods
2013-01-07 11:35:35 +01:00
Max Kellermann
400ff1c812
DatabaseQueue: pass DatabaseSelection to Add...()
2013-01-07 11:33:00 +01:00
Max Kellermann
d360f17a59
Client: add Partition reference attribute
...
playlist and player_control are deprecated.
2013-01-07 10:59:56 +01:00
Max Kellermann
a6ee6be960
TagPool: use the Mutex class instead of GStaticMutex
2013-01-07 10:49:21 +01:00
Max Kellermann
47911f9544
tag: convert to C++
2013-01-07 10:36:27 +01:00
Max Kellermann
48025c2279
DatabaseLock: use the Mutex class instead of GLib's GMutex
2013-01-07 10:34:55 +01:00
Max Kellermann
a68302e50b
thread/Mutex: don't use std::mutex
...
Use a custom pthread_mutex_t wrapper because std::mutex adds overhead.
2013-01-07 10:33:37 +01:00
Max Kellermann
333a08ebf9
replay_gain_info, ...: use cmath instead of math.h in C++ mode
...
Fixes build problems with mingw32.
2013-01-07 10:19:02 +01:00
Max Kellermann
989c9a7317
filter/replay_gain: convert to C++
2013-01-07 10:17:16 +01:00
Max Kellermann
975370c084
decoder_api.h, ...: add "extern C"
2013-01-07 10:07:40 +01:00
Max Kellermann
c3c776bc6a
mixer_all: convert to C++
2013-01-07 09:05:06 +01:00
Max Kellermann
9f4b906e6c
volume: convert to C++
2013-01-07 09:05:01 +01:00
Max Kellermann
804900df36
audio_config, volume, mixer_all: include cleanup
2013-01-07 08:54:01 +01:00
Max Kellermann
6936c0e2ab
Queue: use std::swap
2013-01-06 23:48:34 +01:00
Max Kellermann
108242042e
queue: convert all functions to methods
2013-01-06 21:33:58 +01:00
Max Kellermann
70652abf97
Queue: add constructor and destructor
2013-01-06 18:59:39 +01:00
Max Kellermann
e202b407ec
Playlist: add constructor and destructor
2013-01-06 18:59:33 +01:00
Max Kellermann
2cc89e60cc
DatabaseQueue: force passing playlist reference to std::bind()
...
Avoid implicit copy.
2013-01-06 18:59:01 +01:00
Max Kellermann
d536944beb
Partition: new class, container for Playlist and PlayerControl
...
This is the beginning of multi-player support. There will be support
for multiple Partition objects in one MPD process.
2013-01-05 02:43:00 +01:00
Max Kellermann
1a8ef3cdab
filter/ReplayGain: add method _set_mode()
...
Push the new mode to the filter instead of accessing global variables
through replay_gain_get_real_mode().
2013-01-05 02:40:33 +01:00
Max Kellermann
7be33eba48
DecoderAPI: don't use replay_gain_get_real_mode()
...
replay_gain_get_real_mode() accesses dangerous globals. Let's just
use the global variable replay_gain_mode, and assume "AUTO" means
"TRACK". At this point, this is the best we can do, because neither
the decoder nor the player should know about the current replay gain
mode. This is applied as a filter in the output thread.
2013-01-05 02:40:32 +01:00
Max Kellermann
46ed91b53d
DecoderAPI: _replay_gain() returns void
...
Let the function decoder_replay_gain() update
decoder_control::replay_gain_db instead of letting each decoder plugin
take care for that.
2013-01-05 02:40:29 +01:00
Max Kellermann
44d260f911
replay_gain_*: convert to C++
2013-01-04 23:50:58 +01:00
Max Kellermann
07249fc395
replay_gain_config: remove unused variable replay_gain_mode_names
2013-01-04 23:49:41 +01:00
Max Kellermann
bc1e8e01f3
DatabaseQueue: pass playlist object
...
Don't use the global variable "g_playlist".
2013-01-04 23:19:46 +01:00
Max Kellermann
fe8e77e556
Client: add "playlist" attribute
...
Reduce access to the global variable "g_playlist".
2013-01-04 23:07:11 +01:00
Max Kellermann
b0833084a6
PlayerControl: initialize all attributes
2013-01-04 23:04:42 +01:00
Max Kellermann
3cacaa5dad
Client: initialize num_subscriptions
2013-01-04 23:02:35 +01:00
Max Kellermann
e89bd30db5
Playlist: pass max_length to playlist_init()
...
Move the configuration lookup to Main.cxx.
2013-01-04 22:55:11 +01:00
Max Kellermann
2a9d933a81
PlayerControl: add constructor and destructor
2013-01-04 22:45:14 +01:00
Max Kellermann
81f3d893d9
player_control.h: convert header to C++
2013-01-04 22:31:53 +01:00
Max Kellermann
05c91082e3
playlist: convert to C++
2013-01-04 22:12:33 +01:00
Max Kellermann
7267558ba1
DecoderThread: move code to destructor
2013-01-04 22:02:52 +01:00
Max Kellermann
ac6803e7b7
DecoderInternal: initialize replay_gain_serial
2013-01-04 22:01:13 +01:00
Max Kellermann
ffabf8b013
DecoderInternal: move initializers to constructor
2013-01-04 21:59:03 +01:00
Max Kellermann
e9b71a0d28
MusicChunk: move functions to methods
2013-01-04 21:38:46 +01:00
Max Kellermann
efbfe66f21
Mutex: new wrapper for std::mutex, replaces GMutex
2013-01-04 21:24:29 +01:00
Max Kellermann
6886063703
MusicPipe: allocate with new/delete
2013-01-04 21:22:07 +01:00
Max Kellermann
c04e1ad401
mpd_error.h: add missing glib.h include
2013-01-04 21:20:10 +01:00
Max Kellermann
223b90d0d4
MusicBuffer: return memory to kernel when stopping playback
...
Use the new HugeAllocator as backend for SliceBuffer and call
HugeDiscard() when the last chunk was returned.
2013-01-04 20:48:28 +01:00
Max Kellermann
692b2cfb79
HugeAllocator: new memory allocator
2013-01-04 20:38:06 +01:00