Commit Graph

9540 Commits

Author SHA1 Message Date
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
Max Kellermann 6ad933982f DetachedSong: use std::chrono::duration for start_ms and end_ms 2014-08-28 13:03:18 +02:00
Max Kellermann 854258f376 Chrono: override operator+ and operator-
Make sure we return the correct type.  This obsoletes the cast
constructor trick.
2014-08-28 13:03:18 +02:00
Max Kellermann 26f2d7fbae DecoderControl: update API documentation 2014-08-28 13:03:18 +02:00
Max Kellermann 3952920492 Playlist: use std::chrono::duration for Seek*() 2014-08-28 06:42:19 +02:00
Max Kellermann c2001a7259 Chrono: add class SignedSongTime 2014-08-28 06:42:04 +02:00
Max Kellermann 78f911ac19 Chrono: add methods IsZero(), IsPositive() 2014-08-28 06:42:04 +02:00
Max Kellermann 0f2a7226fb PlayerControl: use std::chrono::duration for Seek() 2014-08-27 19:07:16 +02:00