auto-obs-rb-restart/AutoOBSRPRestart.lua
Mylloon ab30967e41
Some checks failed
Upload release / build (push) Failing after 2s
first release
2024-10-07 20:23:21 +02:00

51 lines
1.2 KiB
Lua

obs = obslua
local wait_time = 7200 -- Wait 2 hours before checks
local idle_time = 120 -- Wait for any input in the last 2 minutes
function script_description()
return "Automatically restarts the replay buffer when IDLE"
end
function script_load()
ffi = require("ffi")
ffi.cdef[[
void start_hook(void);
void stop_hook(void);
int last_time_input_received(void);
]]
monitor = ffi.load(script_path() .. "monitor.dll")
obs.timer_add(check_restart, wait_time * 1000)
end
function script_unload()
obs.timer_remove(check_restart)
obs.timer_remove(check_idle)
end
function check_restart()
monitor.start_hook()
obs.timer_add(check_idle, idle_time * 1000)
end
function check_idle()
local current_time = os.time()
local last_input_time = monitor.last_time_input_received()
if current_time - last_input_time >= wait_time then
monitor.stop_hook()
obs.timer_remove(check_idle)
restart_replay_buffer()
end
end
function restart_replay_buffer()
obs.obs_frontend_replay_buffer_stop()
obs.timer_add(start_replay_buffer, 2000)
end
function start_replay_buffer()
obs.timer_remove(start_replay_buffer)
obs.obs_frontend_replay_buffer_start()
end