Max Kellermann
c6086bed41
filter/Internal: remove the default constructor
...
Not used. Force implementations to initialize out_audio_format.
2017-01-06 12:45:52 +01:00
Max Kellermann
1a9dfdfab8
filter/AutoConvert: initialize Filter::out_audio_format
2017-01-06 12:44:55 +01:00
Max Kellermann
5284cd11a9
filter/AutoConvert: remove obsolete NULL check
2017-01-06 12:35:06 +01:00
Max Kellermann
d1a47cffad
filter/convert: remove obsolete method prototype
2017-01-06 12:34:39 +01:00
Max Kellermann
f469595eee
filter/Internal: remove obsolete doxygen line
2017-01-06 12:34:39 +01:00
Max Kellermann
9cfc52f114
filter/Internal: add assertion to constructor
2017-01-06 11:17:55 +01:00
Max Kellermann
8aae9766e5
fs/io/*: make constructors "explicit"
2017-01-04 10:41:04 +01:00
Max Kellermann
288b98ccbf
fs/io/GunzipReader: use C++11 initializer
2017-01-04 10:37:34 +01:00
Max Kellermann
bde50b1be8
fs/io/{GunzipReader,GzipOutputStream: remove deprepcated dynamic exception specifications
2017-01-04 10:33:24 +01:00
Max Kellermann
a34dfd55be
util/HugeAllocator: remove deprepcated dynamic exception specifications
2017-01-04 10:32:21 +01:00
Eugene Baklanov
bd14afe347
Fix for priority order bug if reordering in SetRandom()
...
Fix for the problem where order with priorities gets out of whack in case it's
reordered by SetRandom() while another song is currently playing.
What happens is, if some song is already playing and you have set some
priorities before switching on the random mode, and then turn the mode on, the
original code swaps position of the first song in the order (i.e., the highest
priority song) with current, so that current is 0 (which it should be). The
problem is, the "original" first song then goes to the place "current" song was
after reordering, wherever that is, instead of going after the "current" song.
This patch fixes the issue.
Also the fix makes MoveOrder() public, because why shouldn't it be, anyway. It
certainly makes more sense than just having SwapOrders() public for some
reason.
Signed-off-by: Eugene Baklanov <miltenfiremage@gmail.com>
2017-01-04 10:10:27 +01:00
Max Kellermann
5900253b85
update copyright year
2017-01-03 20:48:59 +01:00
Max Kellermann
39fd713b91
Main: invoke UpdateEffectiveReplayGainMode() after output init
...
Forward the configured ReplayGainMode to all outputs and decoders.
2017-01-03 13:44:38 +01:00
Max Kellermann
31d77ec580
input/curl, ...: use strncmp() instead of memcmp() to avoid crash
2017-01-03 13:17:02 +01:00
Max Kellermann
06116382ee
input/curl: move code to class CurlRequest
...
The CurlRequest gives us a more low-level API to CURL without the
InputStream interface, integrated into our IOThread.
2017-01-03 12:24:05 +01:00
Max Kellermann
4397fe3a13
input/curl: fold input_curl_easy_add_indirect() into the only caller
2017-01-03 10:53:20 +01:00
Max Kellermann
534e1fa6eb
input/curl: move code to SeekInternal(), simplify DoSeek()
...
Simplifies the code and reduces the number of IOThread roundtrips.
2017-01-03 10:50:02 +01:00
Max Kellermann
3e8cc2c670
input/curl: move class CurlGlobal to separate source file
2017-01-03 10:50:02 +01:00
Max Kellermann
3c565baf9d
output/Source: clear current_chunk in Close()
...
Fixes assert failure after unpausing.
2017-01-03 10:50:02 +01:00
Max Kellermann
2e182e84c3
thread/Mutex: remove ScopeLock, use std::lock_guard directly
2017-01-03 07:11:57 +01:00
Max Kellermann
a42021655c
thread/Cond: make the integer-based timed_wait() overload private
...
Make sure this deprecated API is not used.
2017-01-03 07:07:10 +01:00
Max Kellermann
2498a2b0bd
thread/Mutex: use std::lock_guard instead of std::unique_lock
...
We need purely RAII-style, and this is std::lock_guard.
2017-01-03 06:56:24 +01:00
Max Kellermann
4484411a77
output/Internal: add various trivial getter methods
2016-12-29 23:28:54 +01:00
Max Kellermann
61a151c803
output/State: add missing mutex lock
2016-12-29 23:28:46 +01:00
Max Kellermann
5149c950aa
output/Multiple: add missing mutex lock
2016-12-29 23:28:46 +01:00
Max Kellermann
18f4d846c9
output/Internal: make the Mutex mutable
2016-12-29 23:28:37 +01:00
Max Kellermann
db95aa250d
output/Control: pass "force" flag to LockUpdate()
...
Reduce overhead by eliminating MultipleOutputs::ResetReopen().
2016-12-29 23:20:26 +01:00
Max Kellermann
982d1bf662
output/Init: convert audio_output_setup() to method
2016-12-29 22:59:03 +01:00
Max Kellermann
52652cb609
command/{Player,Error}: extract messages from nested exceptions
2016-12-29 14:46:13 +01:00
Max Kellermann
256f40d4f5
output/Multiple: obtain detailed error information in Open()
2016-12-29 14:46:13 +01:00
Max Kellermann
ef9acc54ec
output/Internal: remember the most recent error
2016-12-29 14:21:12 +01:00
Max Kellermann
a9f2d25957
output/Thread: unify exception handling
2016-12-29 14:10:37 +01:00
Max Kellermann
6fc47fbb69
thread/Mutex: make ScopeLock an alias for std::unique_lock
2016-12-29 11:53:24 +01:00
Max Kellermann
9c11184238
thread/Mutex: use std::unique_lock to implement ScopeLock
2016-12-29 11:51:25 +01:00
Max Kellermann
a421c1dbfb
notify: use C++11 initializer
2016-12-29 11:41:22 +01:00
Max Kellermann
7ec707927d
lib/nfs/Blocking, neighbor/smbclient: pass std::chrono::duration to Cond::timed_wait()
2016-12-29 11:37:18 +01:00
Max Kellermann
837134daef
system/Clock: remove obsolete MonotonicClock*() functions
...
We're using std::chrono::steady_clock now. No need to duplicate code.
2016-12-28 22:24:09 +01:00
Max Kellermann
4011899846
system/PeriodClock: use std::chrono::steady_clock
2016-12-28 22:23:45 +01:00
Max Kellermann
28e743ba70
output/Timer: include cleanup
2016-12-28 22:23:45 +01:00
Max Kellermann
a161d404ad
lib/xiph/OggSerial: use std::chrono::steady_clock
2016-12-28 22:17:59 +01:00
Max Kellermann
cd607cb280
lib/upnp/Discovery: use std::chrono::steady_clock
2016-12-28 22:06:06 +01:00
Max Kellermann
4e60ab7f53
lib/upnp/Discovery: use C++11 initializers
2016-12-28 22:05:31 +01:00
Max Kellermann
71e7d32b08
output/Timer: use std::chrono
2016-12-28 22:00:33 +01:00
Max Kellermann
d5e422970c
output/Plugin: delay() returns std::chrono::steady_clock::duration
2016-12-28 22:00:29 +01:00
Max Kellermann
871ba5a488
thread/Cond: add timed_wait() overload with std::chrono support
2016-12-28 21:47:04 +01:00
Max Kellermann
249e8d59cb
Stats: use std::chrono
2016-12-28 10:22:55 +01:00
Max Kellermann
8f4769d2ac
Stats: initialize start_time automatically
2016-12-28 10:22:15 +01:00
Max Kellermann
a3ca9963a5
output/Timer: pass size_t to Add()
2016-12-28 10:17:29 +01:00
Max Kellermann
2d3c23876c
output/Timer: use C++11 initializers
2016-12-28 10:16:41 +01:00
Max Kellermann
bd8d8eef3e
output/Timer: no "time" initialization if !started
2016-12-28 10:16:11 +01:00