command: adjust previous commit

Due to the current code structure, the "current" entry and the entry
which is playing can be different. This is probably silly, but still
try to mark the entries correctly.

Refs #1260.
This commit is contained in:
wm4 2014-11-17 22:43:30 +01:00
parent ebd41bdf6c
commit 469eb321e8
2 changed files with 10 additions and 7 deletions

View File

@ -1214,12 +1214,12 @@ Property list
``playlist/N/filename``
Filename of the Nth entry.
``playlist/N/playing``
``playlist/N/current``, ``playlist/N/playing``
``yes`` if this entry is currently playing (or being loaded).
Unavailable or ``no`` otherwise. Can be set incorrectly when changing
files, because it's not set to ``yes`` for the brief time when the
previous file was unloaded, and loading the new entry has not started
yet. (Since mpv 0.7.0.)
Unavailable or ``no`` otherwise. When changing files, ``current`` and
``playing`` can be different, because the currently playing file hasn't
been unloaded yet; in this case, ``current`` refers to the new
selection. (Since mpv 0.7.0.)
When querying the property with the client API using ``MPV_FORMAT_NODE``,
or with Lua ``mp.get_property_native``, this will return a mpv_node with
@ -1230,7 +1230,8 @@ Property list
MPV_FORMAT_NODE_ARRAY
MPV_FORMAT_NODE_MAP (for each playlist entry)
"filename" MPV_FORMAT_STRING
"playing" MPV_FORMAT_FLAG (might be missing; since mpv 0.7.0)
"current" MPV_FORMAT_FLAG (might be missing; since mpv 0.7.0)
"playing" MPV_FORMAT_FLAG (same)
``track-list``
List of audio/video/sub tracks, current entry marked. Currently, the raw

View File

@ -2849,9 +2849,11 @@ static int get_playlist_entry(int item, int action, void *arg, void *ctx)
if (!e)
return M_PROPERTY_ERROR;
bool playing = e == mpctx->playing;
bool current = mpctx->playlist->current == e;
bool playing = mpctx->playing == e;
struct m_sub_property props[] = {
{"filename", SUB_PROP_STR(e->filename)},
{"current", SUB_PROP_FLAG(1), .unavailable = !current},
{"playing", SUB_PROP_FLAG(1), .unavailable = !playing},
{0}
};