Commit Graph

9486 Commits

Author SHA1 Message Date
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
Max Kellermann f8d0ebe92f PlayerThread: check if total_time is valid before using it 2014-08-27 19:06:50 +02:00
Max Kellermann ba6ba7d4be DecoderControl: use std::chrono::duration for Seek() 2014-08-27 18:48:43 +02:00
Max Kellermann 58e6f660f3 Chrono: add implicit conversion operator from std::chrono::duration 2014-08-27 18:47:14 +02:00
Max Kellermann cd482ca655 Chrono: add method ToDoubleS() 2014-08-27 18:41:33 +02:00