# A source to dump
# s = (...)
# A function to stop
# the current dump source
stop_f = ref (fun () -> ())
# You should make sure you never
# do a start when another dump
# is running.
# Start to dump
def start_dump(file_name) =
# We create a new file output
# source
s = output.file(%vorbis,
fallible=true,
on_start={log("Starting dump with file #{file_name}.ogg")},
reopen_on_metadata=false,
"#{file_name}",
s)
# We update the stop function
stop_f := fun () -> source.shutdown(s)
end
# Stop dump
def stop_dump() =
f = !stop_f
f ()
end
# Some telnet/server command
server.register(namespace="dump",
description="Start dumping.",
usage="dump.start <filename>",
"start",
fun (s) -> begin start_dump(s) "Done!" end)
server.register(namespace="dump",
description="Stop dumping.",
usage="dump.stop",
"stop",
fun (s) -> begin stop_dump() "Done!" end)
It looks like you're new here. If you want to get involved, click one of these buttons!