Commit Graph

997 Commits

Author SHA1 Message Date
Max Kellermann 02a77f6797 test/test_util: add unit test for DivideString 2014-12-04 07:23:06 +01:00
Max Kellermann 2abfc7b87b test/test_util: move class UriUtilTest to UriUtilTest.hxx 2014-12-04 07:12:04 +01:00
Max Kellermann 050f0c3d8f util/SplitString: rename to DivideString 2014-12-03 21:38:06 +01:00
Max Kellermann 0debba0f6e mixer/null: new mixer plugin 2014-12-02 18:20:44 +01:00
Max Kellermann b227fddec7 fs/Path: add methods GetBase() and GetDirectoryName() 2014-12-02 06:45:57 +01:00
Max Kellermann bc00c38f9d lib/icu/Converter: add ICU-based backend 2014-12-01 21:56:48 +01:00
Max Kellermann 4658bd8208 test/TestIcu: new unit test for lib/icu/* 2014-12-01 20:55:05 +01:00
Max Kellermann c641ca90a9 lib/icu/Collate: move code to Util.cxx 2014-11-30 10:53:05 +01:00
Max Kellermann 87c88fcb27 fs/Charset: move code to wrapper class IcuConverter
Prepare for a ICU-based backend without GLib.
2014-11-30 00:31:13 +01:00
Max Kellermann 737a56a030 release v0.19.5
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQIcBAABAgAGBQJUdiYnAAoJECNuiljG20USDB4P/3RGHBV5XgdInmYKjGg89hex
 YRiy3BVvrBri53wkj+3YwOi05Cx0fp0pCuwQ9Nm7bmPCwfdC3ASF+UBlBBhnLdfc
 dlISXDHciuKDJwiTtTlBvaKCENoZhjAJQ1SOa5zceH7j/V/XbY0FauHCeE8Ek7ht
 KjimIt1ft0mdgsGNfyisdfbnh/3r4T9V9tBs/wnr7oDTYS/eUX8vCDr5qYIZipjx
 W6pug2m4nfDtHYtN5gv53WYCIm7MiXo9vh7hCjJHd3T3xqKwdWVuz5RRcZcgd9yT
 WWlzOKAI1cgmU7rZaV6Gu+tAq9g7MpNLOGoeN6mhH9E8V16rKqvCiLaXMK5wEGs9
 JWGsTBcbTnSCdG1iivJtP2kOGVHXvNthbSunzwmbowMATi6xIBm8AoqidSzCaW1F
 C7mss8VlhkHdCtHTvyK3XCE2wGEbx4OfsfsL3PWBonrs0DpNOR2AqWQYLsZUhbff
 RV7aeyphMVvgLP67cT9YnGswKGEPOqP2EO9Mh51AQ7wiUESZ+O5J9YHWCc0E3SML
 qs9A+lpA8fstj0QJewx/HNofiHXw5A2THjs/BVqs3vYkcHnTI94Nmdxps82r/rEA
 oy9d6nQqglkPJZF3JwHqJMj1VtBIhihaHBpnLeyegjtiajZV6mVNVg9ezt9EpEA6
 OjJFh2xzQJ7w5qL0gy2R
 =1kbY
 -----END PGP SIGNATURE-----

Merge tag 'v0.19.5'
2014-11-26 20:19:17 +01:00
Max Kellermann 0bc511715b Makefile.am: distribute Android sources 2014-11-26 20:11:42 +01:00
Max Kellermann fa4d202e71 decoder/mp4v2: remove because of incompatible license
libmp4v2 is licensed under MPL 1.1, which is incompatible with GPLv2.
Unfortunately, this means that we must remove the plugin.

More information can be found in the Debian bug report:

 http://bugs.debian.org/767504
2014-11-25 13:10:52 +01:00
Max Kellermann c643b6ff16 configure.ac: add macro MPD_ENABLE_AUTO_PKG_LIB 2014-11-22 23:50:21 +01:00
Max Kellermann b3f5b4932c configure.ac: add macro MPD_ENABLE_AUTO_PKG
Simplify the definition of many build options.
2014-11-21 22:19:57 +01:00
Max Kellermann b3f5f2f75f Makefile.am: link test/run_convert with ConfigError.cxx
Fixes linker error due to missing "config_domain" symbol.
2014-11-21 15:14:24 +01:00
Max Kellermann ed001e0cfb configure.ac: add option "--disable-daemon" 2014-11-20 20:38:37 +01:00
Max Kellermann 362e73bea8 input/Open: expose input_domain 2014-11-07 13:57:57 +01:00
NanoTech 6ad1e4d99a Revert "Main: run the OS X native event loop"
This reverts commit f0be48ff90
(except for the NEWS entry).

If libdispatch (GCD) is used before forking, it
can't safely be used again after forking.
2014-10-31 15:03:46 +01:00
Max Kellermann 2e24adae89 configure.ac: require xmlto for --enable-documentation 2014-10-25 00:14:25 +02:00
Max Kellermann bc840b69d5 Makefile.am: distribute systemd/mpd.socket
The file systemd/mpd.service.in is being distributed implicitly, but
systemd/mpd.socket is not and needs to be added to EXTRA_DIST.
2014-10-12 08:38:52 +02:00
Max Kellermann d5cf41e043 util/UTF8: new library 2014-10-10 22:11:38 +02:00
nanotech f0be48ff90 Main: run the OS X native event loop 2014-10-10 19:51:44 +02:00
Max Kellermann bb922d577d storage/nfs: use the libnfs async API
Share the NFS connection with the NFS input plugin.
2014-10-09 08:09:08 +02:00
Max Kellermann 3d2558bde6 StoragePlugin: pass EventLoop to constructor 2014-10-09 07:45:25 +02:00
Max Kellermann 1aac0b10c9 test/run_input, ...: add struct ScopeIOThread
Auto-stop the IO thread in all error handlers.
2014-10-07 20:02:13 +02:00
Max Kellermann e5ff85b63c storage/nfs: move code to class MemoryStorageDirectoryReader
Read all directory entries into memory and close the struct nfsdir
before returning the StorageDirectoryReader instance.  This is what
libnfs does, anyway.
2014-10-07 06:36:11 +02:00
Max Kellermann b5119d7958 test/run_storage: new debug program 2014-10-07 06:21:34 +02:00
Max Kellermann d3e72e4344 Makefile.am: add libnfs and libsmbclient to STORAGE_LIBS 2014-10-07 06:21:34 +02:00
Max Kellermann b1a252a64d lib/nfs/Base: kludge to reduce number of NFS mounts
Creating a NfsStorage sets its own export_name as the "base".  Now
NfsFileReader can use this information to derive the export_name to be
mounted, instead of guessing.  This solves the "too many connection"
problem on the NFS server while updating the database.
2014-10-05 07:41:50 +02:00
Max Kellermann fb90b64bac Makefile.am: compile libffmpeg.a with FFMPEG_CFLAGS 2014-10-04 14:23:11 +02:00
Max Kellermann 9d2d58c4b6 input/LocalOpen: new library for opening local files
Combines the "file" and the "archive" input plugins.
2014-10-02 21:06:01 +02:00
Max Kellermann 8af3f91e78 Makefile.am: fix header file names
Found by "make distcheck".
2014-10-01 23:28:18 +02:00
Max Kellermann 3120958a17 pcm: --disable-dsd also disables the dsd2pcm library 2014-09-26 12:17:47 +02:00
Max Kellermann 8547611479 release v0.18.16
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJUJSq1AAoJECNuiljG20US8CAQAJo/4jAPKsba6RVWf4oWo1Tl
 1KUVHaqPonboZ+ArexI+eLObRzmzawTdzc1iVAI8KhISaZkfBWvY3PGFbn6GW3xZ
 o1GMRkjhps/ZWIXao2qzelITMzEWzKuAPEGdQE2Z3qXDP/bva0QnAJwjm6zfMsrz
 qKYDjQlCGkt7s6jw8gbLGrcoPgP+q7s522qb/0gBc620OivufuEeAQquaahY3X+L
 PnXGqsNr34Xqw8EeHCahVGvvQeetY0dGTG/EUiLuxgACqRnjnxwgZ1Xem3YSlGgP
 KZVmEqepcvLgz7BlLkQrHse4eEcdxmojRP4towUPUOeRKb1LIlDr9AF6LoulGJr4
 jCTeOhzRpmh7wo/rh2klMJXSkqqQlu84+jG7d+PW38oweVCO9HekhyfIDWYDJq/+
 jndDRMK7pcPl4sBBXPrJNLdGAQZoJDxRD84syEwOmGOL1FgV2KZl1pJ81fOacR5x
 BHeRZrtd0iZ97/qZL+wtNskKU21lMjKqv48saF224FhKCtR1iXkVw4fH6U+H3Q1w
 8mrghkkMUom6yQ1mL7U2zA3P6yUcpOJIp0OwMLkJc4H7iOY3a21IAsH0KXmn/Z5O
 RE+0zSZm4krUg5uoxhhJWbJnORjoexMv1iaR8+uh71qvBI+RwQXjYA94VJ3Rf88/
 R4tE+xb0ZY8OvTXGswdF
 =y5Hv
 -----END PGP SIGNATURE-----

Merge tag 'v0.18.16'
2014-09-26 11:06:11 +02:00
Max Kellermann 8bf46a665e configure.ac: add option to disable the DSD decoders
Allow building a smaller MPD binary for people who don't need DSD.
2014-09-26 09:29:18 +02:00
Max Kellermann 6c48aa5fae decoder/mad: move code to tag/MixRamp.cxx 2014-09-24 22:40:34 +02:00
Max Kellermann d1e31261fe decoder/{vorbis,flac}: move duplicate code to tag/VorbisComment.cxx 2014-09-24 21:50:42 +02:00
Max Kellermann 05dd9acba8 tag/ApeReplayGain, decoder/mad: move duplicate code to tag/ReplayGain.cxx 2014-09-24 21:50:34 +02:00
Thomas Guillem 22eb831a71 Makefile.am: android AIDL need src/org/musicpd folder 2014-09-16 18:26:20 +02:00
Thomas Guillem 01ab9acd14 Makefile.am: fix android symlinks, use absolute paths 2014-09-16 18:26:07 +02:00
Max Kellermann a464dc681a release v0.18.14
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJUEdhhAAoJECNuiljG20USwKkP/1MIm6J2ydXEP81RD/3llz6h
 2t8EK94cEIdb6bA6goBI0Pipz7YAtmjgfnDRW90AvFcxNuVt87esxG82gVOiosvo
 7LByehQ2kq/w0evILWy8X1eAvqIk/PvG6T/pZcPrrj7kHrZaIOXh0SVTZ5NLq7HC
 drunwHQxgVntB/410h7BKEFbg1qWHPGxfTyf6qJsZPkHfr5QcgbHrYN7QCr1eUv9
 mARx4Nxo9MXuiqOJOS7ck80V68nbnFdxjNXSflUkl94O0MfiPc741Snbe7qnHI91
 I+BQYCBExKzoqFszuuRZQjxFpJalg4Y/9/stn6+dYemtC3WpreGHogweUBlPZ5if
 wJRL/A/zHAY0xE/hohiEqY6pHZWmVolbumtp7LfNR7dejOetn0IPW+KnFnjYec21
 qkJG/mq8fHStdQMTzp5NDoqh8VrPaBAAhjgP3suZY2wZ5xfbLXHk/HNKdQLvX8s3
 Vv4wcDNsfbOJ/1ZTBo/nqceTkOyHrov5cDSotYnO1hs963vyk3LFwY2IRCgPdOR0
 7o77JmKHZnzZSw60CIT6Mf1+rx38x++Rq3UGDYuH4B4L4VqXv2WrUp32w1VzHQVO
 Dcd/dxwW/sB1SwMdi5J4tIBJCSn5mF7yvBPR0PB5NiZiX1YB6hEqmaXYfwLCqujo
 xyWy8gPJbmYw6XJPmw6A
 =3azu
 -----END PGP SIGNATURE-----

Merge tag 'v0.18.14'
2014-09-11 19:26:58 +02:00
Max Kellermann 4907f610d6 test/test_protocol: unit test for protocol/ArgParser.cxx 2014-09-04 17:10:30 +02:00
Max Kellermann 059a643188 doc/user: enable docbook-xslt option "use.id.as.filename" 2014-09-02 13:44:38 +02:00
Max Kellermann e5a28bfd8d output/alsa, pcm: rename "DSD over USB" to "DoP"
The standard has been renamed since the early draft that was
implemented in MPD.
2014-08-31 16:12:26 +02:00
Max Kellermann 0c2d767f6f DecoderAPI: use std::chrono::duration for decoder_seek*()
For type safety and code readability.
2014-08-26 22:27:04 +02:00
Max Kellermann bb472206de InputStream: move typedef offset_type to Offset.hxx
Reduce header dependencies.
2014-08-19 22:29:52 +02:00
Max Kellermann e6e9c21275 input/ffmpeg: use av_strerror()
Generate more detailed error messages.
2014-08-18 20:35:34 +02:00
Max Kellermann 636f5d4a1d {input,decoder}/ffmpeg: move ffmpeg_domain to lib/ffmpeg/Domain.cxx
Eliminate duplicate definition (in input plugin and decoder plugin).
2014-08-18 10:12:37 +02:00
Max Kellermann ee7282ce0d test/test_pcm: add PcmExport unit test 2014-08-12 22:05:38 +02:00
Max Kellermann d026367334 Merge branch 'v0.18.x' 2014-08-12 16:54:32 +02:00
Max Kellermann 88a2f128ec fs/io/AutoGunzipReader: new class 2014-08-11 21:48:25 +02:00
Max Kellermann 45c139cfb3 fs/io/PeekReader: new utility class 2014-08-11 21:48:25 +02:00
Max Kellermann 3a111e5d74 fs/io/GzipOutputStream,GunzipReader: move zlib_domain to src/lib/zlib/Domain.cxx 2014-08-11 21:48:25 +02:00
Max Kellermann a67a881715 input/GunzipInputStream: new class 2014-08-08 20:11:29 +02:00
Max Kellermann 7a048f004d Merge branch 'id-3919' of git://github.com/ekroth/mpd 2014-08-07 22:52:46 +02:00
Andrée Ekroth 330b6a0482 decoder/Mp4v2: add MP4v2 decoder plugin
This plugin uses the MP4v2 library to play mp4/m4a files.
It is limited to file_decode.
2014-08-07 21:01:38 +02:00
Max Kellermann aa2e4d92e0 fs/io/BufferedReader: new class to replace class TextFile
The new class is pluggable, to prepare for gzipped database files.

For now, the TextFile class remains, and will be refactored away
later.
2014-08-07 19:38:25 +02:00
Max Kellermann 0ea66a1275 fs/io/Reader: new interface 2014-08-07 19:38:25 +02:00
Max Kellermann aafff8fd5c fs/output, fs/TextFile: move to fs/io/ 2014-08-07 19:38:25 +02:00
Max Kellermann 8278a12af9 Makefile.am: link libfs.a before libsystem.a
libfs.a depends on libsystem.a.
2014-08-07 19:38:25 +02:00
Max Kellermann 5c5c6a965c LogBackend: use StripRight()
Eliminate duplicate code.
2014-08-07 16:08:02 +02:00
Max Kellermann f89da17827 util/DynamicFifoBuffer: move code to new base class ForeignFifoBuffer 2014-08-06 17:39:07 +02:00
Max Kellermann c9a71a7176 fs/GzipOutputStream: new class wrapping zlib 2014-08-06 16:35:10 +02:00
Max Kellermann 7ed8833fd5 Makefile.am: add variable FS_LIBS 2014-08-06 16:35:10 +02:00
François Revol 250318329f Makefile.am: fix dependencies for win32
It happened to me when doing the Haiku port, src/mpd failed to
be relinked properly when editing source files, and likely also
happens on win32, although I didn't try this change.

When building for windows, src_mpd_DEPENDENCIES is overriden.

Automake then disables the default version which contains all
the static libraries. In Makefile.in:
@HAVE_WINDOWS_FALSE@src_mpd_DEPENDENCIES = libmpd.a \

Instead we use EXTRA_src_mpd_DEPENDENCIES which is meant for this.
2014-08-02 08:48:44 +02:00
Max Kellermann 14c538c9c7 Win32Main: move to win32/ 2014-08-02 08:48:30 +02:00
Max Kellermann 0d0ccacdf3 fs/OutputStream: new infrastructure for writing to files 2014-07-30 22:12:02 +02:00
Max Kellermann 59e8302c9d Makefile.am: add missing backslash
Fixes breakage by commit 1a619522
2014-07-30 11:18:33 +02:00
Max Kellermann 1a619522ee Makefile.am: *.apk depends on android/src/*.java
Invoke "ant" when a Java source is modified.
2014-07-30 10:17:31 +02:00
Max Kellermann 88615fbff1 Makefile.am: move duplicate specification to APK_DEPS 2014-07-30 10:15:37 +02:00
Max Kellermann d4f8f67173 Makefile.am: release .apk depends on icon
Missing piece from commit e0ca4347
2014-07-30 10:14:26 +02:00
Max Kellermann 174a0a2efc Makefile.am: new zipalign path 2014-07-30 09:45:03 +02:00
Max Kellermann e0ca4347be Android: generate icon from SVG 2014-07-14 19:05:01 +02:00
Max Kellermann 828cd6fd0b Merge branch 'v0.18.x' 2014-07-11 21:33:50 +02:00
Max Kellermann 11a5ee821b PlaylistEdit: postpone UpdateQueuedSong() when adding multiple songs
Implement a "bulk" edit mode that postpones both UpdateQueuedSong()
and OnModified().  This way, the playlist version gets incremented
only once.  More importantly: when adding multiple songs to a queue
that consists of only one song, the first song that got added will
always be played next.  By postponing this choice, all newly added
songs get a chance to become the next song.  Fixes the second (and
last) part of Mantis ticket 0004005.
2014-07-11 20:22:35 +02:00
Max Kellermann dba41e2e4a test: merge duplicate code to FakeDecoderAPI.cxx 2014-07-09 19:01:38 +02:00
Max Kellermann 80a45c91f9 thread/GLib{Mutex,Cond}: remove obsolete classes 2014-07-02 20:09:39 +02:00
nanotech 759616abd4 Makefile.am: use ICU_CFLAGS 2014-06-17 10:38:50 +02:00
Max Kellermann c99559dbe9 input/nfs: use the asynchronous libnfs API
More robust and cancellable.
2014-06-17 03:21:25 +02:00
Max Kellermann 3ca0a39a35 db/simple: use class boost::intrusive::list
Remove the C list_head library and use type-safe C++ instead.
2014-06-16 18:39:16 +02:00
Max Kellermann 0801b3f495 configure.ac: check for Boost 2014-06-11 09:27:17 +02:00
Max Kellermann 37b3190752 lib/icu: add IcuInit(), IcuFinish() 2014-06-10 23:21:09 +02:00
Max Kellermann fbafb19657 input/curl: move code to AsyncInputStream
New base class for other InputStream implementations that run in the
I/O thread.
2014-05-24 14:36:28 +02:00
Max Kellermann cc6f1020d0 test/run_decoder: merge code into FakeDecoderAPI.cxx
Eliminate duplicate code.
2014-05-22 12:35:20 +02:00
Max Kellermann 3452625fac Makefile.am: link test_rewind with GLib 2014-05-22 12:35:20 +02:00
Max Kellermann a5d0300787 input/curl: move code to IcyInputStream 2014-05-21 18:47:49 +02:00
Max Kellermann 09b84c51ee input/rewind: move code to class ProxyInputStream 2014-05-21 18:47:49 +02:00
Max Kellermann afe53997bf test/test_rewind: unit test for class RewindInputStream 2014-05-21 18:47:40 +02:00
Max Kellermann c42e412c0a input/InputStream: move Open() to Open.cxx
Allow compiling test programs with only selected plugins.
2014-05-21 18:47:32 +02:00
Max Kellermann ee2afb35dd Makefile.am: add variable NFS_SOURCES 2014-05-11 14:49:36 +02:00
Max Kellermann fcb55f841a DatabasePrint: move PrintSongCount() to Count.cxx 2014-04-26 22:59:21 +02:00
Max Kellermann 154e601f4e db/Helpers: split library 2014-04-25 18:39:21 +02:00
Max Kellermann ecc12c9ba1 db/Helpers: move code to tag/Set.cxx 2014-04-24 18:32:23 +02:00
Max Kellermann 9e50993c13 db/Helpers: move TagSet to dedicated header 2014-04-24 18:18:26 +02:00
Max Kellermann 88a0a48b03 input/BufferedInputStream: new wrapper for moving plugin to thread 2014-03-16 10:26:40 +01:00
Max Kellermann f660d30138 util/CircularBuffer: new buffer class 2014-03-15 18:35:52 +01:00
Max Kellermann 5696f91a1e pcm/PcmFormat: ARM NEON optimizations for float->s16
This is nearly 4 times faster than the "portable" algorithm.
2014-03-15 11:41:01 +01:00
Max Kellermann 08e6cf3dd2 pcm/PcmFormat: eliminate more duplicate code with templates
Refactor the conversion functions to classes and pass an instance to
the new function AllocateConvert().
2014-03-14 20:54:09 +01:00
Max Kellermann b8f1850bba db/Configured: store database file in cache directory
Add class Context which wraps the Android/Java Context class and add a
JNI wrapper for method Context.getCacheDir().
2014-03-01 22:20:28 +01:00
Max Kellermann 58771fc41c Android: obtain music directory from Environment.getExternalStoragePublicDirectory() 2014-03-01 18:48:20 +01:00