James McGlashan (DarkFox)
|
d4dea53ae9
|
http -> https for SoundCloud plugin
|
2014-01-02 12:29:45 +01:00 |
|
Max Kellermann
|
d477a9222e
|
output/httpd: change "struct" to "class"
|
2013-12-31 17:04:40 +01:00 |
|
Max Kellermann
|
69a9d29190
|
output/httpd: move code to methods Delay(), Play(), Cancel()
|
2013-12-31 17:01:08 +01:00 |
|
Max Kellermann
|
e2425592b6
|
output/httpd: move Cast() into the class
|
2013-12-31 16:59:24 +01:00 |
|
Max Kellermann
|
964b2661d8
|
output/httpd: add methods Init(), Finish()
|
2013-12-31 16:55:26 +01:00 |
|
Max Kellermann
|
8b65b524d5
|
output/httpd: use reference instead of pointer
|
2013-12-31 16:32:33 +01:00 |
|
Max Kellermann
|
f1ac2cd336
|
output/httpd: make the HttpdClient base class "private"
|
2013-12-31 16:24:51 +01:00 |
|
Max Kellermann
|
e73d0df2b6
|
event/*Monitor: document as not being thread-safe
|
2013-12-31 15:59:41 +01:00 |
|
Max Kellermann
|
af3f483924
|
event/Loop: document that AddCall() is thread-safe
|
2013-12-31 15:31:59 +01:00 |
|
Max Kellermann
|
809b0eb1f5
|
command: "lsinfo" and "readcomments" allowed for remote files
|
2013-12-29 18:25:32 +01:00 |
|
Max Kellermann
|
b5f3bfce92
|
SongUpdate: read tags from songs in an archive
Add the TagStream.cxx library, similar to TagFile.cxx, and use it to
load tags from song files inside archives.
|
2013-12-29 18:15:30 +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
|
ea9aff1d3f
|
TagFile: rewind the stream before trying the next plugin
Got lost in commit c97685fe
|
2013-12-29 17:09:59 +01:00 |
|
Max Kellermann
|
cecae419fb
|
DecoderList: add "pure" attribute
|
2013-12-29 17:06:59 +01:00 |
|
Max Kellermann
|
df4db50904
|
DecoderList: add function decoder_plugins_supports_suffix()
Replaces decoder_plugin_from_suffix().
|
2013-12-29 16:59:57 +01:00 |
|
Max Kellermann
|
decc4002a0
|
DecoderThread: use decoder_plugins_try()
.. instead of decoder_plugin_from_suffix(). This reduces overhead by
walking the array only once.
|
2013-12-29 16:51:18 +01:00 |
|
Max Kellermann
|
5bb563e3bc
|
UpdateContainer: pass suffix instead of DecoderPlugin
Instead of using the first DecoderPlugin that supports the suffix, use
the first one that actually implements the "container_scan" method.
|
2013-12-29 16:46:02 +01:00 |
|
Max Kellermann
|
9be82891b0
|
TagFile: pass reference instead of pointer
|
2013-12-29 16:24:04 +01:00 |
|
Max Kellermann
|
c97685fe6c
|
TagFile: use decoder_plugins_try()
.. instead of decoder_plugin_from_suffix(). This reduces overhead by
walking the array only once.
|
2013-12-29 16:13:11 +01:00 |
|
Max Kellermann
|
358b671033
|
DecoderList: remove unused function decoder_plugin_from_mime_type()
|
2013-12-29 15:53:55 +01:00 |
|
Max Kellermann
|
92a4bf4441
|
Merge branch 'v0.18.x'
|
2013-12-29 14:18:19 +01:00 |
|
Max Kellermann
|
e30b356eb0
|
daemon: no initgroups() when already running as the configured user
We can assume that initgroups() would be a no-op in that case, however
initgroups() is not allowed for unprivileged users anyway.
|
2013-12-29 13:59:05 +01:00 |
|
Max Kellermann
|
09a0803116
|
Daemon: fix typo in comment
|
2013-12-29 13:59:05 +01:00 |
|
Max Kellermann
|
20ffedc745
|
Daemon: simplify nested "if"
|
2013-12-29 13:57:12 +01:00 |
|
Max Kellermann
|
0b1ad27ba8
|
Daemon: fix typo in cast
|
2013-12-29 13:47:29 +01:00 |
|
Max Kellermann
|
5465647c2e
|
input/smbclient: new input plugin
|
2013-12-29 01:25:27 +01:00 |
|
Max Kellermann
|
a2baeed329
|
ls: add "pure" attribute
|
2013-12-29 01:25:27 +01:00 |
|
Max Kellermann
|
92aa464edb
|
pcm/Volume: remove unused function pcm_volume_dither()
|
2013-12-28 18:39:26 +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
|
f3bbe4bb1f
|
pcm/Volume: remove optimized i386 assembly
This code is unable to dither. Until we implement that, let's remove
the code for now. i386 isn't relevant anymore anyway.
|
2013-12-28 17:24:54 +01:00 |
|
Max Kellermann
|
2a3a18a283
|
pcm/Traits: use 32 bit integer for S8 long_type
16 bit is not enough for volume calculations.
|
2013-12-25 12:28:18 +01:00 |
|
Max Kellermann
|
431c80f4f0
|
pcm/Dither: add API documentation
|
2013-12-24 23:45:38 +01:00 |
|
Max Kellermann
|
9ac18c39a1
|
pcm/Dither: move shift from DitherConvert() to Dither()
All callers need this shift, so let's move it to the basic method.
|
2013-12-24 23:39:29 +01:00 |
|
Max Kellermann
|
d1b7473418
|
pcm/Dither: rename DitherShift() to DitherConvert()
|
2013-12-24 23:38:11 +01:00 |
|
Max Kellermann
|
64e898f6db
|
release v0.18.6
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.15 (GNU/Linux)
iQIcBAABAgAGBQJSuWnsAAoJECNuiljG20US3qwP/0WGxzRFU2/dLzX6KG5/n+8R
LqVeX7Ap7vLncA2UQQ2BiddPtF0u9lJOnex64pYCkwwpr4JBmkBa6kTKVGbbXDv5
/tuHeUJk/aWhBJ8Qz/rxmNFBW6tNGlhf+7FVt8vHQqvHn7tWWKRlsQNk6Pd4gGM/
UiMyuA8EtfTJZACPRRZK26H7g7EKIjsGt6vwiuWAh3MxGHWL5R2chuP5Mapi1U4U
Qa1YOUAHlChRxGT+LmNMyKlgq+mqltbKQj+pOLPFuT6Q6BqgZp2Ept5Svod/JamC
yCFRGWYsmRxZ0ZOhtRZACfm/yNzyIhkkvgW8FqM6tINOPrwL2MwAJVMVH3DZM7Aj
/8ltz0OH2s9x9sUfOtxQkK/3bJpBwaDnl+dFQtGIFwigvYLR2Jv2Bl1zQO6+zICu
bdbJS+IcOrElxTnxfir0CVEDysifUQ7/ZSQkwDqpF+RI8E07ZMZZLmXk3S2yX6Fx
6dCwdfIsBAotF7RYsdn4cmRaSEx6Ze+aQr0l5yLh+5sKPEdDRSMrBEnCgPGU94ub
VNl3Cp3dtq5kuSfJ90Mk0QzwVd/kCdKZKBMcTX2zv38NLcX0LCSylM4K9yCi+GR2
gvgAJq9cmbmTEN3+grVdApNx0sqNFrD6pB27KhUKWD0VYypPu7yPPptkOWzSldbz
8JGa8lryMbRmgiXVyivp
=Z823
-----END PGP SIGNATURE-----
Merge tag 'release-0.18.6'
|
2013-12-24 12:20:24 +01:00 |
|
Max Kellermann
|
91fed47648
|
PlayerThread: log the last song that was played
|
2013-12-24 11:58:10 +01:00 |
|
Max Kellermann
|
c05691b546
|
OutputControl: update both ReplayGainFilters
The "mode" of the second ReplayGainFilter was never set, and thus
replay gain was never applied to the new song during cross-fade.
|
2013-12-24 11:53:21 +01:00 |
|
Max Kellermann
|
1732166328
|
OutputThread: handle failing ReplayGainFilter::Open()
Since opening the PcmVolume object can now fail, this case must be
handled.
|
2013-12-24 10:52:33 +01:00 |
|
Max Kellermann
|
8edde7a4b3
|
pcm/Volume: convert to class
Prepare for adding state.
|
2013-12-23 10:58:37 +01:00 |
|
Max Kellermann
|
d11a0c9f14
|
pcm/Volume: apply volume into destination buffer
|
2013-12-23 10:55:29 +01:00 |
|
Max Kellermann
|
7be2abe6b5
|
pcm/Volume: convert i386 code to template specialization
|
2013-12-23 10:35:35 +01:00 |
|
Max Kellermann
|
4a62cd4ad8
|
pcm/Volume: move code to template pcm_volume_sample()
|
2013-12-23 10:35:23 +01:00 |
|
Max Kellermann
|
6d21b9448a
|
pcm/PcmVolume: rename to Volume.cxx
|
2013-12-23 10:35:21 +01:00 |
|
Max Kellermann
|
2d1a3073f6
|
pcm/PcmConvert: move the Domain instance to Domain.cxx
Rename pcm_convert_domain to pcm_domain. Move it out so we can use it
without depending on the whole PcmConvert library.
|
2013-12-23 10:35:19 +01:00 |
|
Max Kellermann
|
d7b9886387
|
ConfigData: initialise "used" in second constructor
|
2013-12-23 10:31:29 +01:00 |
|
Max Kellermann
|
1543e529f1
|
pcm/Dither: convert remaining methods to templates
Use the SampleTraits template and let the compiler generate a special
case for S32 instead of reusing S24_P32.
|
2013-12-22 22:18:06 +01:00 |
|
Max Kellermann
|
4043f320fe
|
pcm/Dither: generic sample dithering using template
|
2013-12-22 22:06:25 +01:00 |
|