Max Kellermann
e7353ec7e7
Queue: "setprio" re-enqueues old song if priority has been raised
...
This commit changes a minor queue priority design to something which
makes a little bit more sense.
Previously, a song that had already been played would only be
re-enqueued if its priority had just been raised above the current
song's. This means that if it was already above, it was not
re-enqueued. That is a surprising behavior, because users expect a
song to be played when its priority is raised.
Now the song is always re-enqueued if its priority is raised (and
above the current song's - no matter if it has already been above
before).
https://bugs.musicpd.org/view.php?id=4592
2016-12-09 13:02:26 +01:00
Max Kellermann
22dcca9832
util/Error: remove obsolete class
2016-11-10 12:58:26 +01:00
Max Kellermann
90a14e14f4
db/simple/Save: migrate from class Error to C++ exceptions
2016-10-29 09:45:34 +02:00
Max Kellermann
ed68fd4ab3
queue/PlaylistUpdate: include cleanup
2016-10-27 22:19:26 +02:00
Max Kellermann
6961bd61ca
LocateUri: migrate from class Error to C++ exceptions
2016-10-27 22:04:41 +02:00
Max Kellermann
6e52ab285a
player/Control: use class Error as C++ exception, throw it
2016-09-08 12:07:22 +02:00
Max Kellermann
aca081557a
queue/PlaylistControl: use PlaylistError::NotPlaying()
2016-09-05 20:37:24 +02:00
Max Kellermann
a71efacd1e
queue/PlaylistControl: fix return value in PlayNext(), PlayPrevious()
...
Failure must be indicated by returning false.
2016-09-05 19:21:23 +02:00
Max Kellermann
2fd5182608
db/Interface: GetSong() throws exception on error
2016-03-19 00:19:50 +01:00
Max Kellermann
7ad7caa2ae
queue/PlaylistUpdate: extend catch clause
2016-03-19 00:19:47 +01:00
Max Kellermann
06c172838c
queue/PlaylistUpdate: catch and ignore DatabaseError
...
Fixes regression by commit 42f7df96
2016-03-18 18:25:16 +01:00
Max Kellermann
1543dd85b5
queue/Playlist: don't let StaleSong() interrupt playback
...
http://bugs.musicpd.org/view.php?id=4470
2016-03-18 18:08:13 +01:00
Max Kellermann
f37a1026f9
queue/Playlist: rename DeleteSong() to StaleSong()
2016-03-18 18:01:01 +01:00
Max Kellermann
91fb7fa3d8
queue/Playlist: pass unsigned to PlayOrder()
2016-03-18 17:49:29 +01:00
Max Kellermann
7b70153068
queue/Playlist: document that current/queued are "order number"
2016-03-18 17:35:29 +01:00
Max Kellermann
9a9b6fa326
queue/Playlist: add interface QueueListener, replacing calls to idle_add()
2016-03-10 20:10:14 +01:00
Max Kellermann
ba43ec5759
queue/Playlist: remove redundant "struct" keyword
2016-03-10 20:03:45 +01:00
Max Kellermann
008a9560fe
queue/Playlist: call OnModified(), eliminate duplicate code
2016-03-10 20:03:01 +01:00
Max Kellermann
1aee89f5ea
*: include cleanup (using iwyu)
2016-03-01 22:08:13 +01:00
Max Kellermann
fb547260d1
player/Control: Play*() returns Error information
2016-02-28 13:31:41 +01:00
Max Kellermann
2065e32904
queue/PlaylistControl: clear "queued" before calling LockSeek()
...
This is necessary to avoid an assertion failure in UpdateQueuedSong()
after LockSeek() has failed.
2016-02-28 13:19:44 +01:00
Max Kellermann
9de984f7f8
queue/PlaylistControl: throw PlaylistError on error
2016-02-28 11:04:35 +01:00
Max Kellermann
b6cb9b853a
queue/PlaylistEdit: throw PlaylistError on error
2016-02-28 11:02:36 +01:00
Max Kellermann
50b930f283
playlist/edit: use std::unique_ptr
2016-02-28 11:00:59 +01:00
Max Kellermann
c81747dd15
queue/PlaylistTag: throw PlaylistError on error
2016-02-28 10:40:31 +01:00
Max Kellermann
f8810d7caf
PlaylistError: add NotPlaying()
2016-02-28 10:38:17 +01:00
Max Kellermann
1d67aa7bf2
update copyright year to 2016
2016-02-26 17:54:05 +01:00
Max Kellermann
6350089e51
release v0.19.13
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAABCAAGBQJWzMnGAAoJECNuiljG20US5yYP/jL9A313aMgUO/R8eVGNc7uJ
CwiKROtgd+M47si1qdduzdrPKrFK2tEGYT0El5uQsyDuIsmPB01c3ZqnlM8oO6ca
5tXXJiEvyMkupCEzAajTHqvDCyPx0+o1ektYm9SouAULjOMztIpsVU3oKc8Z78Yc
TkpaRwUjNaekGLf0kATesBYnWkKR7S/TLYKmaKUaPCcK/i2S8YhTC57a1yZjg3lE
w57Kh+tFLZCSiZChk9A5D6w1kKzDgiyNGRYK4F2TRfiQ6hML4F45EFgzfCg+zHi8
+OIE9C1ZQt/NQ6mib+OUWoGuHtfjR20F/OFnQEYvkyXQ32j1sbALe7IHCceX7IHl
U88hcIh2yEr1x3TUaVyYPLze4FBq/Uxv/gFH8FVKTWmcb90MJgXCNFbO3sfO9kk0
KYK0IDoHE9MSmWhblA1FFFHU8VmCMsTN0VhBan+XP2wgXnGX+UvjU7AWJm4Fkwx0
H8uP0Si5wtI9DZ+2SRyGhMfW/+pHsqD+O6PoSSfUyU3ZnPy+cAVEC+67oKJ9pZkA
najeYaMt0Kz88RvLEwNeLkiys62O8aTsBpfjeNfmUAISJzZZbIvC20tyroHrju30
TgbXff2Hnx4q+NQ7nbQN5HMVZ2JLLPMYYw+N0dP41g/ULubHS6btGOVwgTWoFwBo
i2L1uscoD1ONxIEOlIvl
=X7s3
-----END PGP SIGNATURE-----
Merge tag 'v0.19.13'
release v0.19.13
2016-02-23 22:13:43 +01:00
Max Kellermann
39fa949345
queue/Playlist: move only the tag items in TagModified()
...
Fixes disappearing duration of remote songs during playback.
See http://bugs.musicpd.org/view.php?id=4492
2016-02-23 21:01:55 +01:00
Max Kellermann
8bb5a565cd
PlaylistError: add exception class wrapping enum PlaylistResult
2015-12-18 09:21:11 +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
4404f20cf4
player/Control: Seek*() returns Error information
2015-11-11 19:56:09 +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
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
733989a284
util/StringUtil: move comparison functions to StringCompare.cxx
2015-11-06 09:20:18 +01:00
Max Kellermann
8acf996d90
command/queue: add range parameter to plchanges and plchangesposid
2015-10-27 20:35:40 +01:00
Max Kellermann
5fba8d773c
PlayerThread, ...: move to src/player/
2015-08-15 15:55:46 +02:00
Max Kellermann
7652a2986b
client/Response: new Client wrapper class for writing responses
2015-08-12 08:41:05 +02:00
Max Kellermann
b31d171ae8
*: doxygen fixups
2015-03-17 11:21:43 +01:00
Max Kellermann
929ec70512
queue/PlaylistState: remove unused macro
2015-01-22 18:44:30 +01:00
Max Kellermann
1c3f5517fa
config/Option: convert to strictly-typed enum
2015-01-21 23:30:00 +01:00
Max Kellermann
712ed555e6
Copyright year 2015
2015-01-01 19:48:13 +01:00
Max Kellermann
12b6959ea2
Playlist: reset song priority on playback
...
A priority should be a volatile thing: it should schedule a song for
playing back once, but it should not affect the next time the queue
gets played.
2014-11-26 08:54:16 +01:00
Max Kellermann
7519768cb1
Queue: add "reorder" parameter to SetPriority()
2014-11-26 08:50:58 +01:00
Max Kellermann
9af470c92d
Playlist: add method SongStarted()
...
Empty currently, but code will be added song.
2014-11-26 08:49:19 +01:00
Max Kellermann
ac8c1d0a01
Playlist: move more functions into the class
2014-11-26 08:34:51 +01:00
Max Kellermann
921d01b59d
Playlist: add another assertion
2014-11-26 08:25:48 +01:00
Max Kellermann
8aa4a66ba0
Playlist: move playlist_song_started() into the class
2014-11-26 08:24:25 +01:00
Max Kellermann
6e04d66a35
release v0.18.13
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJUAxsyAAoJECNuiljG20USmRAP/2J/+kV5TRfqr7acFKh/aqip
RAefHTvHpYuAUDOi3WDVSZcmMnaYGKslZhbXhqchbRfR2oMwYhR+5gHIoxOp+EcL
09UF1fJfUnjg6B2zz6tggIWR53Dwxckg4xEaKtI2Wi3Gz+9Q/CiNlpWLJc0ONA5e
9gcz8pNK3oN0Em9c1KXahZKArzGdOGeytfSI3PLE+QnRiEyEDz1+StxIuyl72vr4
ar2EMa9Vdvb7ouNK0g8WqaEOzYyNDXhklIqc+zALQJGThY1xj6OCfQ8JVagJhzwB
UDuYfX1FylkN8LhF5pNzH1F0ANMozWcqeZlLLph6vuKkVBD7WUX4X1t82bwUlFDB
ppdA5pPkiXsqYnuhHML4GqL7LlI2wsMxUHK7v+A9+9hfGN9HIoFyOSLBjB1pyI93
yi8IPOq2a1BJQfQ2c69693ZS7WPxU6vOFKucKrk9PBlr2900SlvpMzIpZr1PMnGV
hoU8eLHOIW86wi5Ea2ycFbFyI1ZoyrKJmzcVJjPjZUT05jDV6bA2Gi1IG6gIhX1q
DiBfXUre+GISkLS4r8GcbG1FIXcv7fGjZ6Vols5di8lpYQ5oBu5aw2TEf8zukrHC
LzPRa2l6Mhe2OI7a/mmTaEYDINgCL//46hOU5mIbmB0XZS8Jf+D1/HBzqKpeqO7f
idENtbelqQdSsR5UU+R0
=c2vC
-----END PGP SIGNATURE-----
Merge tag 'v0.18.13'
2014-08-31 15:03:34 +02:00
Max Kellermann
75a89c5983
PlayerThread: use SongTime for elapsed_time
2014-08-29 13:20:58 +02:00
Max Kellermann
7c25d83f1c
Tag: use SignedSongTime for the song duration
2014-08-29 13:20:58 +02:00
Max Kellermann
127fe6ecf0
PlaylistEdit: pass std::chrono::duration to SetSongIdRange()
2014-08-28 13:03:18 +02:00
Max Kellermann
6ad933982f
DetachedSong: use std::chrono::duration for start_ms and end_ms
2014-08-28 13:03:18 +02:00
Max Kellermann
3952920492
Playlist: use std::chrono::duration for Seek*()
2014-08-28 06:42:19 +02:00
Max Kellermann
0f2a7226fb
PlayerControl: use std::chrono::duration for Seek()
2014-08-27 19:07:16 +02:00
Max Kellermann
aafff8fd5c
fs/output, fs/TextFile: move to fs/io/
2014-08-07 19:38:25 +02:00
Max Kellermann
9fb351a139
*Save, *State: use the OutputStream API instead of FILE*
2014-07-30 22:17:01 +02:00
Max Kellermann
80d9baa9e8
QueueSave: use the long format to save partial songs
...
Previously, only streams were saved with range and tags, but this is
necessary for all "partial" songs (e.g. CUE tracks).
2014-07-12 19:36:39 +02:00
Max Kellermann
751995ab95
QueueCommands: new command "rangeid"
...
Manipulates the playback range of a queued song.
2014-07-12 18:55:41 +02:00
Max Kellermann
46ff830daa
PlaylistEdit: fix typo in code comment
2014-07-11 21:37:06 +02:00
Max Kellermann
828cd6fd0b
Merge branch 'v0.18.x'
2014-07-11 21:33:50 +02:00
Max Kellermann
1c02b4b9f4
release v0.18.10
...
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJTRoKFAAoJECNuiljG20UScmgP/3bXQLBVqnGdMEzJio9qfTqz
inqbuaR8FrOSQFT5ULpYYipcjiqxCpG2ooE2M083F3wXDHF8u+j0S84NEvHQjv0T
WvA5EOOeEJS0o0gREZb8onO8NVwH+f1r4x34PAc4QbSeROiAiJRPmfTOZBDTaQkZ
Fy4CGte9UqLvUG10Jxpn1DgcBBeoge9Ruzm+drBLHh53lAfKZH6z9u23htNc4PH0
WMN3/orL7KZNxMtX37zqQDhkbPv2RjCWc0JJ8yxBzw3r/qG53GkmCBsStub6wKIi
iPgkoKXii+FAlg1oRmvVNELmOUDjhnBj8+g7q6WgJGpYqdcSCQBRIBnPPRn6Tfw3
wS7MtGoH7M4yihOfeburIzN0JiD4dtcnA7CrA9ghWt3C0Hci9Q/eni7xHgAuJ7Gp
fD0aEGeaQiQZC8r1UYkgvPuc+CXpsjPcpoN2TlYwDJ3VPQcikHVqTUkJxf5rEGbL
h5K0jhW/TzgT0quozd50w52X/n5J76X8oEng08271OPMlF+6gawGA2/AeDsomRTp
n8OPVutpyaGE3gKGYLGKj3cEnP15tQyt3U0kiU+ccG7osEPXr8JU/A4fipqcrwnN
lwejiIKzfZBU68kwS+gtQLiBncT3oh5tEiLJNzYYpPCF0wkDYt2u/rhRxnVjRoXO
5B9PRaOPuJ5N+6O2hGNS
=qsUE
-----END PGP SIGNATURE-----
Merge tag 'release-0.18.10'
2014-04-10 13:49:20 +02:00
Max Kellermann
1c772ef699
Playlist: use the Error library to return errors
2014-02-27 17:27:23 +01:00
Max Kellermann
809b89b5af
Playlist*: move to queue/
2014-02-27 17:12:42 +01:00
Max Kellermann
5ad2980d69
QueueSave: use class SongLoader
2014-02-03 23:32:31 +01:00
Max Kellermann
4465e2c46b
db: add compile-time option to disable database
2014-01-30 20:39:40 +01:00
Max Kellermann
9d34fc394c
Database*: move to db/
2014-01-24 16:38:44 +01:00
Max Kellermann
e199c33c6e
Client*: move to client/
2014-01-24 00:26:53 +01:00
Max Kellermann
129eb178eb
Queue*: move to queue/
2014-01-24 00:17:50 +01:00