summaryrefslogtreecommitdiffstats
path: root/player
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2020-03-21 14:02:53 +0100
committerwm4 <wm4@nowhere>2020-03-21 19:32:50 +0100
commit4a2fd2daf663ca4bd845466e924750213ceb1f46 (patch)
treecbd6ebe927af6bbb0e3f0a957bca7a57bcdeb1a4 /player
parent26ac6ead911bedf01b20d52e0696f70459ff0be2 (diff)
downloadmpv-4a2fd2daf663ca4bd845466e924750213ceb1f46.tar.bz2
mpv-4a2fd2daf663ca4bd845466e924750213ceb1f46.tar.xz
client API: actually warn against enabling any deprecated events
Like it was done for the "tick" event, but for all deprecated events. Not entirely effective, since the C API enables all events by default.
Diffstat (limited to 'player')
-rw-r--r--player/client.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/player/client.c b/player/client.c
index e05fc87303..f9f8cd48f6 100644
--- a/player/client.c
+++ b/player/client.c
@@ -833,6 +833,18 @@ int mp_client_send_event_dup(struct MPContext *mpctx, const char *client_name,
return mp_client_send_event(mpctx, client_name, 0, event, event_data.data);
}
+static bool deprecated_events[] = {
+ [MPV_EVENT_TRACKS_CHANGED] = true,
+ [MPV_EVENT_TRACK_SWITCHED] = true,
+ [MPV_EVENT_IDLE] = true,
+ [MPV_EVENT_PAUSE] = true,
+ [MPV_EVENT_UNPAUSE] = true,
+ [MPV_EVENT_TICK] = true,
+ [MPV_EVENT_SCRIPT_INPUT_DISPATCH] = true,
+ [MPV_EVENT_METADATA_UPDATE] = true,
+ [MPV_EVENT_CHAPTER_CHANGE] = true,
+};
+
int mpv_request_event(mpv_handle *ctx, mpv_event_id event, int enable)
{
if (!mpv_event_name(event) || enable < 0 || enable > 1)
@@ -843,8 +855,12 @@ int mpv_request_event(mpv_handle *ctx, mpv_event_id event, int enable)
pthread_mutex_lock(&ctx->lock);
uint64_t bit = 1ULL << event;
ctx->event_mask = enable ? ctx->event_mask | bit : ctx->event_mask & ~bit;
- if (enable && event == MPV_EVENT_TICK)
- MP_WARN(ctx, "The 'tick' event is deprecated and will be removed.\n");
+ if (enable && event < MP_ARRAY_SIZE(deprecated_events) &&
+ deprecated_events[event])
+ {
+ MP_WARN(ctx, "The '%s' event is deprecated and will be removed.\n",
+ mpv_event_name(event));
+ }
pthread_mutex_unlock(&ctx->lock);
return 0;
}