diff options
Diffstat (limited to 'player/lua/defaults.lua')
-rw-r--r-- | player/lua/defaults.lua | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/player/lua/defaults.lua b/player/lua/defaults.lua index f2983e8dc3..29e513f4ea 100644 --- a/player/lua/defaults.lua +++ b/player/lua/defaults.lua @@ -676,4 +676,28 @@ function mp_utils.subprocess_detached(t) mp.commandv("run", unpack(t.args)) end +function mp_utils.shared_script_property_set(name, value) + if value ~= nil then + -- no such thing as change-list with mpv_node, so build a string value + mp.commandv("change-list", "shared-script-properties", "append", + name .. "=" .. value) + else + mp.commandv("change-list", "shared-script-properties", "remove", name) + end +end + +function mp_utils.shared_script_property_get(name) + local map = mp.get_property_native("shared-script-properties") + return map and map[name] +end + +-- cb(name, value) on change and on init +function mp_utils.shared_script_property_observe(name, cb) + -- it's _very_ wasteful to observe the mpv core "super" property for every + -- shared sub-property, but then again you shouldn't use this + mp.observe_property("shared-script-properties", "native", function(_, val) + cb(name, val and val[name]) + end) +end + return {} |