From 218d6643e940dde2a01260cf8def70efc100cd43 Mon Sep 17 00:00:00 2001
From: wm4 <wm4@nowhere>
Date: Sat, 21 Mar 2020 19:31:58 +0100
Subject: client API, lua, ipc: unify event struct return

Both Lua and the JSON IPC code need to convert the mpv_event struct (and
everything it points to) to Lua tables or JSON.

I was getting sick of having to make the same changes to Lua and IPC. Do
what has been done everywhere else, and let the core handle this by
going through mpv_node (which is supposed to serve both Lua tables and
JSON, and potentially other scripting language backends). Expose it as
new libmpv API function.

The new API is still a bit "rough" and support for other event types
might be added in the future.

This silently adds support for the playlist_entry_id fields to both Lua
and JSON IPC.

There is a small API change for Lua; I don't think this matters, so I
didn't care about compatibility. The new code in client.c is mashed up
from the Lua and the IPC code. The manpage additions are moved from the
Lua docs, and made slightly more "general".

Some danger for unintended regressions both in Lua and IPC. Also damn
these node functions suck, expect crashes due to UB.

Not sure why this became more code instead of less compared to before
(according to the diff stat), even though some code duplication across
Lua and IPC was removed. Software development sucks.
---
 libmpv/mpv.def | 1 +
 1 file changed, 1 insertion(+)

(limited to 'libmpv/mpv.def')

diff --git a/libmpv/mpv.def b/libmpv/mpv.def
index a2c6fd1ac9..6e20a668de 100644
--- a/libmpv/mpv.def
+++ b/libmpv/mpv.def
@@ -13,6 +13,7 @@ mpv_create_weak_client
 mpv_destroy
 mpv_detach_destroy
 mpv_error_string
+mpv_event_to_node
 mpv_event_name
 mpv_free
 mpv_free_node_contents
-- 
cgit v1.2.3

