Max Kellermann
3c4cd9d08b
input/alsa: fix build with gcc 4.6
2013-12-21 21:21:25 +01:00
Steven O'Brien
6b3b8c6f2e
fix FfmpegDecoderPlugin to use relative timestamps
2013-12-20 22:28:33 +01:00
Steven O'Brien
35f85ddd86
add draft ALSA input plugin
...
I've created an elementary input plugin that plays sound from the
soundcard, so you can use MPD to listen to anything connected to the
line-in jack, or to Video4Linux FM radio cards that send audio through
the soundcard. There has been a small number of posts here in the
past requesting line-in input, so here is a first, simplistic stab at
it.
The patch adds a new sheme, alsa://, which causes mpd to play data
read directly from a souncdard. It defaults to hw:0,0, but you can
pass any ALSA device name in the URI. So, using mpc for example:
mpc add alsa://
mpc play
will play from device hw:0,0.
To use a diffferent device:
mpc add alsa://hw:1,0
2013-12-19 23:25:50 +01:00
Max Kellermann
45ad7696fe
output/osx: fix typo
2013-12-19 12:46:21 +01:00
Max Kellermann
d86cd4e4b4
util/fifo_buffer: remove obsolete library
2013-12-19 12:17:09 +01:00
Max Kellermann
0e84d71559
output/osx: use DynamicFifoBuffer instead of struct fifo_buffer
2013-12-19 12:16:29 +01:00
Max Kellermann
a191db84f2
util/Error: add missing <algorithm> include
...
For std::move().
2013-12-19 10:58:20 +01:00
Max Kellermann
52dca859c7
util/PeakBuffer: use IsEmpty() instead of IsNull()
...
The DynamicFifoBuffer methods never return nullptr when the buffer is
empty or full; instead, they return an empty buffer. This bug caused
an endless loop.
2013-12-19 10:30:26 +01:00
Michal Smucr
e4d69f38b0
riff: recognize upper-case "ID3" chunk name
...
Some tagging libraries (eg. TagLib) produce that variant.
2013-12-19 09:35:54 +01:00
Max Kellermann
97fc001180
input/cdio: fix typo in #include path
...
Broken by commit 3b0fea5f
2013-12-17 08:58:00 +01:00
Max Kellermann
f544316314
util/{Domain,Error}: relicense to BSD 2-clause
2013-12-16 22:42:01 +01:00
Max Kellermann
ecdebb315f
util/PeakBuffer: use DynamicFifoBuffer instead of struct fifo_buffer
...
Switch to the C++ version.
2013-12-15 23:07:08 +01:00
Max Kellermann
1f523be72d
util/PeakBuffer: return ConstBuffer<void>
2013-12-15 23:07:08 +01:00
Max Kellermann
f2a20a0a80
util/WritableBuffer: add cast methods
2013-12-15 23:01:06 +01:00
Max Kellermann
e5a2efaa65
util/WritableBuffer: fix indent
2013-12-15 22:58:32 +01:00
Max Kellermann
c44cb3246d
util/DynamicFifoBuffer: make constructor "explicit"
2013-12-15 22:35:21 +01:00
Max Kellermann
9cfd9d7ce0
Merge branch 'v0.18.x'
2013-12-15 19:17:40 +01:00
Max Kellermann
42a09ff17a
mixer/alsa: fix deadlock
...
This deadlock was a regression by commit 8e38b4f8
. Since we currently
can't resolve this, let's revert the commit, and add a GLib specific
workaround for the build failure.
2013-12-15 19:07:25 +01:00
Max Kellermann
d5dfe7d457
configure.ac: add option "--disable-glib"
...
Allows building without GLib. This fails to compile currently,
because GLib is still used in the MPD core.
2013-12-15 18:43:12 +01:00
Max Kellermann
0db0b4e302
Daemon: use strdup() instead of g_strdup()
2013-12-15 18:43:12 +01:00
Max Kellermann
635d6a19ef
util/Tokenizer, ...: include cleanup
2013-12-15 18:33:26 +01:00
Max Kellermann
777844ae0c
system/SocketError, ...: use strerror() instead of g_strerror()
...
Avoid GLib.
2013-12-15 18:32:07 +01:00
Max Kellermann
a10a4ad900
LogInit: move backend code to LogBackend.cxx
2013-12-15 18:27:52 +01:00
Max Kellermann
c330d694c7
Log: move Log() to LogBackend.cxx
...
Prepare for GLib removal.
2013-12-15 17:32:41 +01:00
Max Kellermann
73555f9088
Log: move enum LogLevel to LogLevel.hxx
2013-12-15 17:23:45 +01:00
Max Kellermann
e1ec65bd53
UriUtil: add function uri_get_scheme()
...
Replaces g_uri_parse_scheme().
2013-12-15 17:06:10 +01:00
Max Kellermann
65b8e52d80
output/alsa: use new[] instead of g_malloc()
2013-12-14 22:17:19 +01:00
Max Kellermann
4b7a418e28
playlist/soundcloud: fix coding style
2013-12-14 22:09:27 +01:00
Max Kellermann
73d917b76e
playlist/soundcloud: make variables more local
2013-12-14 22:08:45 +01:00
Max Kellermann
527a6003e2
input/despotify: don't log "eof" flag after setting it
2013-12-14 13:58:28 +01:00
Max Kellermann
26c731a382
input/despotify: convert to class
2013-12-14 13:49:56 +01:00
Max Kellermann
8297563978
decoder/flac: simplify the comment parsers
2013-12-14 13:44:57 +01:00
Max Kellermann
1da0526072
decoder/flac: VorbisComment_Entry is null-terminated
...
Don't duplicate the buffer just to null-terminate the string.
According to libFLAC API documentation, the string is already
null-terminated.
2013-12-14 13:44:57 +01:00
Max Kellermann
635a67afac
util/SplitString: new utility class
...
To replace g_strdup().
2013-12-14 12:58:26 +01:00
Max Kellermann
c7e7c819a2
decoder/vorbis: remove useless cast
2013-12-14 12:53:59 +01:00
Max Kellermann
fbf677d9b2
decoder/mad: use new[] instead of g_malloc()
2013-12-14 12:50:51 +01:00
Max Kellermann
d37b788ea8
DecoderAPI: add function decoder_read_full()
...
Move code from the "mad" plugin.
2013-12-14 12:43:06 +01:00
Max Kellermann
cb336ff666
DecoderAPI: add function decoder_skip()
...
Move code from the "mad" plugin.
2013-12-14 12:40:43 +01:00
Max Kellermann
c7b1038a9d
Merge branch 'v0.18.x'
2013-12-14 12:37:16 +01:00
Max Kellermann
d43aa12987
Tag: swap "base" and "add" in method Merge()
...
Fixes broken CUE sheet song tags (regression by commmit 7e8d254b
).
2013-12-13 15:53:58 +01:00
Max Kellermann
8e38b4f83c
mixer/alsa: use BlockingCall() instead of EventLoop::AddCall()
...
This is safer, and works without epoll(). Fixes a build failure with
uClibc, which does not support epoll().
2013-12-13 14:35:36 +01:00
mobidyc
96fa69ff6b
SongUpdate: accept files without metadata
...
If the file was recognized by a decoder plugin, accept it - don't
require metadata.
2013-12-10 19:34:35 +01:00
Max Kellermann
39d94bd3ea
TagFile: add return value API documentation
2013-12-10 19:32:26 +01:00
Lukas Stabe
695ca29274
output/osx: fix build failure
2013-12-10 19:19:31 +01:00
Denis Krjuchkov
ca69ad8beb
CommandLine: refactor config search, use standard directory API
2013-12-08 17:25:20 +06:00
Denis Krjuchkov
e42637226f
Main: use standard directory API
2013-12-08 17:25:19 +06:00
Denis Krjuchkov
ae25582178
ConfigPath: use standard directory API
2013-12-08 17:25:19 +06:00
Denis Krjuchkov
5d85792178
fs: implemented standard directories API
2013-12-08 17:24:43 +06:00
Denis Krjuchkov
acba9c0f61
TextFile: move to fs subsystem
2013-12-08 04:15:27 +06:00
Max Kellermann
ad7302a032
util/DynamicFifoBuffer: new class replacing growing_fifo
2013-12-05 11:49:21 +01:00
Denis Krjuchkov
38afc89407
fs/FileSystem.hxx: don't define CheckAccess() with mode on Windows
2013-12-05 15:05:01 +06:00
Denis Krjuchkov
c161bb287c
db/SimpleDatabasePlugin.cxx: don't use CheckAccess with mode on Windows
2013-12-05 15:05:01 +06:00
Denis Krjuchkov
06d7169674
fs/FileSystem.hxx: add CheckAccess without mode parameter
2013-12-05 15:05:01 +06:00
Denis Krjuchkov
8bf1640932
fs/Traits.cxx: don't return drive path without trailing separator
2013-12-05 15:05:01 +06:00
Denis Krjuchkov
da50c888fe
fs/Traits.hxx: introduce PathTraitsXXX::IsDrive function
2013-12-05 15:05:01 +06:00
Denis Krjuchkov
62dc8e4131
fs/Charset.cxx: replace \ with / when converting path to UTF-8 on Windows
2013-12-05 15:04:52 +06:00
Denis Krjuchkov
dc554ca61f
PlaylistSong.cxx: don't use g_build_filename
2013-12-05 12:35:29 +06:00
Denis Krjuchkov
cbb9149a82
fs/Traits.hxx: add shorter forms of PathTraitsXXX::Build()
2013-12-05 12:35:28 +06:00
Denis Krjuchkov
dab7348da8
fs/Traits.hxx: add PathTraitsUTF8::GetLength for consistency
2013-12-05 12:35:28 +06:00
Denis Krjuchkov
378e8a6224
fs/AllocatedPath.cxx: don't use g_path_get_dirname
2013-12-05 12:35:28 +06:00
Denis Krjuchkov
289fdcc52b
fs/Traits: implement GetBase/GetParent/Build using templates
2013-12-05 12:35:21 +06:00
Denis Krjuchkov
83e6e3e31f
fs/Traits.cxx: don't return empty string if parent dir is root
2013-12-05 12:27:31 +06:00
Denis Krjuchkov
c387031252
fs/Traits.hxx: add FindLastSeparator function to PathTraitsXXX
2013-12-05 04:09:07 +06:00
Denis Krjuchkov
403bd77eff
fs/Traits: improve compatibility between PathTraitsFS and PathTraitsUTF8
2013-12-05 04:01:29 +06:00
Denis Krjuchkov
b397c46184
fs/Traits.hxx: add gcc_nonnull_all where applicable
2013-12-05 03:56:51 +06:00
Denis Krjuchkov
0a6c4c31b2
fs/Traits: split PathTraits type into PathTraitsFS and PathTraitsUTF8
2013-12-05 03:53:43 +06:00
Max Kellermann
02fcf184b5
tag/ApeLoader: use new[]/delete[] instead of g_malloc()/g_free()
2013-12-04 15:21:10 +01:00
Max Kellermann
b978126bb0
DirectorySave: don't duplicate string
...
Not necessary anymore for playlist_metadata_load().
2013-12-04 15:11:23 +01:00
Max Kellermann
9f51d19087
PlaylistFile: use std::string for temporary string allocation
2013-12-04 15:07:45 +01:00
Max Kellermann
859184000f
Mapper: update API documentation
2013-12-04 15:04:54 +01:00
Max Kellermann
1ad2f18c9e
IcyMetaDataParser: use new[]/delete[] instead of g_malloc()/g_free()
2013-12-04 15:03:39 +01:00
Max Kellermann
06a49a5f9e
TagId3: make variables more local
2013-12-04 14:52:34 +01:00
Max Kellermann
b811927e0e
TagId3: use std::string for partial string copy
2013-12-04 14:43:09 +01:00
Max Kellermann
83cdd0a0c8
TagId3: use free() instead of g_free() for libid3tag allocations
2013-12-04 14:39:30 +01:00
Max Kellermann
53c69cd2ce
TagId3: use new[]/delete[] instead of g_malloc()/g_free()
2013-12-04 14:36:13 +01:00
Max Kellermann
c6cf8e992d
TagId3: gcc_unlikely instead of G_UNLIKELY
2013-12-04 14:35:16 +01:00
Max Kellermann
0c53e8c2d0
system/Resolver: use std::string to allocate internal buffer
...
No GLib memory allocation.
2013-12-04 14:27:28 +01:00
Max Kellermann
e1901e97c2
system/Resolver: sockaddr_to_string() returns std::string()
...
No GLib memory allocation.
2013-12-04 08:43:55 +01:00
Max Kellermann
d694150372
Tag: destructor calls Clear()
...
Eliminate duplicate code.
2013-12-03 13:19:45 +01:00
Max Kellermann
4ab586aaf1
Tag: use new[]/delete[] instead of g_new()/g_free()
2013-12-03 13:16:43 +01:00
Max Kellermann
8a5209ad93
Tag: remove method AddItem()
...
Use class TagBuilder instead.
2013-12-03 13:15:42 +01:00
Max Kellermann
308fdf6e9a
input/curl: use class TagBuilder
2013-12-03 13:14:11 +01:00
Max Kellermann
9f4e96fdfa
PaylistTag: use class TagBuilder
2013-12-03 12:59:55 +01:00
Max Kellermann
c36af35730
TagBuilder: add move operator
2013-12-03 12:59:33 +01:00
Max Kellermann
424f478c3f
TagBuilder: reserve items in move constructor
2013-12-03 12:59:32 +01:00
Max Kellermann
5e0c272061
TagBuilder: make conversion constructors "explicit"
2013-12-03 12:53:13 +01:00
Max Kellermann
d99bdca094
playlist/xspf: use class TagBuilder
2013-12-03 12:33:14 +01:00
Max Kellermann
187069bec9
playlist/xspf: rename "tag" to "tag_type"
2013-12-03 12:30:55 +01:00
Max Kellermann
01de768f09
playlist/soundcloud: use class TagBuilder
2013-12-03 12:30:00 +01:00
Max Kellermann
73a861abf1
playlist/rss: use class TagBuilder
2013-12-03 12:25:22 +01:00
Max Kellermann
b4f60ee95c
playlist/rss: rename "tag" to "tag_type"
2013-12-03 12:25:13 +01:00
Max Kellermann
85e587a882
playlist/pls: use class TagBuilder
2013-12-03 12:23:45 +01:00
Max Kellermann
d91f6dc1b5
playlist/extm3u: use class TagBuilder
2013-12-03 12:21:22 +01:00
Max Kellermann
78c0d8cc88
playlist/asx: use class TagBuilder
2013-12-03 12:15:43 +01:00
Max Kellermann
b23d2ad43b
playlist/asx: rename "tag" to "tag_type"
2013-12-03 12:14:55 +01:00
Max Kellermann
ef68946e74
CueParser: use class TagBuilder
2013-12-03 12:09:21 +01:00
Max Kellermann
a5574f9189
TagBuilder: implement the assignment operator
2013-12-03 12:09:21 +01:00
Max Kellermann
ba61a92897
CueParser: rename local variables "current_tag" to "tag"
2013-12-03 11:58:27 +01:00
Max Kellermann
68fc3704e9
CueParser: rename "tag" to "header_tag"
2013-12-03 11:55:32 +01:00
Max Kellermann
69867015e9
DespotifyUtils: use class TagBuilder
2013-12-03 11:46:31 +01:00
Max Kellermann
923f18ef76
IcyMetaDataParser: use class TagBuilder
2013-12-03 11:46:26 +01:00
Max Kellermann
7e8d254b95
Tag: move code from Merge() to TagBuilder::Complement()
2013-12-03 11:46:24 +01:00
Max Kellermann
6325c3f14a
TagBuilder: add Tag copy/move constructors
2013-12-03 11:46:23 +01:00
Max Kellermann
074a23e6b4
TagBuilder: add method HasType()
2013-12-03 11:46:21 +01:00
Max Kellermann
2fb61534a1
Merge branch 'master' of git://git.musicpd.org/dk/mpd
2013-12-03 11:46:04 +01:00
Max Kellermann
12b6c6ccf7
OutputAll: use new[]/delete[] instead of g_new()/g_free()
2013-12-03 10:51:50 +01:00
Denis Krjuchkov
55ed7bd34d
AllocatedPath.hxx: use move constructor
2013-12-03 14:57:26 +06:00
Denis Krjuchkov
eeeef3eab5
fs/AllocatedPath: use PathTraits::BuildFS
2013-12-03 13:50:50 +06:00
Denis Krjuchkov
96413b1604
fs/Traits.hxx: implement BuildFS() method
2013-12-03 13:46:05 +06:00
Denis Krjuchkov
2278fe42e5
fs/Traits.hxx: move definition of AllocatedPath::string to PathTraits
2013-12-03 13:37:35 +06:00
Denis Krjuchkov
3a183f869f
fs/Traits.hxx: add GetLengthFS()
...
There is no GetLengthUTF8() because strlen or std::string::size()
could be used instead.
2013-12-03 12:26:05 +06:00
Denis Krjuchkov
6c5828822c
fs/AllocatedPath.hxx: add FromFS(std::string) method
2013-12-03 12:16:53 +06:00
Denis Krjuchkov
9dd824ba50
fs/Traits.hxx: don't use g_path_is_absolute
2013-12-03 11:59:57 +06:00
Denis Krjuchkov
d744ea3fca
fs/Traits.hxx: simplify code
...
- Move definition of SEPARATOR_UTF8 out of #ifdef
- Remove duplicated check in IsSeparatorUTF8
2013-12-03 11:48:45 +06:00
Denis Krjuchkov
07352e82f1
PollGroupWinSelect: delete copy constructor and assignment operator
2013-12-03 11:43:26 +06:00
Denis Krjuchkov
1003cc9bf9
PollGroupWinSelect: uninline constructor and destructor
2013-12-03 11:41:36 +06:00
Lukas Stabe
0ea5f4ac3a
output/openal: check __APPLE__ instead of HAVE_OSX
...
On OSX, the configure-flag --enable-osx is used to enable the
unsupported osx output. It sets the HAVE_OSX preprocessor define.
src/output/OpenALOutputPlugin.cxx uses this define to determine wether
it is building on OSX, and imports different headers (which have
nothing to do with the osx output) depending on wether or not it is
set.
2013-12-02 13:08:52 +01:00
Max Kellermann
2b717997e2
command: add commands "addtagid", "cleartagid"
2013-12-02 12:50:27 +01:00
Max Kellermann
20ebacf489
Tag: add methods RemoveAll(), RemoveType()
2013-12-02 12:46:48 +01:00
Max Kellermann
c6ef0e8887
pcm/Traits: add typedef "sum_type"
...
Allow 32 bit platforms to use 32 bit instead of 64 bit for summing 24
bit samples.
2013-12-02 11:48:10 +01:00
Max Kellermann
f761d583b5
pcm/Traits: use int_leastX_t types
2013-12-02 11:47:17 +01:00
Max Kellermann
cee1ac150e
pcm/PcmChannels: implement fake N-to-M mapping
...
This is really just a mono mapper, but the important part is that this
library cannot fail anymore.
2013-12-02 11:42:19 +01:00
Max Kellermann
71b47ae3ef
pcm/PcmChannels: use the SampleTraits library
2013-12-02 11:28:54 +01:00
Max Kellermann
36e3fda554
pcm/Traits: add template specialization for FLOAT
2013-12-02 11:26:38 +01:00
Max Kellermann
2b44a2c9bd
pcm/PcmChannels: use struct ConstBuffer
2013-12-02 11:21:32 +01:00
Max Kellermann
af3b454805
pcm/PcmBuffer: add typed method GetT()
2013-12-02 11:21:32 +01:00
Max Kellermann
3a0f3eaa50
pcm/PcmUtils: use the SampleTraits library
2013-12-02 11:21:32 +01:00
Max Kellermann
80eb8d9e26
pcm/PcmUtils: remove unused function PcmClampN()
2013-12-02 11:21:32 +01:00
Max Kellermann
30c4136c4d
pcm/PcmVolume: use the SampleTraits library
2013-12-02 11:21:32 +01:00
Max Kellermann
83e4475021
pcm/PcmFormat: use SampleTraits::long_type in ConvertFromFloat()
2013-12-02 11:21:32 +01:00
Max Kellermann
c071d6d9f6
pcm/PcmPrng: add "constexpr"
2013-12-02 11:21:32 +01:00
Denis Krjuchkov
1df426aa5c
event: add poll() based PollGroup implementation
2013-12-02 14:39:52 +06:00
Max Kellermann
023482406f
pcm/PcmMix: use the SampleTraits library for MixRamp
2013-12-01 22:49:50 +01:00
Max Kellermann
04ba40981f
pcm/PcmMix: use the SampleTraits library
2013-12-01 22:44:16 +01:00
Max Kellermann
fc10bdf24d
pcm/SampleTraits: use 64 bit for S24 long_type
2013-12-01 22:44:16 +01:00
Max Kellermann
28ad79c97a
pcm/Traits: add typedef long_type
2013-12-01 19:32:48 +01:00
Max Kellermann
7661ad6653
pcm/Traits: add API documentation
2013-12-01 19:32:00 +01:00
Max Kellermann
e1436063ff
pcm/PcmFormat: move generic definitions to Traits.hxx
2013-12-01 19:24:37 +01:00
Max Kellermann
3e11a28cd9
pcm/SoxrResampler: new resampler option using libsoxr
2013-12-01 19:13:39 +01:00
Max Kellermann
3ed80f3139
pcm/ConfiguredResampler: convert boolean flag to enum
...
Prepare for adding more resamplers.
2013-12-01 19:13:39 +01:00
Max Kellermann
5ba90cd8ea
pcm/PcmResampler: convert to abstract interface
...
The PcmResampler interface is implemented by the two classes
FallbackPcmResampler and LibsampleratePcmResampler. This prepares for
adding more resampler libraries.
2013-11-30 16:22:57 +01:00
Max Kellermann
e9127523db
pcm/PcmConvert: move code to new class GluePcmResampler
2013-11-30 14:10:31 +01:00
Max Kellermann
92004f2e7e
pcm/PcmConvert: move code to new class PcmChannelsConverter
2013-11-30 13:22:25 +01:00
Max Kellermann
0eefc7a43c
pcm/PcmConvert: move code to new class PcmFormatConverter
2013-11-30 13:08:55 +01:00
Max Kellermann
3a666702af
pcm/PcmConvert: add AudioFormat parameters
...
Don't use src_format. In the middle of Convert(), the current
AudioFormat has already been modified, it's now something in between
src_format and dest_format. This simplifies keeping track of what
remains to be done.
2013-11-30 13:00:41 +01:00
Max Kellermann
3c0c939689
pcm/PcmConvert: use struct ConstBuffer internally
2013-11-29 22:48:23 +01:00
Max Kellermann
413f7c64e5
pcm/PcmDsd: use struct ConstBuffer
2013-11-29 22:06:14 +01:00
Max Kellermann
6f47c1ca20
util/ConstBuffer: new utility class
2013-11-29 22:06:04 +01:00
Max Kellermann
abeebfe070
pcm/PcmDsd: make attributes private
2013-11-29 22:05:29 +01:00
Max Kellermann
1a002eb23d
PcmConvert: add pcm_convert_global_init()
...
Wrapper for pcm_resample_global_init(), just in case other PCM
libraries need initialization, too.
2013-11-29 11:00:57 +01:00
Denis Krjuchkov
71bc15aca1
PollGroupEPoll.hxx: add const modifiers where applicable
2013-11-29 15:26:57 +06:00
Denis Krjuchkov
65b24ce557
Clock.cxx: provide all arguments for GetProcessTimes
...
All parameters seem mandatory, otherwise this call makes MPD crash.
2013-11-29 15:21:31 +06:00
Denis Krjuchkov
cfdd5edc49
event: implement PollGroup based on Windows select
2013-11-29 15:05:01 +06:00
Max Kellermann
e504913b0f
pcm: drop compatibility with libsamplerate older than 0.1.3
...
Remove compatibility code.
2013-11-28 20:48:02 +01:00
Max Kellermann
af4133e3c9
Util/StringUtil: add StringStartsWith()
...
Replaces GLib's g_str_has_prefix().
2013-11-28 18:48:35 +01:00
Max Kellermann
a788b7e747
PcmConvert: fix src_format corruption when converting from DSD
...
Method PcmConvert::Convert() modifies the src_format variable. This
used to be a parameter, however commit d2679f59c
made it an attribute
instead. The modification to src_format persisted, and the next call
would return garbage.
2013-11-28 18:43:33 +01:00
Denis Krjuchkov
bb288f0284
event: introduce generic API for internal event loop
2013-11-28 17:06:16 +06:00
Max Kellermann
f90abe9530
include cleanup using iwyu
2013-11-28 11:50:54 +01:00
Max Kellermann
47c50c079d
decoder/ffmpeg: use IgnoreError instead of local Error instance
2013-11-28 00:05:26 +01:00
Denis Krjuchkov
46bab7e4b9
Add infrastructure for using multiple event loops
...
This change adds two configuration options:
--with-eventloop=[glib|internal|auto]
--with-pollmethod=[epoll|auto]
First allows switching between GLib event loop and internal one.
Second chooses backend to use for internal event loop.
Conditional compilation symbols are changed accordingly.
Additional helper macro MPD_OPTIONAL_FUNC_NODEF is added as well.
2013-11-27 17:28:36 +06:00
Gaetan Bisson
3b0fea5fae
input/cdio_paranoia: support libcdio-paranoia 0.90
2013-11-27 08:25:17 +01:00
Denis Krjuchkov
22fb49fa90
HttpdOutputPlugin.cxx: fix null pointer dereference
2013-11-26 18:13:23 +06:00
Denis Krjuchkov
957d187ae4
Main.cxx: initialize winsock before creating IO thread
...
Otherwise sockets can't be created during IO thread initialization.
2013-11-26 18:10:18 +06:00
Max Kellermann
51de8fd10a
Volume, Output: use new class PeriodClock instead of GTimer
2013-11-25 22:09:46 +01:00
Max Kellermann
2ef6052536
ClientNew: fix nullptr dereference after g_get_prgname() failure
...
Hard-code the program name to "mpd" instead of using g_get_prgname().
The latter has become useless since this GLib variable doesn't get
initialized anymore.
2013-11-25 22:09:06 +01:00
Max Kellermann
394b1e6351
archive/iso9660: remove pointless formula
2013-11-24 22:49:15 +01:00
Max Kellermann
c95d068ef5
archive/iso9660: use reference instead of pointer
2013-11-24 22:47:50 +01:00
Max Kellermann
dbda35ffe1
archive/iso9660: convert structs to classes
2013-11-24 22:41:23 +01:00
Max Kellermann
6396e23a2a
DatabaseGlue: make GetDatabase() "gcc_const"
...
This variable is initialized once on startup. It will never change.
2013-11-24 22:04:45 +01:00
Max Kellermann
529b4bd185
Stats: use monotonic clock instead of GTimer
...
Reduce GLib usage.
2013-11-24 21:14:38 +01:00
Max Kellermann
85b51e4e77
Stats: use GetProcessTimes() on WIN32 to determine MPD uptime
...
Don't use GTimer if the operating system is able to tell us the
uptime.
2013-11-24 20:41:00 +01:00
Max Kellermann
e53a25cbae
event: add API documentation
2013-11-24 19:28:04 +01:00
Max Kellermann
41e7145973
event/SocketMonitor: add missing space
2013-11-24 16:07:12 +01:00
Denis Krjuchkov
db238cc23f
CommandLine: new command line parser
...
This implementation behaves mostly identical to old parser.
Few observable differences:
- There are no option groups (single group is used for all options)
- Option --stdout is hidden (it has been obsolete for a long time)
- MPD executable name (mpd) is hardcoded for simplicity
2013-11-24 17:29:05 +06:00
Max Kellermann
75e9c798e0
archive/iso9660: simplify _read()
2013-11-23 18:51:38 +01:00
Max Kellermann
99527051b5
Merge branch 'v0.18.x'
2013-11-23 18:45:02 +01:00
Max Kellermann
73f45d87d5
decoder/{dsf,dsdiff}: eliminate useless assignments
2013-11-23 18:30:12 +01:00
Max Kellermann
ae88ba986e
archive/iso9660: eliminate useless assignments
2013-11-23 18:30:12 +01:00
Max Kellermann
d6247902ec
input/curl: work around stream resume bug (fixed in libcurl 7.32.0)
2013-11-23 12:13:41 +01:00
Max Kellermann
a566c28a49
input/curl: add global variable "curl_version"
2013-11-23 12:08:46 +01:00
Max Kellermann
2eddb63a83
input/curl: dump version number
2013-11-23 12:02:39 +01:00
Max Kellermann
fc7d5b055d
PcmResampleLibsamplerate: clip 24 bit data
...
Using pcm_resample_lsr_32() for 24 bit samples works, but may cause 24
bit overflows. This commit makes 24 bit a special case with explicit
clipping.
2013-11-22 23:27:56 +01:00
Max Kellermann
87c8953e8e
PcmResample: un-inline Resample24()
2013-11-22 23:24:40 +01:00
Max Kellermann
45d27a52f1
PcmUtils: add function PcmClampN()
2013-11-22 23:24:40 +01:00
Max Kellermann
d22acc59c9
db/proxy: implement method GetUpdateStamp()
2013-11-22 00:45:27 +01:00
Max Kellermann
c064e8d62f
DatabasePlugin: add method GetUpdateStamp()
...
Refactor SimpleDatabase::GetLastModified() to be generic for all
plugins. Remove the SimpleDatabase assumption from db_stats_print(),
allowing it to be implemented by all database plugins.
2013-11-22 00:35:29 +01:00
Max Kellermann
099a2cb586
Stats: print db statistics only if db is available
...
Fixes crash on "stats" in certain configurations.
2013-11-22 00:27:37 +01:00
Max Kellermann
042fe2a9d0
Stats: print more unsigned integers
2013-11-22 00:23:27 +01:00
Max Kellermann
ff1c1107f3
Stats: auto-reload statistics with proxy plugin
2013-11-22 00:19:28 +01:00
Max Kellermann
41a3fd0fd0
Stats: use struct DatabaseStats
...
Eliminate redundant declaration.
2013-11-22 00:12:12 +01:00
Max Kellermann
b9169a5670
Stats: move the GTimer variable out of struct stats
2013-11-22 00:10:53 +01:00
Max Kellermann
2ecd5fa28d
Stats: don't export the global variable "stats"
...
Unused outside of Stats.cxx.
2013-11-22 00:08:43 +01:00
Max Kellermann
e719b6cc41
Stats: print db_update as unsigned integer
2013-11-22 00:04:58 +01:00
Max Kellermann
67b8124a1d
Mapper: _get_music_directory_utf8() may return nullptr
...
If no music_directory is configured, return nullptr instead of an
empty string. This fixes a crash when db_file is configured without
music_directory.
2013-11-22 00:02:17 +01:00
Florian Schlichting
51ec499c89
system/ByteOrder: testing for endianness in a more general way
...
Fixes build tests on ia64 and mipsel by testing for endianness in a
more general / portable way.
2013-11-21 23:04:49 +01:00
Max Kellermann
3a4df25db2
util/ByteOrder: add comments
2013-11-21 23:04:31 +01:00
Max Kellermann
37cf78ef45
util/ByteOrder: indent the preprocessor directives
...
Improve readability.
2013-11-21 23:03:28 +01:00
Denis Krjuchkov
740d8ec5ab
system/fd_util.h: avoid symbol conflict with statically linked libmpdclient
2013-11-18 16:35:22 +06:00
Denis Krjuchkov
0bcc477d46
decoder/OggFind.cxx: include stdio.h for SEEK_END definition
2013-11-18 16:28:39 +06:00
Max Kellermann
d2679f59c5
PcmConvert: add methods Open(), Close()
...
Replaces Reset() and eliminates the AudioFormat parameters from the
Convert() method.
2013-11-13 21:06:33 +01:00