mirror of https://github.com/mpv-player/mpv
command: add "idle" property
Yes, it's redundant with events.
This commit is contained in:
parent
10a2f69347
commit
c6dc0c6d99
|
@ -894,6 +894,10 @@ Property list
|
||||||
``pause`` (RW)
|
``pause`` (RW)
|
||||||
Pause status. This is usually ``yes`` or ``no``. See ``--pause``.
|
Pause status. This is usually ``yes`` or ``no``. See ``--pause``.
|
||||||
|
|
||||||
|
``idle``
|
||||||
|
Return ``yes`` if no file is loaded, but the player is staying around
|
||||||
|
because of the ``--idle`` option.
|
||||||
|
|
||||||
``core-idle``
|
``core-idle``
|
||||||
Return ``yes`` if the playback core is paused, otherwise ``no``. This can
|
Return ``yes`` if the playback core is paused, otherwise ``no``. This can
|
||||||
be different ``pause`` in special situations, such as when the player
|
be different ``pause`` in special situations, such as when the player
|
||||||
|
|
|
@ -72,6 +72,8 @@
|
||||||
#include "core.h"
|
#include "core.h"
|
||||||
|
|
||||||
struct command_ctx {
|
struct command_ctx {
|
||||||
|
bool is_idle;
|
||||||
|
|
||||||
double last_seek_time;
|
double last_seek_time;
|
||||||
double last_seek_pts;
|
double last_seek_pts;
|
||||||
|
|
||||||
|
@ -1160,6 +1162,14 @@ static int mp_property_core_idle(void *ctx, struct m_property *prop,
|
||||||
return m_property_flag_ro(action, arg, idle);
|
return m_property_flag_ro(action, arg, idle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int mp_property_idle(void *ctx, struct m_property *prop,
|
||||||
|
int action, void *arg)
|
||||||
|
{
|
||||||
|
MPContext *mpctx = ctx;
|
||||||
|
struct command_ctx *cmd = mpctx->command_ctx;
|
||||||
|
return m_property_flag_ro(action, arg, cmd->is_idle);
|
||||||
|
}
|
||||||
|
|
||||||
static int mp_property_eof_reached(void *ctx, struct m_property *prop,
|
static int mp_property_eof_reached(void *ctx, struct m_property *prop,
|
||||||
int action, void *arg)
|
int action, void *arg)
|
||||||
{
|
{
|
||||||
|
@ -3195,6 +3205,7 @@ static const struct m_property mp_properties[] = {
|
||||||
{"hr-seek", mp_property_generic_option},
|
{"hr-seek", mp_property_generic_option},
|
||||||
{"clock", mp_property_clock},
|
{"clock", mp_property_clock},
|
||||||
{"seekable", mp_property_seekable},
|
{"seekable", mp_property_seekable},
|
||||||
|
{"idle", mp_property_idle},
|
||||||
|
|
||||||
{"chapter-list", mp_property_list_chapters},
|
{"chapter-list", mp_property_list_chapters},
|
||||||
{"track-list", property_list_tracks},
|
{"track-list", property_list_tracks},
|
||||||
|
@ -4633,9 +4644,12 @@ static void command_event(struct MPContext *mpctx, int event, void *arg)
|
||||||
}
|
}
|
||||||
ctx->prev_pts = now;
|
ctx->prev_pts = now;
|
||||||
}
|
}
|
||||||
if (event == MPV_EVENT_SEEK) {
|
if (event == MPV_EVENT_SEEK)
|
||||||
ctx->prev_pts = MP_NOPTS_VALUE;
|
ctx->prev_pts = MP_NOPTS_VALUE;
|
||||||
}
|
if (event == MPV_EVENT_IDLE)
|
||||||
|
ctx->is_idle = true;
|
||||||
|
if (event == MPV_EVENT_START_FILE)
|
||||||
|
ctx->is_idle = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void mp_notify(struct MPContext *mpctx, int event, void *arg)
|
void mp_notify(struct MPContext *mpctx, int event, void *arg)
|
||||||
|
|
Loading…
Reference in New Issue