# 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", "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)