Max Kellermann
26d92c80ed
conf.h: remove obsolete header
...
Use only ConfigData.hxx in plugin sources to reduce header
dependencies.
2013-09-05 08:47:10 +02:00
Max Kellermann
9605e24655
conf.h: move constants to ConfigDefaults.hxx
2013-09-05 08:42:08 +02:00
Max Kellermann
7d0269d2ce
InputLegacy: move functions to the input_stream class
2013-09-05 00:23:14 +02:00
Max Kellermann
681d6bbdc5
TagTable: un-inline the two functions
...
Reduce header dependencies.
2013-09-04 23:57:30 +02:00
Max Kellermann
867b82b6de
Tag*: move TagTable.hxx to libtag.a
2013-09-04 23:54:37 +02:00
Max Kellermann
5101ef4b02
Tag*: move libtag.a sources to src/tag/
2013-09-04 23:46:20 +02:00
Max Kellermann
ee9e238179
system/SocketError: un-inline constructor
...
Reduces header dependencies.
2013-09-04 23:36:30 +02:00
Max Kellermann
29030b54c9
util/Error: new error passing library
...
Replaces GLib's GError.
2013-09-04 18:14:22 +02:00
Max Kellermann
c9fcc7f148
system/resolver: convert to C++
2013-09-04 18:02:09 +02:00
Max Kellermann
d1f4a31b5e
output/pulse: require libpulse 0.9.16
...
Remove all #ifdefs. Old versions of libpulse are not being tested,
and thus I'm removing support.
2013-09-04 16:55:03 +02:00
Max Kellermann
b691d3123b
IOThread: pass GError to FatalError()
...
Fixes build failure on GLib < 2.32.
2013-09-04 16:54:52 +02:00
Max Kellermann
f68e36f8c2
DatabaseSave: eliminate redundant db_quark() implementation
2013-09-03 11:52:57 +02:00
Max Kellermann
4db119c01b
IOThread: use FatalError() on g_thread_create() error
...
New GLib versions don't fail.
2013-09-03 11:28:47 +02:00
Max Kellermann
bbd7115564
input/{mms,despotify}: remove "seek" implementation
...
Omitting it has the same effect as returning false unconditionally.
2013-09-03 10:54:29 +02:00
Max Kellermann
8d36367fe2
input_stream.h: rename to InputLegacy.hxx
2013-09-03 09:18:30 +02:00
Max Kellermann
3deca8fccd
db_error: convert to C++
2013-08-10 19:43:27 +02:00
Max Kellermann
7af24c4d3a
playlist_error: convert to C++
2013-08-10 19:40:45 +02:00
Max Kellermann
7f0ce4e94e
ack.h: move to protocol/
2013-08-10 19:32:41 +02:00
Max Kellermann
5c48d3fbba
alsa/mixer: defer InvalidateSockets() call to I/O thread
2013-08-10 14:05:06 +02:00
Max Kellermann
00420ef9ca
EventLoop: initialise the thread id explicitly
2013-08-10 14:01:55 +02:00
Max Kellermann
b9d30595d6
ZeroconfAvahi: disable Avahi with epoll
...
Temporary hotfix until we have integrated avahi into our new event
loop.
2013-08-10 13:59:01 +02:00
Max Kellermann
c1f4f1fdb6
EventLoop: new implementation using epoll
...
Implement an event loop without GLib.
2013-08-10 13:54:23 +02:00
Max Kellermann
342333f72a
mixer/alsa: invoke InvalidateSockets() in constructor
2013-08-10 13:54:23 +02:00
Max Kellermann
94cdc47786
event/Call: signal the calling thread
...
Fixes regression from commit 018f4155
.
2013-08-10 12:40:44 +02:00
Max Kellermann
cc511e7b60
event/IdleMonitor: new monitor class
2013-08-10 11:52:31 +02:00
Max Kellermann
bb2af791e9
event/MultiSocketMonitor: add struct SingleFD
...
Prepare for migrating away from GLib.
2013-08-10 11:52:31 +02:00
Max Kellermann
f3f4b332ae
event/MultiSocketMonitor: use uint64_t instead of gint64
...
Unsigned and portable.
2013-08-10 11:52:31 +02:00
Max Kellermann
84ac79bb08
event/MultiSocketMonitor: eliminate virtual method CheckSockets()
...
Handle timeout internally.
2013-08-10 11:52:31 +02:00
Max Kellermann
be0c8495cd
event/MultiSocketMonitor: PrepareSockets() returns timeout
...
Simplify the API, don't use GLib specific integer type.
2013-08-10 11:52:31 +02:00
Max Kellermann
cbd0709d1c
glib_compat.h: use monotonic_clock_us() in g_source_get_time()
2013-08-10 11:52:31 +02:00
Max Kellermann
371d635da8
glib_compat.h: remove unused wrapper g_file_test()
2013-08-10 11:52:31 +02:00
Max Kellermann
85216966fa
decoder/wildmidi: use class Path for the "timidity.cfg" location
2013-08-10 11:52:31 +02:00
Max Kellermann
1c823e9d1f
ConfigData: overload GetBlockPath() with default value
2013-08-10 11:52:31 +02:00
Max Kellermann
25e338a098
ConfigData: use FatalError() instead of MPD_ERROR()
2013-08-10 11:52:31 +02:00
Max Kellermann
81175b0717
system/EPollFD: fix typo in Add()
2013-08-10 11:52:31 +02:00
Max Kellermann
d23c907a94
thread/Id: new class replacing GThread pointers
...
Remove a GLib dependencies from class EventLoop and DatabaseLock.
2013-08-10 09:00:04 +02:00
Max Kellermann
018f4155eb
event: add function BlockingCall()
...
Replaces io_thread_call(). This approach is more generic and easier
to use due to std::function.
2013-08-08 23:04:07 +02:00
Max Kellermann
9ab0a1f5f1
EventLoop: add methodd IsInside()
...
Track which thread runs the EventLoop and provide a check whether
we're currently inside.
2013-08-08 23:04:01 +02:00
Max Kellermann
c043b337b1
EventLoop: un-inline Run() and others
...
Prepare for adding more code.
2013-08-08 23:03:49 +02:00
Max Kellermann
090bc6fa79
event/*Monitor: add method GetEventLoop()
2013-08-08 23:03:38 +02:00
Max Kellermann
b63db1c1aa
event/SocketMonitor: un-inline Schedule()
...
Merge with CommitEventFlags().
2013-08-08 00:18:59 +02:00
Max Kellermann
0287ac794e
event/SocketMonitor: add assertions
2013-08-08 00:18:59 +02:00
Max Kellermann
0005221533
output/httpd: use "unsigned" instead of "guint"
2013-08-08 00:18:59 +02:00
Max Kellermann
23d2c0f1c6
Client{Event,Write}: add missing include
2013-08-08 00:14:19 +02:00
Max Kellermann
377b6f05ea
event/BufferedSocket: add missing include
2013-08-08 00:11:40 +02:00
Max Kellermann
3ac2e9d31f
os/FileSystem: disable mkfifo() wrapper on WIN32
2013-08-07 20:31:27 +02:00
Max Kellermann
b76a29a69a
ConfigPath: return a Path object
...
Migrate all callers to use Path directly, instead of doing the
conversion in each caller.
2013-08-07 19:59:09 +02:00
Max Kellermann
abe090ec1f
*: remove remaining __cplusplus checks
2013-08-07 19:58:52 +02:00
Max Kellermann
dff05c71e6
event/EPollFD: basic support for Linux epoll
2013-08-07 19:44:43 +02:00
Max Kellermann
f6f4742410
event/DeferredMonitor: rename Run() to RunDeferred()
2013-08-07 19:39:26 +02:00
Max Kellermann
977004c350
event/DeferredMonitor: use EventLoop::AddIdle()
2013-08-07 19:38:10 +02:00
Max Kellermann
355dd5cb24
event/DeferredMonitor: new class wrapping g_idle_add()
2013-08-07 18:59:42 +02:00
Max Kellermann
123dd5fe2d
mixer/alsa: use AllocatedArray for the pollfd buffer
2013-08-07 18:56:57 +02:00
Max Kellermann
953e3190ca
encoder/lame: use ReusableBuffer instead of AllocatedArray
2013-08-07 18:53:24 +02:00
Max Kellermann
44a0e21795
PcmBuffer: move code to new class ReusableBuffer
...
ReusableBuffer is more generic.
2013-08-07 18:51:21 +02:00
Max Kellermann
870cc1d928
add missing includes
2013-08-07 18:23:55 +02:00
Max Kellermann
d86ee93801
filter/Route: don't access PcmBuffer attributes directly
...
Return the pointer given by PcmBuffer::Get() instead of reaching into
the PcmBuffer object.
2013-08-07 18:23:34 +02:00
Alexander Gehrke
87b7328463
CommandLine.cxx: look for config file in XDG_CONFIG_HOME too
...
Look for "$XDG_CONFIG_HOME/mpd/mpd.conf", similar to where mpd looks
for the file under Windows.
2013-08-07 18:22:27 +02:00
Alexis Ballier
3f846cf6b8
FfmpegDecoderPlugin: Allocate the interleaved buffer as needed instead of using an arbitrary big constant.
...
Also, save a memcpy when FFmpeg outputs interleaved audio.
Fixes build with FFmpeg 2.0.
2013-08-07 15:07:41 +02:00
Max Kellermann
f2ce8c3b62
event/EventFD: move to libsystem
2013-08-07 11:52:26 +02:00
Max Kellermann
4223657ab8
event/SignalMonitor: use signalfd() if available
2013-08-07 11:03:47 +02:00
Max Kellermann
930128a7ea
SignalHandlers: move code to new class SignalMonitor
2013-08-07 10:56:33 +02:00
Max Kellermann
db447440ff
event/Event{Pipe,FD}: auto-create in constructor
...
Errors are fatal now. This makes the class a lot easier to use.
2013-08-07 10:53:22 +02:00
Max Kellermann
b70d38dc10
Makefile.am: move sources to libsystem.a
2013-08-07 10:31:31 +02:00
Max Kellermann
a27d105dcd
FatalError: new library to replace mpd_error.h
2013-08-07 10:08:36 +02:00
Max Kellermann
67e44b0f2c
daemon: convert to C++
2013-08-07 09:53:33 +02:00
Max Kellermann
47e16dbee3
configure.ac: add option --enable-eventfd
...
Remove the runtime check for eventfd(), hard-code the feature once
it's been selected at compile time. The class WakeFD is splitted into
EventFD and EventPipe, using WakeFD as a macro diversion.
2013-08-06 23:32:21 +02:00
Max Kellermann
66f678023f
util/Manual: add missing include <utility>
2013-08-06 22:34:20 +02:00
Max Kellermann
132971f8eb
playlist/pls: use std::string instead of GString
2013-08-06 09:32:08 +02:00
Max Kellermann
3f04a4d635
encoder/lame: dynamic output buffer
2013-08-06 09:13:28 +02:00
Max Kellermann
17c8e839b6
encoder/lame: use delete instead of g_free()
2013-08-06 09:13:07 +02:00
Max Kellermann
348bdcd7b7
encoder/lame: use lame_encode_buffer_interleaved()
...
Don't deinterleave manually, don't allocate memory.
2013-08-06 09:10:30 +02:00
Max Kellermann
a32443c63b
encoder/lame: use offset variable instead of memmove()
2013-08-06 09:02:48 +02:00
Max Kellermann
7e53934ce3
encoder/lame: rename "buffer" to "output_buffer"
2013-08-06 09:02:48 +02:00
Max Kellermann
7c2b553364
playlist/EmbbeddedCue: convert to class
2013-08-05 22:23:33 +02:00
Max Kellermann
409fc837ab
playlist/lastfm: convert to class
2013-08-05 21:44:34 +02:00
Max Kellermann
6d0ada7f45
playlist/lastfm: allocate the lastfm_playlist object at the end
...
Simplify the error path, because the other allocations may fail.
2013-08-05 21:31:54 +02:00
Max Kellermann
af63372d2b
playlist/m3u: allocate ExtM3uPlaylist with new/delete
2013-08-05 21:28:19 +02:00
Max Kellermann
3e91f757a9
playlist/extm3u: allocate ExtM3uPlaylist with new/delete
2013-08-05 21:25:25 +02:00
Max Kellermann
498491ec05
decoder/ffmpeg: convert struct mpd_ffmpeg_stream to a class
2013-08-05 00:15:25 +02:00
Max Kellermann
85b77b81ca
*: use gcc.h macros instead of GLib
2013-08-04 23:48:01 +02:00
Andrzej Rybczak
5bf2ec5a74
DatabasePrint: print Last-Modified attribute for directories
2013-08-04 23:29:24 +02:00
Max Kellermann
9e715089a4
Commands: new command "toggleoutput"
2013-08-04 23:21:23 +02:00
Max Kellermann
9326ce53ec
Merge tag 'release-0.17.5'
2013-08-04 14:36:22 +02:00
Justin Riley
3a34fd181d
FfmpegDecoderPlugin: add application/flv to mime types list
2013-08-04 14:20:16 +02:00
Max Kellermann
fcb7233b25
ConfigData: remove obsolete functions
2013-08-04 14:07:50 +02:00
Max Kellermann
fe53a376a3
PlaylistPlugin: pass config_param reference
2013-08-04 14:07:50 +02:00
Max Kellermann
65842cd99e
DatabasePlugin: pass config_param reference
2013-08-04 14:07:50 +02:00
Max Kellermann
bf6ed643e0
InputPlugin: pass config_param reference
2013-08-04 14:07:50 +02:00
Max Kellermann
a0beb5fa26
MixerPlugin: pass config_param reference
2013-08-04 14:07:50 +02:00
Max Kellermann
f54bcc1f16
FilterPlugin: pass config_param reference
2013-08-04 14:07:50 +02:00
Max Kellermann
ca0d09c50f
EncoderPlugin: pass config_param reference
2013-08-04 14:07:50 +02:00
Max Kellermann
81c3224076
OutputPlugin: pass config_param reference
2013-08-04 14:07:49 +02:00
Max Kellermann
7a1d466fb2
DecoderPlugin: pass config_param reference
2013-08-04 13:30:47 +02:00
Max Kellermann
83f4c48c8a
ConfigData: move code to block_param, config_param methods
2013-08-04 12:03:56 +02:00
Max Kellermann
acd742d225
ConfigData: remove C++ checks
2013-08-03 23:47:31 +02:00
Max Kellermann
d1e7b4e381
audio_format: convert to C++
2013-08-03 21:37:56 +02:00
Max Kellermann
67f591a9ce
gcc.h: add macro gcc_unreachable()
2013-08-03 21:34:17 +02:00
Christoph Mende
7ff988275f
decoder/mikmod: use MikMod_free() to free the title on libmikmod-3.2
...
Player_LoadTitle() returns an aligned pointer in libmikmod-3.2 that
cannot be freed with free(). The correct way to do this now is
MikMod_free() which extracts the original pointer from the buffer and
frees that.
Signed-off-by: Christoph Mende <mende.christoph@gmail.com>
2013-08-01 09:30:20 +02:00
Max Kellermann
363050f44c
playlist_edit: fix "move" relative to current when there is no current song
...
Fixes Mantis #3770 .
2013-08-01 09:28:03 +02:00