summaryrefslogtreecommitdiff
path: root/mac/.config/mpv/script-modules/mpvSockets.lua
blob: d745540aab3e7c3a4d7f51859bfa71e82f4c528e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
-- mpvSockets, one socket per instance, removes socket on exit

local utils = require("mp.utils")

local function get_temp_path()
	local directory_seperator = package.config:match("([^\n]*)\n?")
	local example_temp_file_path = os.tmpname()

	-- remove generated temp file
	pcall(os.remove, example_temp_file_path)

	local seperator_idx = example_temp_file_path:reverse():find(directory_seperator)
	local temp_path_length = #example_temp_file_path - seperator_idx

	return example_temp_file_path:sub(1, temp_path_length)
end

tempDir = get_temp_path()

function join_paths(...)
	local arg = { ... }
	path = ""
	for i, v in ipairs(arg) do
		path = utils.join_path(path, tostring(v))
	end
	return path
end

ppid = utils.getpid()
os.execute("mkdir " .. join_paths(tempDir, "mpvSockets") .. " 2>/dev/null")
mp.set_property("options/input-ipc-server", join_paths(tempDir, "mpvSockets", ppid))

function shutdown_handler()
	os.remove(join_paths(tempDir, "mpvSockets", ppid))
end
mp.register_event("shutdown", shutdown_handler)