Max Kellermann
|
43da1686da
|
nfs/Connection: check for disappearing libnfs socket
|
2014-08-31 19:33:08 +02:00 |
|
Max Kellermann
|
6d643f92b7
|
nfs/Connection: use only BroadcastError()
Since BroadcastError() calls BroadcastMountError(), there's no need to
check mount_finished here.
|
2014-08-31 19:32:41 +02:00 |
|
Max Kellermann
|
559a01f585
|
nfs/Connection: nfs_get_fd() can return -1
While reconnecting to the NFS server, the socket is -1, because there
is no socket. Fixes a potential crash (assertion failure).
|
2014-08-31 19:08:26 +02:00 |
|
Max Kellermann
|
ba8e3f11e2
|
input/nfs: notify client on error
Fixes hanging NFS client.
|
2014-08-31 18:26:32 +02:00 |
|
Max Kellermann
|
fd8a53ca3d
|
nfs/Connection: use nfs_get_error() for mount error
|
2014-08-31 17:44:35 +02:00 |
|
Max Kellermann
|
8707aafaf7
|
nfs/Connection: fix assertion failure
|
2014-08-31 17:39:33 +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
|
6e04d66a35
|
release v0.18.13
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJUAxsyAAoJECNuiljG20USmRAP/2J/+kV5TRfqr7acFKh/aqip
RAefHTvHpYuAUDOi3WDVSZcmMnaYGKslZhbXhqchbRfR2oMwYhR+5gHIoxOp+EcL
09UF1fJfUnjg6B2zz6tggIWR53Dwxckg4xEaKtI2Wi3Gz+9Q/CiNlpWLJc0ONA5e
9gcz8pNK3oN0Em9c1KXahZKArzGdOGeytfSI3PLE+QnRiEyEDz1+StxIuyl72vr4
ar2EMa9Vdvb7ouNK0g8WqaEOzYyNDXhklIqc+zALQJGThY1xj6OCfQ8JVagJhzwB
UDuYfX1FylkN8LhF5pNzH1F0ANMozWcqeZlLLph6vuKkVBD7WUX4X1t82bwUlFDB
ppdA5pPkiXsqYnuhHML4GqL7LlI2wsMxUHK7v+A9+9hfGN9HIoFyOSLBjB1pyI93
yi8IPOq2a1BJQfQ2c69693ZS7WPxU6vOFKucKrk9PBlr2900SlvpMzIpZr1PMnGV
hoU8eLHOIW86wi5Ea2ycFbFyI1ZoyrKJmzcVJjPjZUT05jDV6bA2Gi1IG6gIhX1q
DiBfXUre+GISkLS4r8GcbG1FIXcv7fGjZ6Vols5di8lpYQ5oBu5aw2TEf8zukrHC
LzPRa2l6Mhe2OI7a/mmTaEYDINgCL//46hOU5mIbmB0XZS8Jf+D1/HBzqKpeqO7f
idENtbelqQdSsR5UU+R0
=c2vC
-----END PGP SIGNATURE-----
Merge tag 'v0.18.13'
|
2014-08-31 15:03:34 +02:00 |
|
Max Kellermann
|
86e8b3b4bd
|
release v0.18.13
|
2014-08-31 14:50:23 +02:00 |
|
Max Kellermann
|
a26ead035a
|
PlaylistControl: use SeekSongOrder(current) to keep current song
The "current" attribute is a "song order", not a "song position".
This is usually the same - except in random mode. Fixes Mantis ticket
0004073.
|
2014-08-31 14:44:20 +02:00 |
|
Max Kellermann
|
704be54c3a
|
PlaylistControl: move code to new method SeekSongOrder()
|
2014-08-31 14:23:06 +02:00 |
|
Max Kellermann
|
2406152576
|
output/alsa: fix endless loop at end of file in dsd_usb mode
|
2014-08-31 14:01:57 +02:00 |
|
Max Kellermann
|
af260b5a64
|
output/{alsa,oss}: add assertions
|
2014-08-31 14:00:09 +02:00 |
|
Joachim Fasting
|
4efa96df21
|
doc/protocol: fix description of "stats" response
Fix incorrect description of the "songs" field and add missing
"albums" field.
Signed-off-by: Joachim Fasting <joachifm@fastmail.fm>
|
2014-08-31 13:16:39 +02:00 |
|
Max Kellermann
|
26bef5d209
|
DecoderAPI: use std::min()
|
2014-08-31 08:27:51 +02:00 |
|
Max Kellermann
|
cd6e0ff88a
|
MusicChunk: remove special case for num_frames==0
Simply return an empty WritableBuffer, not a nulled one.
|
2014-08-31 08:26:03 +02:00 |
|
Max Kellermann
|
2ca979425f
|
MusicChunk: copy AudioFormat only when chunk is empty
|
2014-08-31 08:25:17 +02:00 |
|
Max Kellermann
|
8d822ebdb4
|
PlaylistMapper: pass the Storage::MapUTF() result to playlist_open_remote()
Finally allows loading playlist files on a storage plugin. Commit
297e2747 attempted to implement this, but failed due to this bug.
|
2014-08-30 01:02:24 +02:00 |
|
Max Kellermann
|
bc5b5afcbf
|
decoder/sndfile: refactor frame_to_time()
|
2014-08-30 00:53:14 +02:00 |
|
Max Kellermann
|
b373c53ce4
|
*: add missing Compiler.h includes
Necessary for "final" on gcc 4.6.
|
2014-08-30 00:46:52 +02:00 |
|
Max Kellermann
|
bc4b89c21a
|
Chrono: workaround for gcc 4.6 constexpr problems
|
2014-08-30 00:41:56 +02:00 |
|
Max Kellermann
|
e10c287c93
|
PlayerControl: make settings "const"
|
2014-08-30 00:28:02 +02:00 |
|
Max Kellermann
|
ce42d53a09
|
PlayerControl: update include guard
|
2014-08-30 00:27:01 +02:00 |
|
Max Kellermann
|
a4f9d6d98b
|
output/alsa: fix signed/unsigned comparison warning
|
2014-08-30 00:27:01 +02:00 |
|
Max Kellermann
|
eebd03701a
|
db/simple: fix build failure without zlib
|
2014-08-30 00:25:12 +02:00 |
|
Max Kellermann
|
d5287682d1
|
ArgParser: allow fractional seconds in ParseCommandArg(SongTime)
|
2014-08-29 23:46:38 +02:00 |
|
Max Kellermann
|
7c567e3cbd
|
CrossFade: pass total_time as SignedSongTime instance
|
2014-08-29 23:41:34 +02:00 |
|
Max Kellermann
|
58352ea69d
|
db/Stats: use std::chrono::duration for the total duration
Use milliseconds precision to reduce rounding errors.
|
2014-08-29 23:25:03 +02:00 |
|
Max Kellermann
|
de64b35359
|
db/upnp: use DatabaseStats::Clear()
|
2014-08-29 23:24:49 +02:00 |
|
Max Kellermann
|
7df8e1eab2
|
db/Count: use std::chrono::duration for the total time
Use milliseconds precision to reduce rounding errors.
|
2014-08-29 23:18:40 +02:00 |
|
Max Kellermann
|
8b62127770
|
decoder/gme: fix song duration
The unit of gme_info_t::length is milliseconds, not centiseconds.
|
2014-08-29 23:03:29 +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
|
94f6380d69
|
Chrono: add methods FromScale()
|
2014-08-29 21:38:08 +02:00 |
|
Max Kellermann
|
2ee821656f
|
Chrono: rename ToScale() parameter
|
2014-08-29 21:38:08 +02:00 |
|
Max Kellermann
|
7556abb92d
|
decoder/faad: bit_rate==0 is an error
|
2014-08-29 21:38:08 +02:00 |
|
Max Kellermann
|
9d3a85d434
|
MusicChunk: use SignedSongTime for the time stamp
|
2014-08-29 13:20:58 +02:00 |
|
Max Kellermann
|
147d301f10
|
MultipleOutputs: use SignedSongTime for elapsed_time
|
2014-08-29 13:20:58 +02:00 |
|
Max Kellermann
|
75a89c5983
|
PlayerThread: use SongTime for elapsed_time
|
2014-08-29 13:20:58 +02:00 |
|
Max Kellermann
|
2289968634
|
PlayerControl: use SignedSongTime for the song duration
|
2014-08-29 13:20:58 +02:00 |
|
Max Kellermann
|
ca252804c6
|
DecoderControl: use SignedSongTime for the song duration
|
2014-08-29 13:20:58 +02:00 |
|
Max Kellermann
|
7c25d83f1c
|
Tag: use SignedSongTime for the song duration
|
2014-08-29 13:20:58 +02:00 |
|
Max Kellermann
|
8ce30c6a69
|
Chrono: convert SongTime to SignedSongTime implicitly
|
2014-08-29 13:20:58 +02:00 |
|
Max Kellermann
|
9fcaff749f
|
Chrono: add SignedSongTime::FromS(unsigned)
|
2014-08-29 12:50:41 +02:00 |
|
Max Kellermann
|
3ac1475262
|
Chrono: add methods ToS(), RoundS()
|
2014-08-29 12:23:09 +02:00 |
|
Max Kellermann
|
ad64bab5b2
|
Chrono: add method SignedSongTime::Negative()
|
2014-08-29 12:18:13 +02:00 |
|
Max Kellermann
|
f02998b106
|
DecoderControl: use std::chrono::duration for start_ms and end_ms
|
2014-08-28 13:08:44 +02:00 |
|
Max Kellermann
|
127fe6ecf0
|
PlaylistEdit: pass std::chrono::duration to SetSongIdRange()
|
2014-08-28 13:03:18 +02:00 |
|
Max Kellermann
|
888ab0c89c
|
db/simple/Song: use std::chrono::duration for start_ms and end_ms
|
2014-08-28 13:03:18 +02:00 |
|
Max Kellermann
|
2efd8ef52d
|
db/LightSong: use std::chrono::duration for start_ms and end_ms
|
2014-08-28 13:03:18 +02:00 |
|