Max Kellermann
|
6717325c3f
|
config/ConfigFile: use std::unique_ptr
|
2015-12-16 11:13:16 +01:00 |
|
Max Kellermann
|
c4a0571e7a
|
config/ConfigFile: fix typo in format string
|
2015-12-16 11:13:16 +01:00 |
|
Max Kellermann
|
e4a06da14e
|
fs/io/OutputStream: use C++ exceptions in Write()
|
2015-12-16 10:24:43 +01:00 |
|
Max Kellermann
|
36d6ead65c
|
fs/io/GzipOutputStream: use C++ exceptions in constructor
|
2015-12-16 10:14:56 +01:00 |
|
Max Kellermann
|
7eae3bc8c5
|
fs/io/FileOutputStream: use C++ exceptions in Commit()
|
2015-12-16 00:33:33 +01:00 |
|
Max Kellermann
|
24b2198668
|
fs/io/FileOutputStream: use C++ exceptions in constructor
|
2015-12-16 00:33:30 +01:00 |
|
Max Kellermann
|
d29be0f460
|
db/simple: use std::unique_ptr<GzipOutputStream>
|
2015-12-16 00:33:10 +01:00 |
|
Max Kellermann
|
8f93c36466
|
command/AllCommands: catch and report std::exception
|
2015-12-16 00:07:51 +01:00 |
|
Max Kellermann
|
3092e5a8a5
|
system/Error: helper library for constructing std::system_error
|
2015-12-16 00:07:51 +01:00 |
|
Max Kellermann
|
55f95b3ac9
|
Log: C++ exception support
|
2015-12-16 00:07:51 +01:00 |
|
Max Kellermann
|
c11345c4d9
|
db/DatabaseLock: add class ScopeDatabaseUnlock
|
2015-12-16 00:07:51 +01:00 |
|
Max Kellermann
|
e31f0b8b0c
|
db/simple: use class ScopeDatabaseLock
|
2015-12-16 00:07:51 +01:00 |
|
Max Kellermann
|
7dd3b72a8c
|
db/DatabaseLock: add ScopeDatabaseLock::unlock()
|
2015-12-16 00:07:51 +01:00 |
|
Max Kellermann
|
9bc0fada5c
|
release v0.19.12
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABCAAGBQJWcH4fAAoJECNuiljG20USbAcQAKX0G+V10HI2Bmf7JJ3pWW96
GiOBpd66pEPioXdfpxOQNLglKS+rcproCWZnQf/VSoYN5d6pT6VLCQiMpdm3ZkNO
ZLWGhJ0Md1PGj+xjfGrMw95g+cqV+wMo1PETOsE/MtINqN/nMyQNI7lFnZ8xYEAP
DhJB1pXdchHvUVM3o+vpGSEOScn3XstL8+a/K5+Rvxptew4QDI/0ucyTLcLaaxkY
r/bH8wTDSMSpez4M5Me9MQ9OJ9NUPgudvs8Ppzji26lMcQRnZGdcffGTj08Lv+1b
gyx25t8sija6XVt6AEqn8KX+YAhe94c7ROq5PzdLeUszUf4YFIqaZ7O19PSYuuB6
APfr25A7NBQtJ88Wjw6slco+mAwbLZwQewZtFZCq6Y8J3oRBG6bpaPhFWUyygqTL
rIU735+o3FvqijKJUtKG0rAz+wfsPk6TMvIg4VMUaQXneS1LbzZe2Nz2FGxtonpd
Ua/tBQ/LnX8Utueuhy0kH06qPqq1/eSCMZIH/yphfR+B5k90h719RN/BR5xPv9Fb
vRdiSgPtfACAHvnadqcpVGjmmCQtXurC7gFceEc4Anign5kkSSGrDmo9OYhxwSkl
8A2GeOmxNrs2aFkNelnH3C6BTOEcewbXEmPQhTiBoX9LDmDK31rfSoVI0SUt7rbR
Sbt21m+7ThEqFfafZ8a/
=hDes
-----END PGP SIGNATURE-----
Merge tag 'v0.19.12'
release v0.19.12
|
2015-12-15 22:05:21 +01:00 |
|
Benno Fünfstück
|
cae2811762
|
fix mpd crash on invalid utf8 stream title
|
2015-12-15 21:49:53 +01:00 |
|
Max Kellermann
|
28f9a0a900
|
command/other: re-allow "lsinfo /"
This compatibility hack was accidently broken by commit f072cbbb
|
2015-11-13 21:04:02 +01:00 |
|
Max Kellermann
|
a6bb3cf60a
|
command/queue: use StringIsEqual() instead of memcmp()
memcmp() can overflow the buffer.
|
2015-11-13 21:02:33 +01:00 |
|
Max Kellermann
|
004da5d385
|
queue/Save: fix "Malformed playlist line in state file"
Regression by commit 738583e3
|
2015-11-13 20:45:50 +01:00 |
|
Max Kellermann
|
0368282486
|
player/Control: add code comments
|
2015-11-13 16:02:07 +01:00 |
|
Max Kellermann
|
4404f20cf4
|
player/Control: Seek*() returns Error information
|
2015-11-11 19:56:09 +01:00 |
|
Max Kellermann
|
faca8bc02a
|
decoder/Control: Seek() returns Error information
|
2015-11-11 19:56:08 +01:00 |
|
Max Kellermann
|
5e93c05095
|
queue/Playlist: seek methods return bool/Error instead of PlaylistResult
|
2015-11-11 19:56:01 +01:00 |
|
Max Kellermann
|
0f4f04eaa4
|
command/CommandError: send verbose error message to client
|
2015-11-11 19:51:09 +01:00 |
|
Max Kellermann
|
2e55d561d3
|
PlaylistError: remove unused code "ERRNO"
|
2015-11-11 19:50:57 +01:00 |
|
Max Kellermann
|
76a9049739
|
decoder/Control: State::ERROR is illegal
The state ERROR can only be entered during decoder initialization, and
Seek() may only be called after initialization has been finished.
|
2015-11-11 17:46:06 +01:00 |
|
Max Kellermann
|
27bfcda20d
|
decoder/Control: use switch/case in Seek()
|
2015-11-11 17:46:03 +01:00 |
|
Max Kellermann
|
c6d1d360a3
|
player/Control: use class ScopeLock
|
2015-11-11 17:43:56 +01:00 |
|
Max Kellermann
|
afc1236b06
|
player/Control: move code to ClearError()
|
2015-11-11 17:41:02 +01:00 |
|
Max Kellermann
|
bedd5f00f8
|
player/Control: move code to SeekLocked()
|
2015-11-11 16:56:24 +01:00 |
|
Max Kellermann
|
36239895bd
|
player/Control: add Lock prefix to locking method names
|
2015-11-11 16:50:57 +01:00 |
|
Max Kellermann
|
738583e3d4
|
StateFile: use StringAfterPrefix() instead of StringStartsWith()
|
2015-11-11 15:34:36 +01:00 |
|
Max Kellermann
|
c513478c31
|
db/simple: use StringAfterPrefix() instead of StringStartsWith()
|
2015-11-11 15:27:56 +01:00 |
|
Max Kellermann
|
a944927b56
|
util/StringPointer: add method empty()
|
2015-11-11 15:13:46 +01:00 |
|
Michael Paquier
|
315f9d98f6
|
Main: fix build failure on non-Linux systems
|
2015-11-10 08:38:53 +01:00 |
|
Max Kellermann
|
b9a8b0d146
|
util/StringView: add method Literal()
|
2015-11-06 10:03:45 +01:00 |
|
Max Kellermann
|
4d15db0134
|
util/StringCompare: use StringView to simplify inline implementations
|
2015-11-06 10:03:14 +01:00 |
|
Max Kellermann
|
0d1a54262c
|
playlist/soundcloud: make key_str "static const"
|
2015-11-06 09:52:35 +01:00 |
|
Max Kellermann
|
e7ef7f5159
|
db/update/InotifyQueue: use StringAfterPrefix()
|
2015-11-06 09:49:39 +01:00 |
|
Max Kellermann
|
3dc989bccb
|
input/alsa: use StringAfterPrefix()
|
2015-11-06 09:49:22 +01:00 |
|
Max Kellermann
|
75d46efd23
|
util/UriUtil: use StringAfterPrefix() instead of memcmp()
|
2015-11-06 09:49:22 +01:00 |
|
Max Kellermann
|
b83392cb04
|
util/UriUtil: move code to SkipUriScheme()
|
2015-11-06 09:49:22 +01:00 |
|
Max Kellermann
|
7640d333f4
|
util/UriUtil: make variables more local
|
2015-11-06 09:49:22 +01:00 |
|
Max Kellermann
|
c880099deb
|
util/StringCompare: add StringIsEmpty()
|
2015-11-06 09:37:07 +01:00 |
|
Max Kellermann
|
42f5ecd4a1
|
util/StringCompare: use strncmp() instead of memcmp() in StringStartsWith()
Some optimized implementations of memcmp() may not start from the
beginning of the string, and may thus segfault.
|
2015-11-06 09:24:18 +01:00 |
|
Max Kellermann
|
733989a284
|
util/StringUtil: move comparison functions to StringCompare.cxx
|
2015-11-06 09:20:18 +01:00 |
|
Max Kellermann
|
493f74d94d
|
tag/id3: convert path from "wchar_t*" to "char*" for error message
|
2015-11-06 09:20:18 +01:00 |
|
Max Kellermann
|
3b71e2abef
|
player/Thread: call DecoderCommand::SEEK only on existing decoder
If the decoder was just started, it already seeks to the desired
position.
|
2015-11-05 00:41:54 +01:00 |
|
Max Kellermann
|
30cad0c5f1
|
player/Thread: move code to WaitDecoderStartup()
|
2015-11-05 00:39:30 +01:00 |
|
Max Kellermann
|
3a387643b3
|
player/Thread: move player_command_finished() to PlayerControl
|
2015-11-05 00:38:09 +01:00 |
|
Max Kellermann
|
e6b37703da
|
player/Thread: copy pc.seek_time in ActivateDecoder()
If this gets called while seeking, do the right thing. This moves the
elapsed_time setter from method Run(), which is now redundant.
|
2015-11-05 00:30:04 +01:00 |
|