Max Kellermann
d7f770ce73
decoder/flac: move flac_sample_format() to FlacAudioFormat.hxx
2018-07-07 14:40:02 +02:00
Max Kellermann
24b14c5aa5
decoder/flac: rename FlacMetadata.cxx to FlacStreamMetadata.cxx
2018-07-07 14:29:49 +02:00
Max Kellermann
37897d1550
decoder/flac: move class FlacMetadataChain to separate source
2018-07-07 14:18:00 +02:00
Max Kellermann
b153591790
decoder/flac: move FlacIOHandle.?xx to lib/xiph/
2018-07-07 14:17:03 +02:00
Max Kellermann
3d43e4e954
decoder/flac: move class FLACMetadataIterator to separate source
2018-07-07 14:04:37 +02:00
Max Kellermann
72b6c09a73
db/simple: add an AudioFormat to each Song
2018-07-06 22:49:02 +02:00
Max Kellermann
9a29d02e7e
Merge branch 'v0.20.x'
2018-07-06 19:43:01 +02:00
Max Kellermann
466625f7ad
input/curl: use new class HttpStatusError
...
This way, IsFileNotFound() can detect status 404.
2018-07-06 19:26:11 +02:00
Max Kellermann
86e2075c63
lib/nfs/Connection: use new class NfsClientError
...
Allows callers to extract the NFS error code.
2018-07-06 19:17:34 +02:00
Max Kellermann
30900b2fe2
input/Error: new library providing IsFileNotFound()
2018-07-06 19:16:01 +02:00
Max Kellermann
fd7ae7ea4c
input/Domain: remove obsolete variable
2018-07-06 19:13:53 +02:00
Max Kellermann
60d5bf0240
util/StringFormat: new utility library
2018-07-06 19:07:02 +02:00
Max Kellermann
bd9a5021da
notify: remove unused library
2018-06-23 19:15:26 +02:00
Max Kellermann
54d295c247
MusicChunkPtr: managed MusicChunk pointer
...
Make all uses of MusicChunk safe.
2018-06-22 23:11:52 +02:00
Max Kellermann
6681b14b71
input/MaybeBuffered: proxy InputStream implementation which auto-uses BufferedInputStream
2018-06-22 22:33:16 +02:00
Max Kellermann
12f2418445
input/buffered: proxy InputStream implementation which caches in a huge buffer
2018-06-22 22:33:16 +02:00
Max Kellermann
ae8a2ab652
util/SparseBuffer: new utility class
2018-06-22 22:18:26 +02:00
Max Kellermann
d0fbf6db59
input/Stream: remove attribute "cond", replace with handler interface
...
This adds a bit of overhead, but also adds flexibility to the API,
because arbitrary triggers may be invoked from that virtual method
implementation, not just Cond::signal().
The motivation for this is to make the handlers more dynamic, for the
upcoming buffering class utilizing ProxyInputStream.
2018-06-22 19:37:18 +02:00
Max Kellermann
01d8eb6290
input/rewind: move sources out of the "plugins" directory
...
This is not a plugin.
2018-06-22 19:31:06 +02:00
Max Kellermann
ba8040d068
storage/udisks: new plugin
...
Documentation will follow soon.
2018-06-04 22:00:52 +02:00
Max Kellermann
2ddd45e5e1
test/run_neighbor_explorer: use ShutdownHandler to catch SIGINT/SIGTERM
2018-06-04 17:42:47 +02:00
Max Kellermann
03c89c9cec
neighbor/udisks: move ParseObject() to UDisks2.cxx
2018-06-04 17:23:55 +02:00
Max Kellermann
a159299a4b
lib/dbus/AsyncRequest: new helper class
2018-06-04 12:21:17 +02:00
Max Kellermann
eeb00ac45b
util/TemplateString: new utility library
2018-06-03 12:13:47 +02:00
Max Kellermann
adf2d3aff2
zeroconf/Avahi: move dbus_shutdown() call to the end of Main()
...
Calling dbus_shutdown() too early will break the "udisks2" neighbor
plugin.
2018-06-03 10:37:54 +02:00
Max Kellermann
f3ffdaf21f
lib/dbus/Glue: singleton for global initialization
2018-06-03 09:28:04 +02:00
Max Kellermann
3aade67046
basic udisks2 support
...
To get udisks2 support started, this commit contains the configure.ac
option and a "neighbor" plugin which shows block devices. Later, this
will allow mounting removable media with a new storage plugin.
2018-06-02 19:44:46 +02:00
Max Kellermann
dc111bbec2
odbus: import dbus-1 OO wrapper library
...
From a7cef404c1
To be used by upcoming code.
2018-06-02 19:15:56 +02:00
Max Kellermann
66a1e8b737
release v0.20.20
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAlsD85IQHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEm5xD/oCagsybi2L60r0trtjE7DJ+SnmgbjVmn3z
aieaIA78KFK2QWUettevYkVwtwqEqyw5DwSDmxRRpm9sMKsdDBL+gLCf5hjIFNQY
dZjyBIABgE+aAT+iYeXVmWgJI24s8znEGhZjUG5P/gf+CoLKvN5OQiZoBKOaurjX
YwJUyLV1SXiMLV/4HtOFw4xORuRPflhZ5MnA+cO7BmpV0XQoq82XgBi3XqAB8dv4
cIpDs0MU7DFHNUYHeHEWXVh1PgAcr2madWwQTiscuy8KRAR0GzkCsG5UrSyJs0xH
c0yQ1vVt7X0nyxV35Yemmlfe4DwMwNK9avsTr3Mmr4tNDbxxhiddDYZzy6UJHKis
vaVLhePLjXCOfPRivCY8zVZHwGTO5ArxQqftkGDnM1Gq8PwpTWLimZkvUW35d/xf
SJ+ixpkA1O2DzmkyUam41phhXli+lt0hF1P/7dKsuV/fzmAkJlmRpgxJJhLH8mwq
NNfHk8y8kdGoVy65e/u2asJe8PPB2y9NK2JmbBR9g6Dn+6puP4gkhok3a9cvUZ6q
5GHJF9yRYswVkr/Y6q8UtESeEUczqrQTasVvq0fkxV0f17BKDbOxClb+ItrnPTWV
WMfsyF3TYrHi4piB810q/nBY6pY7R2vQNCPMZwfjGlqn5amR2fm8QWecJVIPpkv3
rEPv+4r8nQ==
=DEYg
-----END PGP SIGNATURE-----
Merge tag 'v0.20.20'
release v0.20.20
2018-05-22 12:47:11 +02:00
Max Kellermann
bc14a6038e
Makefile.am: invoke javac with source/target 1.6
...
Fixes:
```
error: Source option 5 is no longer supported. Use 6 or later.
error: Target option 1.5 is no longer supported. Use 1.6 or later.
```
2018-05-22 12:37:01 +02:00
Patryk Hachuła
1628d801f9
playlist/Queue: add one-shot to single mode
2018-02-25 09:50:03 +01:00
Max Kellermann
b30a510b45
release v0.20.18
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAlqR3zoQHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEqNGEACGhsZJbhqls0EawfHhpOz/x7JcloMLWvoX
GzuvVinhdFmmFId0akLsg3TCyGElNA+4YzfDjB1TyMpPFBUxM/nnthYPrSmjiT68
t+0IV6OnqFVLE2PF6pHV2Gia0Km746GZBJ+TRLeZSIksADH7nU+soepIA6idwNRN
x8Wo0ashsRIPG3FyL6f/2W/vUvD/enoxohCBB/tvnZ73Px0k2bYAwlBNW/i9/yrX
ktJ2yJqbCkKOhBQnbUvsG72Nrd4/Iz2m7cA//KBVrDEGwNv5hxNKiK/hCq3YK2W9
Ndnl0+EQxNLT1NUwF5e1LS3GtU2Mh3FQwrcq81Cj7o/wEH5e7piKBZhwDCBgOYYH
vLbaLYWK+XW/EqitkRZx5ZBrfNoqOrLreX0d2+AZJOjKDjAWgMZXoOEjmQC9/Dcj
pGcRow4jAusBRJKVN0Wmu6eeVQMjiYJNWehhyhhruShHL2ZAjJSuDhygAFW5YB3I
N2kfhwZWMHVFpA0HvcVx5JwNx7U1OyJGs0lRGThV/6jhnklGzoujvomRNJ6VNx10
ppYhmcLaHm19GR1eb8KCYnZYL2QWoQT5YLVlm0vybTX9i1k3wdf9ezU/n5hB52rP
j20Ol1I9YQw4/L985SV1W+8ll1i71o9paoJx17C8AQpxWWamQLe+vgENt9fPKIPl
aLBYU7hq9Q==
=ndLr
-----END PGP SIGNATURE-----
Merge tag 'v0.20.18'
release v0.20.18
2018-02-24 23:16:06 +01:00
Max Kellermann
5b80711d75
Main: move WinSock initialization to class ScopeNetInit
2018-02-24 22:44:27 +01:00
Max Kellermann
88bbd847e0
test/FakeDecoderAPI: rename to DumpDecoderClient
2018-02-17 08:27:03 +01:00
Max Kellermann
34d14df297
Makefile.am: remove obsolete dependencies on FakeDecoderAPI.cxx
2018-02-17 08:26:10 +01:00
Max Kellermann
b2ec5d0f01
decoder/HybridDSD: new decoder plugin for Hybrid DSD
2018-02-13 00:00:00 +01:00
Max Kellermann
ce2b6dc84d
RemoteTagCache: new glue class for integrating RemoteTagScanner
...
This commit also puts an instance of RemoteTagScanner into the
Instance class, and hooks it into the "add" and "addid" commands.
2018-01-30 00:05:57 +01:00
Max Kellermann
1df5c5a76e
Listen: move class ClientListener to src/client/Listener.hxx
2018-01-29 23:48:16 +01:00
Max Kellermann
005bb59797
test/run_input: move code from Scan() to input/ScanTags.cxx
2018-01-29 16:57:44 +01:00
Max Kellermann
88bc3a9271
input/qobuz: implement InputPlugin::scan_tags()
2018-01-26 20:08:01 +01:00
Max Kellermann
2e32cf7b87
input/tidal: implement InputPlugin::scan_tags()
2018-01-26 20:08:01 +01:00
Max Kellermann
3e9c3c8ae8
input/Plugin: add method scan() with asynchronous callback class
...
To be used when a URL gets added.
2018-01-26 19:29:38 +01:00
Max Kellermann
2e1481f49d
input/tidal: add exception class TidalError
...
Allows catchers to inspect the HTTP status.
2018-01-24 15:34:54 +01:00
Max Kellermann
97f670658f
util/StringFormat: new utility library
2018-01-24 13:28:28 +01:00
Max Kellermann
1da64fb79c
lib/curl/Delegate: helper class for response body parsers
...
Eliminate duplicate code.
2018-01-23 16:48:43 +01:00
Max Kellermann
8b42fd0a28
Merge branch 'v0.20.x'
2018-01-23 16:45:57 +01:00
Max Kellermann
f762e8034f
test/NullMixerListener: new class to fix -Wnull-dereference
2018-01-23 16:28:56 +01:00
Max Kellermann
542bbb0889
input/qobuz: parse and report message from error responses
2018-01-21 12:52:54 +01:00
Max Kellermann
570c6765b0
input/tidal: parse and report userMessage from error responses
2018-01-21 12:30:46 +01:00
Max Kellermann
f90f17227b
input/Domain: remove obsolete variable
2018-01-20 19:19:29 +01:00