Max Kellermann
|
4504a9d0b5
|
doc/user: new section about stored playlists
|
2017-01-03 20:42:19 +01:00 |
Max Kellermann
|
057f98ad45
|
doc/user: new section about external mixer
|
2017-01-03 20:37:25 +01:00 |
Max Kellermann
|
3b1c9aa026
|
doc/user: audio_output/enabled is stored in state_file
|
2017-01-03 20:29:38 +01:00 |
Max Kellermann
|
658397dc38
|
doc/user: mention that more than one audio_output is possible
|
2017-01-03 20:28:50 +01:00 |
Max Kellermann
|
0cd1c8e23e
|
doc/user: mention more plugins
|
2017-01-03 20:27:22 +01:00 |
Max Kellermann
|
0345c1e6f8
|
doc/user: more general documentation about the configuration file
|
2017-01-03 20:15:23 +01:00 |
Max Kellermann
|
f6c4cda0d4
|
python/libs: upgrade FLAC to 1.3.2
|
2017-01-03 15:04:07 +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
|
d2046de193
|
test/run_input, ...: RAII-style global initialization
|
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
|
a0393e9ddf
|
python/libs: upgrade Boost to 1.63
|
2016-12-29 21:55:20 +01:00 |
Max Kellermann
|
a8d6328bd4
|
python/build/libs: upgrade CURL to 7.52.1
|
2016-12-29 21:50:35 +01:00 |
Max Kellermann
|
13dab13319
|
python/build/libs: upgrade FFmpeg to 3.2.2
|
2016-12-29 21:46:13 +01:00 |
Max Kellermann
|
c623aa0f06
|
python/build/verify: support SHA-1 and SHA-256
|
2016-12-29 21:45:37 +01:00 |
Max Kellermann
|
79403afbe6
|
python/build/verify: prepare SHA support
|
2016-12-29 21:43:47 +01:00 |
Max Kellermann
|
4c650e87fa
|
python/build/verify: add verify_file_digest()
|
2016-12-29 21:40:54 +01:00 |
Max Kellermann
|
3dde62befe
|
python/build/verify: move code to file_digest()
|
2016-12-29 21:33:36 +01:00 |
Max Kellermann
|
8bfabbe265
|
python/build/verify: move code to feed_file()
|
2016-12-29 21:33:12 +01:00 |
Max Kellermann
|
e334b16aaa
|
python/build/download: move file_md5() to verify.py
|
2016-12-29 21:32:28 +01:00 |
Max Kellermann
|
5626ace245
|
python/build/download: raise RuntimeError
|
2016-12-29 21:21:58 +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 |