diff options
author | wm4 <wm4@nowhere> | 2014-02-10 21:01:35 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2014-02-10 21:01:35 +0100 |
commit | 88ae914b1ef2b76362c527985bd459b0d8226d45 (patch) | |
tree | fbab27d01347c98fd36348821fafc47037193810 /player/command.c | |
parent | c6166ff448432dc74c300933e5c93838d06c420a (diff) | |
download | mpv-88ae914b1ef2b76362c527985bd459b0d8226d45.tar.bz2 mpv-88ae914b1ef2b76362c527985bd459b0d8226d45.tar.xz |
Add a client API
Add a client API, which is intended to be a stable API to get some rough
control over the player. Basically, it reflects what can be done with
input.conf commands or the old slavemode. It will replace the old
slavemode (and enable the implementation of a new slave protocol).
Diffstat (limited to 'player/command.c')
-rw-r--r-- | player/command.c | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/player/command.c b/player/command.c index 1b2c6abab3..2d0f7c0d9a 100644 --- a/player/command.c +++ b/player/command.c @@ -30,6 +30,7 @@ #include "config.h" #include "talloc.h" +#include "client.h" #include "common/msg.h" #include "common/msg_control.h" #include "command.h" @@ -3178,16 +3179,14 @@ void command_init(struct MPContext *mpctx) }; } -// Notify that a property might have changed. -void mp_notify_property(struct MPContext *mpctx, const char *property) -{ - mp_notify(mpctx, MP_EVENT_PROPERTY, (void *)property); -} - -void mp_notify(struct MPContext *mpctx, enum mp_event event, void *arg) +void mp_notify(struct MPContext *mpctx, int event, void *arg) { struct command_ctx *ctx = mpctx->command_ctx; ctx->events |= 1u << event; + if (event == MPV_EVENT_START_FILE) + ctx->last_seek_pts = MP_NOPTS_VALUE; + + mp_client_broadcast_event(mpctx, event, arg); } static void handle_script_event(struct MPContext *mpctx, const char *name, @@ -3202,10 +3201,10 @@ void mp_flush_events(struct MPContext *mpctx) { struct command_ctx *ctx = mpctx->command_ctx; - ctx->events |= (1u << MP_EVENT_TICK); + ctx->events |= (1u << MPV_EVENT_TICK); for (int n = 0; n < 16; n++) { - enum mp_event event = n; + int event = n; unsigned mask = 1 << event; if (ctx->events & mask) { // The event handler could set event flags again; in this case let @@ -3213,17 +3212,15 @@ void mp_flush_events(struct MPContext *mpctx) ctx->events &= ~mask; const char *name = NULL; switch (event) { - case MP_EVENT_TICK: name = "tick"; break; - case MP_EVENT_TRACKS_CHANGED: name = "track-layout"; break; - case MP_EVENT_PLAYBACK_START: name = "playback-start"; break; - case MP_EVENT_START_FILE: name = "start"; break; - case MP_EVENT_END_FILE: name = "end"; break; + case MPV_EVENT_TICK: name = "tick"; break; + case MPV_EVENT_TRACKS_CHANGED: name = "track-layout"; break; + case MPV_EVENT_PLAYBACK_START: name = "playback-start"; break; + case MPV_EVENT_START_FILE: name = "start"; break; + case MPV_EVENT_END_FILE: name = "end"; break; default: ; } if (name) handle_script_event(mpctx, name, ""); - if (event == MP_EVENT_START_FILE) - ctx->last_seek_pts = MP_NOPTS_VALUE; } } } |