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 |
|
Max Kellermann
|
990f473bb3
|
player/Control: initialize seek_time in EnqueueSongLocked()
Allows removing a few special cases in the player thread.
|
2015-11-05 00:29:03 +01:00 |
|
Max Kellermann
|
cf1de78205
|
player/Thread: remove decoder error check from ActivateDecoder()
It is futile to check for decoder errors before the decoder has
finished startup. At this time, it's unlikely that the decoder has
already failed.
|
2015-10-28 18:24:42 +01:00 |
|