Max Kellermann
|
445e82be75
|
output/Multiple: migrate from class Error to C++ exceptions
|
2016-11-09 12:31:23 +01:00 |
|
Max Kellermann
|
4cd21f1e07
|
decoder/Control: throw exception on Seek() error
|
2016-11-07 09:05:28 +01:00 |
|
Max Kellermann
|
308010794a
|
decoder/Control: convert error from Error to std::exception_ptr
Prepare full C++ exception support in the decoder thread.
|
2016-09-08 17:16:03 +02:00 |
|
Max Kellermann
|
b67e7df38e
|
release v0.19.17
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABCAAGBQJXgCv6AAoJECNuiljG20USR3cP/RALB4qlhecMo6H8VwZvfjiA
FHfhBKfdpHM3U3EEIZc1zxwHIdWk1yELtmx298vmJbWUifpYAYarXF5497tZf2XE
AVfhTltEJEd7xB5ZULnEScM1aHzMZm5HRcHwM1UqNCsXP7PT8fmpk7gw19pKOChT
h8V3+tpC403lCIcHcJGlkuzgZvKIZDs73g7a0+4GxD9XRAPwnMYRl3Cfd8QjKT/U
r67AcOwQlS6hWJFs0K1JjOQwfwbRq2YmuOmFJua6n8O6CI/7t4h3faSQ0V/5qjFd
k/pAMRtX6mz3mjVhZv4cuMy+QILWlxUNwLBIwtxSfbwcFKrN0vtIRG8O9622hTs2
+mvYiVboWABk6hnukiDAfki96jWYHlsCJR5oIK9DZ4nBe5RVp0r9Nq/ook2AW2it
6VgYIDBI5zS/blyJzXtzDVWEtSmLFxm21JSl+jHfWDtL6/rQGimdVOFkRw40oCBz
seYb5kIbilrg6xq1KiBMT+EWmXMf+q+3YWQsu01blXGYGPhpUqhIr0h/qUfWAqMs
fwIsoxsTrkQQjEWb6YWupPrdOLZ+kTAyaK+7v8B8JmzS/H3SohusMPUZKsQXl82s
5LJVLtVxB9WRRmpfSoYqfk7CkTHOktCzVmiHb/FYUYElS9VKmJYYU8XQ25snCoZ6
bYtERsH28q8rrpkWWEXP
=IXD5
-----END PGP SIGNATURE-----
Merge tag 'v0.19.17'
release v0.19.17
|
2016-07-09 00:46:09 +02:00 |
|
Max Kellermann
|
d3c7fac606
|
thread/Thread: throw std::system_error on error
|
2016-06-17 19:11:20 +02:00 |
|
Max Kellermann
|
8b903626c2
|
release v0.19.16
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABCAAGBQJXXuZbAAoJECNuiljG20USSegP/1gYoDyp4vDDCcRBNZkr3hlE
VbFyEz06/chfUTCRWFxtM6ghVMzSpqv7I8wDA8zv22NTkForVWD3gjimtJqJ/R4w
aT7QMZJmJUIH0Uf+dRp98YRG7m5S1Y5JkKEYu4oxQOECxbNMPd+ilbb6wwr2pYZ/
k2ks+oyYtPgqtWlriIbJMwXOyQEfqNCJgzxUzC2U6idVALYpj+5aK+VTY4Nk1YXw
nLAu8TT40jNYFfss0bDYBzQbm/82m8Q9JIkmoOpX/3WaRaCjaVza7IvRKgDPZutJ
mmrtu5SJ+QgLQLaXvav84KwtXhDbJu4zEbC7tUL0LGSmzbpiiz2DSUJP2jQ0C6nS
wgcACFkHGBLOjKNbjDB1eUhS7ouzxTGgPlsMC89254R7XQP/5EV9H3Quxb48Bxq7
PuW6nNHytppfAIZP18X62oL8hpSgwK1zLe34jzayJlkGIg5O1he4FcJQykvlzrjm
fBvL+hX3TM9exfASQujNXVgxFGPmgb37bE2aQyxZunE1DltJWfHyOhdme9vCuEcB
acz8gR/jcp8OKe4RCEdD1g86CSW2wlMfKfnzuwPPhcw0L3kz6OYcjRr2oMae7uG0
/NFw+PcdHcVKXjiRoJsdCvtN+jRtJhCUn314IskgyKad/UNcELbo7WDBUqHC36Wg
ncM6Sis4oal4jPXJ2JoE
=6ee1
-----END PGP SIGNATURE-----
Merge tag 'v0.19.16'
release v0.19.16
|
2016-06-13 19:03:59 +02:00 |
|
Max Kellermann
|
ac7ce73526
|
player/Thread: cancel audio when decoder startup on seek fails
Fixes assertion failure in MultipleOutputs::Open() after seeking to a
failing song during playback.
|
2016-04-21 14:03:27 +02:00 |
|
Max Kellermann
|
1d67aa7bf2
|
update copyright year to 2016
|
2016-02-26 17:54:05 +01:00 |
|
Max Kellermann
|
faca8bc02a
|
decoder/Control: Seek() returns Error information
|
2015-11-11 19:56:08 +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 |
|
Max Kellermann
|
ccea6dd74b
|
player/Thread: rename WaitForDecoder() to ActivateDecoder()
.. and fix its API documentation.
|
2015-10-28 18:20:48 +01:00 |
|
Max Kellermann
|
166b490eed
|
player/Thread: move code to ForwardDecoderError()
|
2015-10-27 23:28:13 +01:00 |
|
Max Kellermann
|
efd871ad2f
|
player/Thread: clear pc.next_song earlier in WaitForDecoder()
|
2015-10-27 23:25:50 +01:00 |
|
Max Kellermann
|
e753c924ef
|
player/Thread: merge the cross_fading flag into enum CrossFadeState
|
2015-10-27 22:43:46 +01:00 |
|
Max Kellermann
|
9dc7b5a6d9
|
player/Thread: move ResetCrossFade() calls to where pipes are set
Move ResetCrossFade() to where cross-fading would actually break, to
make the cross-fading state more reliable.
|
2015-10-27 22:11:56 +01:00 |
|
Max Kellermann
|
f5d21c9cdb
|
player/Thread: add method ResetCrossFade()
|
2015-10-27 22:05:41 +01:00 |
|
Max Kellermann
|
6ce13646da
|
player/Thread: more CrossFadeState documentation
|
2015-10-27 21:12:20 +01:00 |
|
Max Kellermann
|
151653dd98
|
player/Thread: automatic CrossFadeState enum values
|
2015-10-27 21:05:10 +01:00 |
|
Max Kellermann
|
619cfe6a1c
|
player/Thread: move enum CrossFadeState into the Player class
|
2015-10-27 20:48:14 +01:00 |
|
Max Kellermann
|
5fba8d773c
|
PlayerThread, ...: move to src/player/
|
2015-08-15 15:55:46 +02:00 |
|