diff options
-rw-r--r-- | DOCS/man/input.rst | 13 | ||||
-rw-r--r-- | player/command.c | 4 |
2 files changed, 10 insertions, 7 deletions
diff --git a/DOCS/man/input.rst b/DOCS/man/input.rst index df045a4e26..20c61f38a1 100644 --- a/DOCS/man/input.rst +++ b/DOCS/man/input.rst @@ -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 diff --git a/player/command.c b/player/command.c index a0b459d6fa..f6c20a6cb1 100644 --- a/player/command.c +++ b/player/command.c @@ -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} }; |