use std::ptr;
use types::AiBool;
use ffi;
pub use log::LogStream::{Stdout, Stderr, Debugger, File };
use std::ffi::CString;
pub enum LogStream<'a> {
Stdout,
Stderr,
Debugger,
File(&'a str),
}
pub fn enable_verbose_logging(choice: bool) {
unsafe {
ffi::aiEnableVerboseLogging(AiBool::new(choice))
}
}
pub fn add_log_stream(log_type: LogStream) {
unsafe {
let null = ptr::null();
let log = match log_type {
File(fname) => ffi::aiGetPredefinedLogStream(ffi::DefaultLogStream_FILE, CString::new(fname).unwrap().as_ptr()),
Stdout =>
ffi::aiGetPredefinedLogStream(ffi::DefaultLogStream_STDOUT, null),
Stderr =>
ffi::aiGetPredefinedLogStream(ffi::DefaultLogStream_STDERR, null),
Debugger =>
ffi::aiGetPredefinedLogStream(ffi::DefaultLogStream_DEBUGGER, null),
};
ffi::aiAttachLogStream(&log);
}
}
pub fn detach_all_log_streams() {
unsafe {
ffi::aiDetachAllLogStreams();
}
}