ntgcalls 3.0.0-beta11

A Library for creating group calls and P2P calls with WebRTC and MTProto
use crate::util::cstr;
use ntgcalls_sys as sys;
use std::os::raw::c_void;

unsafe extern "C" fn trampoline(message: sys::ntg_log_message, _user_data: *mut c_void) {
    let level = match message.level {
        sys::NTG_LOG_ERROR => log::Level::Error,
        sys::NTG_LOG_WARNING => log::Level::Warn,
        sys::NTG_LOG_INFO => log::Level::Info,
        _ => log::Level::Debug,
    };
    let target = if message.source == sys::NTG_LOG_SOURCE_SELF {
        "ntgcalls"
    } else {
        "ntgcalls::webrtc"
    };
    log::log!(target: target, level, "{}:{} {}", cstr(message.file), message.line, cstr(message.message));
}

pub fn init_logging() {
    unsafe { sys::ntg_set_log_callback(Some(trampoline), std::ptr::null_mut()) };
}