summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DOCS/man/input.rst13
-rw-r--r--player/command.c4
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}
};