summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2014-11-17 22:43:30 +0100
committerwm4 <wm4@nowhere>2014-11-17 22:48:38 +0100
commit469eb321e8ec123936ebe74ab01e1c24341ba486 (patch)
tree38216c2680be1a1ce6f1d0d01387df55c0d2ebf5
parentebd41bdf6c04bdad5a6e4a737bbd2d338f2c8887 (diff)
downloadmpv-469eb321e8ec123936ebe74ab01e1c24341ba486.tar.bz2
mpv-469eb321e8ec123936ebe74ab01e1c24341ba486.tar.xz
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.
-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}
};