Max Kellermann
680d03e4d6
test/test_pcm_util: call the C++11 random engine instead of random()
...
Stupid mistake from commit 7cb803ad
2015-06-22 22:02:39 +02:00
Max Kellermann
5e22c83baa
test/test_pcm: add PcmInterleave() unit test
2015-06-22 16:32:06 +02:00
Max Kellermann
2d06a8e880
storage/FileInfo: rename to StorageFileInfo
2015-02-28 23:00:26 +01:00
Max Kellermann
4e30e74739
net/SocketAddress: light wrapper for struct sockaddr
2015-02-10 22:06:06 +01:00
Max Kellermann
42890b9acf
system/{Resolver,Socket{Error,Util}}: move to new library libnet.a
2015-02-10 22:06:06 +01:00
Max Kellermann
ae7e1a22cb
Merge branch 'v0.19.x'
2015-01-26 20:57:29 +01:00
Max Kellermann
4c61662644
test/read_mixer: add missing stdlib.h include
2015-01-26 20:39:49 +01:00
Max Kellermann
0d3b26b3aa
Config: add section "resampler"
2015-01-22 11:04:28 +01:00
Max Kellermann
4fa5538e2b
config/Param: split block-specific attributes to new struct ConfigBlock
...
The old struct config_param remains only for top-level string options.
2015-01-21 23:56:33 +01:00
Max Kellermann
1c3f5517fa
config/Option: convert to strictly-typed enum
2015-01-21 23:30:00 +01:00
Max Kellermann
fe85fa3bea
ConfigData: move struct config_param to Param.hxx
2015-01-21 21:23:02 +01:00
Max Kellermann
1caa41a623
test/run_encoder: use EncoderToOutputStream()
2015-01-14 21:56:28 +01:00
Max Kellermann
ae4c189e19
encoder/Interface: move functions into the struct
2015-01-08 19:36:19 +01:00
Max Kellermann
362a6e6d46
encoder/Plugin: move struct Encoder to EncoderInterface.hxx
2015-01-08 19:31:57 +01:00
Max Kellermann
ac62586bad
test/WriteFile: new debug program
2015-01-06 19:38:55 +01:00
Max Kellermann
712ed555e6
Copyright year 2015
2015-01-01 19:48:13 +01:00
Max Kellermann
af9092df39
EncoderPlugin: pass Tag reference to method tag()
2014-12-26 22:30:54 +01:00
Max Kellermann
7077eac589
test/FakeDecoderAPI: dump tags
2014-12-26 22:23:55 +01:00
Max Kellermann
5cbc319e96
configure.ac: require GLib 2.32 (if enabled)
...
Since version 2.32, g_thread_init() is deprecated and a no-op. Let's
upgrade that (optional) dependency so we can remove all those
g_thread_init() calls.
2014-12-05 00:21:48 +01:00
Max Kellermann
4b70f9d213
util/DivideString: add option "strip"
2014-12-04 23:05:44 +01:00
Max Kellermann
e69bef3ce3
util/SplitString: new utility class
...
Replaces GLib's g_strsplit().
2014-12-04 09:14:28 +01:00
Max Kellermann
02a77f6797
test/test_util: add unit test for DivideString
2014-12-04 07:23:06 +01:00
Max Kellermann
77b316cdfb
test/TestCircularBuffer: include cleanup
2014-12-04 07:14:43 +01:00
Max Kellermann
2abfc7b87b
test/test_util: move class UriUtilTest to UriUtilTest.hxx
2014-12-04 07:12:04 +01:00
Max Kellermann
4658bd8208
test/TestIcu: new unit test for lib/icu/*
2014-12-01 20:55:05 +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
b19e5720cc
test/run_input: make variables more local
2014-11-25 07:51:33 +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
2e47cb12c4
test/FakeDecoderAPI: dump bit rate
2014-11-10 09:00:38 +01:00
Max Kellermann
eab32f2e5d
util/UriUtil: add uri_get_suffix() overload that ignores query string
2014-11-01 12:45:47 +01:00
Max Kellermann
188b94cb3e
test/test_archive: don't use GLib
2014-10-25 00:08:04 +02:00
Max Kellermann
6cf1acfb48
test/DumpDatabase, ...: no g_thread_init() calls when GLib is disabled
2014-10-24 18:30:30 +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
b5119d7958
test/run_storage: new debug program
2014-10-07 06:21:34 +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
87268c2297
test/test_protocol: add missing stdlib.h include
...
EXIT_SUCCESS and EXIT_FAILURE are defined in stdlib.h, not unistd.h.
D'oh!
2014-09-24 23:03:28 +02:00
Max Kellermann
9270485723
Merge branch 'v0.18.x'
2014-09-24 21:49:20 +02:00
Max Kellermann
e93975cb46
test/test_protocol: add missing unistd.h include
2014-09-24 21:43:11 +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
57068e526c
test/run_decoder: dump MixRamp data
2014-09-09 19:17:22 +02:00
Max Kellermann
4907f610d6
test/test_protocol: unit test for protocol/ArgParser.cxx
2014-09-04 17:10:30 +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
e10c287c93
PlayerControl: make settings "const"
2014-08-30 00:28:02 +02:00
Max Kellermann
3158955198
TagHandler: pass SongTime to duration()
2014-08-29 22:52:04 +02:00
Max Kellermann
d9d97bd17b
DecoderAPI: pass SignedSongTime to decoder_initialized()
2014-08-29 21:40:15 +02:00
Max Kellermann
7c25d83f1c
Tag: use SignedSongTime for the song duration
2014-08-29 13:20:58 +02:00
Max Kellermann
6ad933982f
DetachedSong: use std::chrono::duration for start_ms and end_ms
2014-08-28 13:03:18 +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
8561c9c5a6
DecoderAPI: add decoder_seek_where_frame()
2014-08-26 11:27:41 +02:00
Max Kellermann
316c72a4ae
DecoderAPI: add decoder_seek_where_ms()
...
Move to fixed-point integers instead of floating point.
2014-08-26 11:02:02 +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
a049f972ec
test/test_rewind: add missing stdlib.h include
...
For EXIT_SUCCESS.
2014-08-13 12:55:29 +02:00
Max Kellermann
0e756e4377
PcmExport: use class ConstBuffer
2014-08-12 22:19:53 +02:00
Max Kellermann
ee7282ce0d
test/test_pcm: add PcmExport unit test
2014-08-12 22:05:38 +02:00
Max Kellermann
7244dc4511
Filter: FilterPCM() returns ConstBuffer
...
API simplification. We can now avoid abusing a "size_t*" as
additional return value.
2014-08-12 16:40:51 +02:00
Max Kellermann
56f61a6d59
PcmConvert: Convert() returns ConstBuffer
2014-08-12 16:36:07 +02:00
Max Kellermann
a67a881715
input/GunzipInputStream: new class
2014-08-08 20:11:29 +02:00
Max Kellermann
aafff8fd5c
fs/output, fs/TextFile: move to fs/io/
2014-08-07 19:38:25 +02:00
Max Kellermann
69ae879c58
input/TextInputStream: return char*
...
Revert to the old API before commit e9e55b08
, removing unnecessary
bloat.
2014-08-07 00:06:02 +02:00
Max Kellermann
ea26da0be7
util/FifoBuffer: rename to StaticFifoBuffer
2014-08-06 17:29:05 +02:00
Max Kellermann
c9a71a7176
fs/GzipOutputStream: new class wrapping zlib
2014-08-06 16:35:10 +02:00
Max Kellermann
9fb351a139
*Save, *State: use the OutputStream API instead of FILE*
2014-07-30 22:17:01 +02:00
Max Kellermann
41a7203c28
Tag: add class const_iterator and methods begin(), end()
...
Enables using range-based "for".
2014-07-12 17:22:39 +02:00
Max Kellermann
fa947e02ca
test/FakeDecoderAPI: dump MixRamp data
2014-07-11 08:54:29 +02:00
Max Kellermann
0759421d11
DecoderAPI: add function decoder_read_full()
...
Move code from the "mad" plugin.
2014-07-09 19:03:58 +02:00
Max Kellermann
bf7417981f
DecoderAPI: add function decoder_skip()
...
Move code from the "mad" plugin.
2014-07-09 19:03:31 +02:00
Max Kellermann
dba41e2e4a
test: merge duplicate code to FakeDecoderAPI.cxx
2014-07-09 19:01:38 +02:00
Max Kellermann
07b93dcf80
InputStream: make Seek() always absolute
...
Remove the "whence" parameter that is not actually necessary, and only
complicates the InputStream implementations.
2014-05-22 13:52:00 +02:00
Max Kellermann
4eeea640f4
DecoderAPI: add function decoder_open_uri()
...
Move and refactor code from the Wavpack decoder plugin.
2014-05-22 12:35:20 +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
316ddc2382
test/run_decoder: auto-initialize struct Decoder
2014-05-22 12:35:20 +02:00
Max Kellermann
426e0105a6
test/run_decoder: move the "uri" attribute out of struct Decoder
2014-05-22 11:17:11 +02:00
Max Kellermann
18f39aa012
test/run_decoder: move the DecoderPlugin pointer out of struct Decoder
2014-05-22 11:14:01 +02:00
Max Kellermann
afe53997bf
test/test_rewind: unit test for class RewindInputStream
2014-05-21 18:47:40 +02:00
Max Kellermann
82337dec44
InputStream: add virtual destructor
...
Replaces the method Close().
2014-05-11 17:12:50 +02:00
Max Kellermann
6773adc771
InputStream: convert to class
2014-05-11 15:34:48 +02:00
Max Kellermann
4a5cc9f610
test/run_decoder: use InputStream::OpenReady() instead of InputStream::Open()
2014-03-16 09:41:03 +01:00
Max Kellermann
e29fc62b68
test/{run_decoder,dump_playlist}: fix accidental search/replace hiccups
2014-03-16 09:41:03 +01:00
Max Kellermann
328860c8ba
util/CircularBuffer: add method GetSpace()
2014-03-16 00:28:42 +01:00
Max Kellermann
89ac111853
util/CircularBuffer: add method GetSize()
2014-03-16 00:27:18 +01:00
Max Kellermann
3d4f588a7f
util/CircularBuffer: rename GetSize() to GetCapacity()
2014-03-15 23:12:20 +01:00
Max Kellermann
f660d30138
util/CircularBuffer: new buffer class
2014-03-15 18:35:52 +01:00
Max Kellermann
3932e62fc7
test/test_pcm: replace 256 with prime number
...
Use some odd number that will expose problems with remaining samples
after optimized vector operations.
2014-03-15 10:53:13 +01:00
Max Kellermann
729304aef5
test/test_pcm_format: add unit test for float clamping
2014-03-15 10:00:47 +01:00
Max Kellermann
40cce050e7
test/test_pcm_all: move CPPUNIT_TEST_SUITE_REGISTRATION() to test_pcm_main.cxx
...
Run each unit test only once. Using CPPUNIT_TEST_SUITE_REGISTRATION
from within the header meant that each unit class was registered again
for each source file that includes the header.
2014-03-15 10:00:47 +01:00
Max Kellermann
4ba7427fa0
util/{Const,Writable}Buffer: add operator[]
2014-03-01 07:49:13 +01:00
Max Kellermann
6ba1fe7568
UriUtil: support ftp:// URLs in uri_remove_auth()
2014-02-24 19:59:53 +01:00
Max Kellermann
30a82076ba
PlayerListener: new interface to replace GlobalEvents access
2014-02-21 10:22:35 +01:00
Max Kellermann
9e0ce23a03
test/run_{filter,output}: use config_find_block()
2014-02-20 00:04:23 +01:00
Max Kellermann
ae594ad92c
DatabasePlugin: split header
2014-02-19 22:54:52 +01:00
Max Kellermann
8d6fedf817
Mixer: add class MixerListener
...
Use a listener interface instead of GlobalEvents.
2014-02-19 21:40:14 +01:00
Max Kellermann
55e128cced
test: various fixups for building without GLib
2014-02-18 09:18:42 +01:00
Max Kellermann
fe7c6fee34
ArchivePlugin: pass Path to open()
2014-02-08 13:25:44 +01:00
Max Kellermann
9906daeca7
ArchivePlugin: rename struct archive_plugin to ArchivePlugin
2014-02-08 13:22:13 +01:00
Max Kellermann
be081929f4
storage/local: remove utf8 path from constructor
...
Build the UTF-8 version of the path automatically in the constructor.
2014-02-07 23:41:06 +01:00
Max Kellermann
ffd16b55a6
StoragePlugin: add method MapToRelativeUTF8()
...
Replaces map_to_relative_path() from Mapper.cxx.
2014-02-07 19:09:28 +01:00
Max Kellermann
6b421cc354
DecoderPlugin: pass Path instance to file_decode() and scan_file()
2014-02-07 18:52:19 +01:00
Max Kellermann
c13810ebaa
Mapper: move map_song_detach() to db/DatabaseSong.cxx
...
Use Storage::MapUTF8() internally, don't use global variables.
2014-02-07 00:42:14 +01:00
Max Kellermann
0a0659d737
mixer/Plugin: pass AudioOutput reference to init()
...
Passing a void pointer is unsafe.
2014-02-06 21:10:12 +01:00
Max Kellermann
855f26c43d
Mixer: use reference instead of pointer for MixerPlugin
2014-02-05 17:25:47 +01:00
Max Kellermann
e8938b1069
MixerPlugin: add EventLoop& init() parameter
2014-02-05 00:02:02 +01:00
Max Kellermann
4a28333039
event/Loop: remove the dummy constructor argument
2014-02-05 00:00:03 +01:00
Max Kellermann
ad7f2b2aec
test/ShutdownHandler: make the constructor "explicit"
2014-02-05 00:00:00 +01:00
Max Kellermann
ff665b37cb
db/DatabaseListener: add method OnDatabaseSongRemoved()
...
Decouples db/update/Remove.cpp from global variables.
2014-02-04 19:53:37 +01:00
Max Kellermann
cf6281a5a7
Instance: add Database attribute
...
Move from db/DatabaseGlue.cxx, eliminating global variable.
2014-02-04 11:22:33 +01:00
Max Kellermann
29072797ca
db/DatabasePlaylist: pass Database reference around
...
Reduce global variable usage, move to frontend code.
2014-02-04 00:57:43 +01:00
Max Kellermann
ca36ac2ba1
SongLoader: new class that merges duplicate code
...
There was quite a lot of duplicate code for loading DetachedSong
objects, with different semantics for "securely" loading local files.
2014-02-03 23:32:10 +01:00
Max Kellermann
4657a3bd0f
output: move functions into the AudioOutput struct
2014-01-29 08:10:46 +01:00
Max Kellermann
68b79f97f3
output: rename source files
2014-01-28 11:42:54 +01:00
Max Kellermann
815d72065c
output: rename struct audio_output to AudioOutput
2014-01-28 11:34:09 +01:00
Max Kellermann
f5a923b9d1
OutputAll: convert to class, move instance to class Partition
...
Another big chunk of code for multi-player support.
2014-01-28 09:20:53 +01:00
Max Kellermann
f548a966f5
Playlist{Info,Vector}: move to db/
2014-01-27 11:05:21 +01:00
Max Kellermann
30fadaed7f
Merge branch 'v0.18.x'
2014-01-27 10:33:42 +01:00
Max Kellermann
2b10ecfa37
IcyMetadataParser: more robust tag parser
...
Allow semicolons and single quotes in the stream title. This is not
part of any specification, but found in real life.
2014-01-27 10:08:21 +01:00
Max Kellermann
f7eb2b697e
test/test_icy_parser: unit test for IcyMetaDataParser.cxx
2014-01-27 09:51:31 +01:00
Max Kellermann
5c4a42caa0
neighbor: new subsystem to detect file servers on the local network
...
This commit adds the NeighborPlugin API which can be used to detect
nearby file servers that can be used by input plugins. This list of
servers is exported using the new "listneighbors" command. The idle
even "neighbor" notifies interested clients when a new neighbor is
found or an existing one is lost.
There's a lot missing currently: protocol&user documentation, and a
way to "mount" remote servers into the music database. Obviously,
some code from the UPnP database plugin can be moved to a neighbor
plugin.
2014-01-26 00:10:05 +01:00
Max Kellermann
68eda78704
Mixer*: move to mixer/
2014-01-24 16:44:32 +01:00
Max Kellermann
7c52a1c04b
Filter*: move to filter/
2014-01-24 16:43:57 +01:00
Max Kellermann
9d34fc394c
Database*: move to db/
2014-01-24 16:38:44 +01:00
Max Kellermann
f8bfea8bae
Input*: move to input/
2014-01-24 16:33:33 +01:00
Max Kellermann
08296cd66d
Update*: move to update/
2014-01-24 00:24:43 +01:00
Max Kellermann
197b503f3e
Config*: move to config/
2014-01-24 00:20:01 +01:00
Max Kellermann
129eb178eb
Queue*: move to queue/
2014-01-24 00:17:50 +01:00
Max Kellermann
6b70f5e490
Zeroconf*: move to zeroconf/
2014-01-24 00:14:54 +01:00
Max Kellermann
4aa6d39fd8
archive/*: move to archive/plugins/
2014-01-24 00:09:37 +01:00
Max Kellermann
51adaf2c47
decoder/*: move to decoder/plugins/
2014-01-24 00:02:24 +01:00
Max Kellermann
ea5b901bcc
output/*: move to output/plugins/
2014-01-23 23:49:50 +01:00
Max Kellermann
f1f19841bd
playlist/*: move to playlist/plugins/
2014-01-23 23:30:12 +01:00
Max Kellermann
655ad34414
Encoder*: move to src/encoder
...
.. and move the plugins to src/encoder/plugins/.
2014-01-23 23:09:14 +01:00
Max Kellermann
a42f9e4ee3
LightDirectory: new struct replacing Directory in the DB API
2014-01-22 23:01:32 +01:00
Max Kellermann
4f120f3714
PlaylistSong: modify the given song object in-place
...
Reduce bloat.
2014-01-21 00:28:37 +01:00
Max Kellermann
dd20a3ce7e
test: add unit test for playlist_check_translate_song()
2014-01-21 00:28:34 +01:00
Max Kellermann
2f51285349
Merge branch 'v0.18.x'
2014-01-20 09:05:36 +01:00
Max Kellermann
ab9c9068d4
Queue: rename struct queue to Queue
...
Works around a build failure on Solaris because annoyingly, Solaris
reserves the name "queue". This rename was pending anyway.
2014-01-20 08:57:46 +01:00
Max Kellermann
f5ae1ce00b
LightSong: new class to be used by DatabasePlugin callbacks
...
Detach the Song class completely from the public API, only to be used
by SimpleDatabase and the update thread.
2014-01-19 17:04:51 +01:00
Max Kellermann
4f83c60296
copyright year 2014
2014-01-13 22:31:55 +01:00
Max Kellermann
114df1f137
DatabasePlugin: add interface DatabaseListener
...
Allow database plugins to announce that they have been modified.
2014-01-11 01:01:54 +01:00
Jean-Francois Dockes
406452f019
UPnP database plugin
...
[mk: renamed source files, applied coding style, reduced bloat, using
MPD's threading library, using MPD's error reporting and logging
library and refactoring, fixed lots of bugs]
2014-01-09 20:56:00 +01:00
Max Kellermann
322b061632
DetachedSong: fork of struct Song
...
From now on, struct Song will be used by the database only, and
DetachedSong will be used by everybody else. DetachedSong is easier
to use, but Song has lower overhead.
2014-01-09 09:05:58 +01:00
Max Kellermann
43847f2244
test/DumpDatabase: fix nullptr dereference
2014-01-09 09:05:58 +01:00
Max Kellermann
139122c57f
Merge branch 'v0.18.x'
2014-01-08 22:14:12 +01:00
Max Kellermann
3f3ae48ff4
test: add missing includes
2014-01-07 23:57:39 +01:00
Max Kellermann
c75339edcc
pcm/Format: change parameters/return values to ConstBuffer
2014-01-06 23:08:49 +01:00
Max Kellermann
aeb2baa495
InputStream: add static method OpenReady()
...
Merge some duplicate code.
2013-12-29 18:08:49 +01:00
Max Kellermann
afc70c120e
util/UriUtil: uri_get_suffix() fails if name begins with dot
...
A file called ".jpg" is not a JPEG file with an empty name; it is
merely a hidden file.
2013-12-29 17:40:51 +01:00
Max Kellermann
da29298d4d
pcm/PcmMix: improved dithering
...
Use the existing PcmDither library.
2013-12-28 18:30:27 +01:00
Max Kellermann
afcf0795c4
pcm/Volume: improved dithering
...
Instead of just adding a rectangular random value before shifting back
to the normal scale, use the existing PcmDither library.
2013-12-28 18:30:24 +01:00
Max Kellermann
394e2815db
pcm/PcmDither: inline Dither24To16() and Dither32To16()
2013-12-28 18:30:13 +01:00
Max Kellermann
1ad52f131c
test/*: use fprintf(stderr,...) and Log() instead of g_printerr()
...
Avoid GLib.
2013-12-24 14:44:08 +01:00
Max Kellermann
8064bbbc3f
test/*: remove GLib logging setup
...
Obsolete, our logging library doesn't ues GLib anymore.
2013-12-24 14:13:03 +01:00
Max Kellermann
8edde7a4b3
pcm/Volume: convert to class
...
Prepare for adding state.
2013-12-23 10:58:37 +01:00
Max Kellermann
6d21b9448a
pcm/PcmVolume: rename to Volume.cxx
2013-12-23 10:35:21 +01:00
Max Kellermann
66d90dd412
test/*: use fprintf(stderr,...) and Log() instead of g_printerr()
...
Avoid GLib.
2013-12-15 18:52:13 +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
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
e2e5433beb
test: merge duplicate code to FakeDecoderAPI.cxx
2013-12-14 12:40:24 +01:00
Max Kellermann
9f3bead99f
test/run_encoder: destruct the Encoder before exiting
2013-12-05 11:49:21 +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
8a5209ad93
Tag: remove method AddItem()
...
Use class TagBuilder instead.
2013-12-03 13:15:42 +01:00
Max Kellermann
2b44a2c9bd
pcm/PcmChannels: use struct ConstBuffer
2013-12-02 11:21:32 +01: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
Max Kellermann
287c70e361
filter/route, ...: add missing stdlib.h includes
2013-11-11 08:20:09 +01:00
Max Kellermann
b631b552bb
test/*: add more missing stdlib.h includes
2013-11-05 17:28:23 +01:00
Max Kellermann
39257717d8
test/test_mixramp: add threshold to floating point comparisons
...
Fixes bogus test failures on Debian build machines due to rounding
errors (hopefully).
2013-11-04 22:08:59 +01:00
Max Kellermann
c6f101884b
CrossFade: use negative value for invalid MixRamp overlap
...
Avoid NaN to allow -ffast-math.
2013-10-30 17:20:12 +01:00
Max Kellermann
c0c0526fc8
test/test_mixramp: improved test for mixramp_interpolate(0)
2013-10-30 17:18:54 +01:00
Max Kellermann
375c88b110
test/test_mixramp: add test with "invalid" return value
2013-10-30 17:14:40 +01:00
Max Kellermann
5b5675cc12
player_control: rename to PlayerControl
2013-10-28 10:12:33 +01:00
Max Kellermann
a40246d312
TagFile: use Path instead of const char *
2013-10-26 15:38:29 +02:00
Max Kellermann
85ae7e9c9a
DecoderControl: move code/attributes to new class MixRampInfo
2013-10-26 14:19:34 +02:00
Max Kellermann
de862f9f1b
test/test_mixramp: unit test for mixramp_interpolate()
2013-10-26 13:49:15 +02:00
Max Kellermann
d6e28c42e5
ReplayGainInfo: refactor to a class
2013-10-25 19:12:46 +02:00
Max Kellermann
6d475c40de
ReplayGainInfo: use CamelCase for struct name
2013-10-25 19:12:38 +02:00
Max Kellermann
645cb5833d
test/run_decoder: print the song duration
2013-10-24 21:35:05 +02:00
Max Kellermann
93deb84499
input_stream: rename struct to InputStream
2013-10-23 23:12:02 +02:00
Max Kellermann
3d12f8d246
UriUtil: uri_remove_auth() returns std::string
2013-10-23 21:58:44 +02:00
Max Kellermann
c3e720279c
test/test_util: unit test for libutil.a
2013-10-23 21:58:44 +02:00
Max Kellermann
82059645f1
decoder: rename the struct to "Decoder"
2013-10-21 21:12:37 +02:00
Max Kellermann
13e9f18403
DecoderPlugin: move functions into the struct
2013-10-21 21:08:12 +02:00
Max Kellermann
72af3c0489
decoder_plugin: rename struct to DecoderPlugin
2013-10-21 20:31:34 +02:00
Max Kellermann
3315c67f0f
Inotify: convert anonymous enum to constexpr
2013-10-20 13:51:55 +02:00
Max Kellermann
a78b2d84ed
TagType: rename enum tag_type to TagType
2013-10-20 13:32:59 +02:00
Max Kellermann
ff626ac763
*: use references instead of pointers
2013-10-19 18:48:38 +02:00
Max Kellermann
7cb803ad5c
test/test_pcm: use C++11 random instead of GLib
2013-10-19 15:05:48 +02:00
Max Kellermann
964aa42b04
test/run_avahi: new debug program
2013-10-18 09:01:34 +02:00
Max Kellermann
bf8660b21c
test/run_inotify: use SignalMonitor
2013-10-18 08:56:25 +02:00
Max Kellermann
7c1cf61728
thread/{Cond,Mutex}: use "class" instead of "typedef"
...
Allows forward-declaration.
2013-10-17 10:06:31 +02:00
Max Kellermann
1b8a1d4140
ArchiveLookup: return const strings
2013-10-17 00:36:52 +02:00
Max Kellermann
3dbda2dda2
test/test_archive: unit test for archive_lookup()
2013-10-17 00:19:22 +02:00
Max Kellermann
401a799a1b
test: use the CPPUNIT framework for unit tests
2013-10-16 23:36:36 +02:00
Max Kellermann
5e26e2ab1d
system/ByteOrder: new library for byte ordering / endianess
...
Replacing GLib macros.
2013-10-16 22:09:44 +02:00
Max Kellermann
6b2b5af344
util/byte_reverse: convert to C++
2013-10-16 22:07:52 +02:00
Max Kellermann
f32fbd9ed1
pcm_pack: convert to C++
2013-10-16 22:07:43 +02:00
Max Kellermann
7de96275dd
ConfigData: use std::string for config_param::value
2013-10-15 22:49:01 +02:00
Max Kellermann
509f8dab89
Util/Macros: replacement for GLib's G_N_ELEMENTS()
2013-10-15 22:47:39 +02:00
Max Kellermann
84d20d9e43
util/FifoBuffer: C++ version of the fifo_buffer library
2013-10-15 10:28:52 +02:00
Max Kellermann
be2951b45f
gcc.h: rename to Compiler.h
2013-10-15 09:21:59 +02:00
Max Kellermann
17c6db6c33
replay_gain_*.h: rename to *.hxx
2013-10-02 12:22:12 +02:00
Max Kellermann
060814daa8
Log: new logging library API
...
Prepare to migrate away from GLib. Currently, we're still using GLib
as a backend.
2013-10-02 08:57:55 +02:00
Max Kellermann
c2d3ed2acc
Listen, ...: add missing includes
2013-10-02 08:56:27 +02:00
Max Kellermann
c5d05ac0cf
DecoderCommand: convert to strictly-typed enum
2013-09-27 12:11:37 +02:00
Max Kellermann
cf98b0e261
test/dump_rva2: remove fake Tag symbols
2013-09-05 19:25:50 +02:00
Max Kellermann
5d5f21bfc5
Tag: compile-time initialisation of ignore_tag_items
...
Move to TagSettings.c and use C99 initializers.
2013-09-05 18:34:12 +02:00
Max Kellermann
2b676dc5fc
Tag: move configuration code to TagConfig.cxx
...
Allow using the Tag.cxx library without the Config library.
2013-09-05 18:27:08 +02:00
Max Kellermann
3f267b1795
Tag, ...: move to libtag.a
2013-09-05 18:26:56 +02:00
Max Kellermann
8929f88e6d
PlaylistPlugin: add interface SongEnumerator
...
Replaces struct playlist_provider.
2013-09-05 09:40:55 +02:00
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
7d0269d2ce
InputLegacy: move functions to the input_stream class
2013-09-05 00:23:14 +02:00
Max Kellermann
52ffdb0a55
test/read_tags: use input_stream_wait_ready()
2013-09-05 00:22:43 +02:00
Max Kellermann
5101ef4b02
Tag*: move libtag.a sources to src/tag/
2013-09-04 23:46:20 +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
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
8d36367fe2
input_stream.h: rename to InputLegacy.hxx
2013-09-03 09:18:30 +02:00
Max Kellermann
b70d38dc10
Makefile.am: move sources to libsystem.a
2013-08-07 10:31:31 +02:00
Max Kellermann
bf840700e4
test/signals: remove obsolete library
2013-08-07 09:51:43 +02:00
Max Kellermann
85b77b81ca
*: use gcc.h macros instead of GLib
2013-08-04 23:48:01 +02:00
Max Kellermann
65842cd99e
DatabasePlugin: 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
d1e7b4e381
audio_format: convert to C++
2013-08-03 21:37:56 +02:00
Max Kellermann
cbd38327e7
DecoderAPI: pass rvalue reference to decoder_tag()
...
Avoid duplicating the tag.
2013-07-31 00:34:22 +02:00
Max Kellermann
06f898cc12
tag: convert to C++
2013-07-30 20:19:53 +02:00
Max Kellermann
9a0061c511
encoder_api: convert to C++
2013-07-30 09:04:05 +02:00
Max Kellermann
c75cb67c44
pcm_buffer: convert to C++
2013-07-30 08:31:02 +02:00
Max Kellermann
cde6a3a00c
tag_handler: convert to C++
2013-07-29 07:39:58 +02:00
Max Kellermann
96b763067e
ape: convert to C++
2013-07-29 07:39:36 +02:00
Max Kellermann
dd5ba062cc
tag_id3: convert to C++
2013-07-28 20:25:45 +02:00
Max Kellermann
ba161ec572
song: convert header to C++
2013-07-28 13:25:12 +02:00
Max Kellermann
43f613d9be
decoder_api: convert to C++
2013-07-28 13:18:48 +02:00
Max Kellermann
1fcf35ad3b
tag_rva2: convert to C++
2013-07-26 12:52:51 +02:00
Denis Krjuchkov
e9e55b0812
text_input_stream: convert to class
2013-05-12 20:02:27 +06:00
Max Kellermann
9e5d2c5bb7
encoder_list: convert to C++
2013-04-17 22:22:37 +02:00
Max Kellermann
4a800b311f
don't use g_thread_init() with GLib 2.32
...
Deprecated.
2013-04-17 01:54:14 +02:00
Max Kellermann
3a2254c91f
output: convert to C++
2013-04-17 01:12:05 +02:00
Max Kellermann
cb8449a66d
MixerInternal: convert to class
2013-04-16 21:33:25 +02:00
Max Kellermann
9f625b0a0d
mixer/Pulse: convert to a class
2013-04-16 21:18:54 +02:00
Max Kellermann
e63420a8c2
output/Pulse: convert to C++
2013-04-16 20:51:21 +02:00
Max Kellermann
c654c7630a
pcm_*: move to src/pcm/
2013-04-09 01:24:52 +02:00
Max Kellermann
496f70fc0d
mixer_plugin: convert to C++
2013-02-22 20:51:23 +01:00
Max Kellermann
a9ce0218c1
FilterInternal: convert struct filter to a OO interface
2013-02-02 09:34:07 +01:00
Max Kellermann
3894450b10
filter: convert to C++
2013-02-01 17:47:09 +01:00
Max Kellermann
a7a10d03c9
test/test_pcm: add unit test for pcm_mix()
2013-02-01 15:52:03 +01:00
Max Kellermann
e0c645a270
test/test_pcm: add unit tests for the PcmFormat library
2013-02-01 00:32:05 +01:00
Max Kellermann
e42734c3f3
test/test_pcm: merge source buffer generator
2013-01-31 22:58:27 +01:00
Max Kellermann
f2491c88c8
PcmDither: convert struct to a class
2013-01-31 22:54:10 +01:00
Max Kellermann
1b175025fe
pcm_*: convert to C++
2013-01-31 21:11:06 +01:00
Max Kellermann
0307801d51
test/test_pcm: convert to C++
2013-01-31 21:11:06 +01:00
Max Kellermann
361404fd59
pcm_convert: convert to C++
2013-01-31 00:26:55 +01:00
Max Kellermann
5ed9f02c4d
TagPool, ...: include cleanup
2013-01-30 22:53:12 +01:00
Max Kellermann
6e47e79790
ConfigData: move functions into the class
2013-01-30 22:25:17 +01:00
Max Kellermann
d9ea3082fb
ConfigData: add constructors/destructors
2013-01-30 22:20:14 +01:00
Max Kellermann
aa8ab2fc89
test/test_vorbis_encoder: convert to C++
2013-01-30 22:19:24 +01:00
Max Kellermann
d664baff26
audio_{parser,config}: convert to C++
2013-01-30 21:47:12 +01:00
Max Kellermann
cd0d003197
filter/chain, encoder: GLib include cleanup
2013-01-30 21:42:50 +01:00
Max Kellermann
cfeeb7af2e
test/run_encoder, ...: convert to C++
2013-01-30 21:39:43 +01:00
Max Kellermann
595b6a4f6c
ConfigFile: add enum ConfigOption
...
Look up top-level config options by enum (= integer), not by name
string.
2013-01-30 21:36:04 +01:00
Max Kellermann
01dd540d7e
decoder_list: convert to C++
2013-01-30 17:18:48 +01:00
Max Kellermann
16afdfd874
ArchivePlugin: move instance methods to class ArchiveFile
2013-01-30 15:30:19 +01:00
Max Kellermann
f5c0b0d316
ArchiveFile: convert to a class
2013-01-29 23:26:51 +01:00
Max Kellermann
fa34dd7bd3
test/visit_archive: new debug program
2013-01-29 22:54:56 +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
76417d4446
InputStream: use std::string
2013-01-28 23:41:45 +01: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
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
86b0adc82c
playlist/*: convert to C++
2013-01-26 01:17:43 +01:00
Max Kellermann
94fffb332b
archive/*: convert to C++
2013-01-24 19:18:58 +01:00
Max Kellermann
c1daa857a5
test/run_tcp_connect: delete obsolete source file
2013-01-21 10:47:38 +01:00
Max Kellermann
e22ef6c481
output/roar: convert to C++
2013-01-16 23:29:56 +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
f9fc3a42cc
fifo_buffer: move to util/
2013-01-15 01:02:13 +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
e0a97a030f
io_thread: convert to C++
2013-01-10 10:33:20 +01:00
Max Kellermann
d5516dee00
input_stream: convert to C++ (internally)
2013-01-10 10:15:09 +01:00
Max Kellermann
26ebfc04b0
EventPipe: rename to GlobalEvents
2013-01-09 23:31:43 +01:00
Max Kellermann
5faf443038
event_pipe.h: convert to C++
2013-01-09 22:37:47 +01:00
Max Kellermann
e86e77ad67
idle: convert to C++
2013-01-09 13:01:38 +01:00
Max Kellermann
3c4bb9ff4e
test/FakeReplayGainConfig: move fake symbols from a few debug programs
2013-01-09 12:26:07 +01:00
Max Kellermann
a890dadfd2
test/run_decoder,read_tags: remove obsolete dummy functions
2013-01-09 12:25:39 +01:00
Max Kellermann
620ae7790b
test: rename debug programs back to old names
2013-01-08 15:33:58 +01:00
Max Kellermann
975370c084
decoder_api.h, ...: add "extern C"
2013-01-07 10:07:40 +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
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
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
73f6fc428a
test: revert debug program renames
2013-01-05 02:39:32 +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
de0ab43bc1
output_*: convert to C++
2013-01-04 09:46:41 +01:00
Max Kellermann
83488848e1
Directory: initialise in default constructor
2013-01-03 02:12:34 +01:00
Max Kellermann
f5a92d6cc3
Directory: add constructor and destructor
2013-01-03 01:36:28 +01:00