command: playlist property: return if an entry is currently playing

This actually doesn't even write/return the new sub-property, because
I dislike the idea of dumping that field for every single playlist
entry, even though it's "needed" only for one.

Fixes #1260.
This commit is contained in:
wm4 2014-11-17 22:07:50 +01:00
parent fb86750a67
commit ebd41bdf6c
2 changed files with 10 additions and 0 deletions

View File

@ -1214,6 +1214,13 @@ Property list
``playlist/N/filename``
Filename of the Nth entry.
``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.)
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
the following contents:
@ -1223,6 +1230,7 @@ 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)
``track-list``
List of audio/video/sub tracks, current entry marked. Currently, the raw

View File

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