private void OnLogCallback(void *data, libvlc_log_level level, void *ctx, char *fmt, char *args) { fixed(char *buff = _buff._buff) { _msg = Marshal.PtrToStringAnsi(new IntPtr(buff), vsprintf(buff, fmt, args)); } switch (level) { case libvlc_log_level.LIBVLC_DEBUG: //m_logger.Debug(_msg); break; case libvlc_log_level.LIBVLC_NOTICE: m_logger.Info(_msg); break; case libvlc_log_level.LIBVLC_WARNING: m_logger.Warning(_msg); break; case libvlc_log_level.LIBVLC_ERROR: default: m_logger.Error(_msg); break; } _msg = null; }
private void OnLogCallback(void *data, libvlc_log_level level, void *ctx, char *fmt, char *args) { try { char * buffer = stackalloc char[BUFFER_SIZE]; int len = vsprintf(buffer, fmt, args); string msg = Marshal.PtrToStringAnsi(new IntPtr(buffer), len); switch (level) { case libvlc_log_level.LIBVLC_DEBUG: m_logger.Debug(msg); break; case libvlc_log_level.LIBVLC_NOTICE: m_logger.Info(msg); break; case libvlc_log_level.LIBVLC_WARNING: m_logger.Warning(msg); break; case libvlc_log_level.LIBVLC_ERROR: default: m_logger.Error(msg); break; } } catch (Exception ex) { m_logger.Error("Failed to handle log callback, reason : " + ex.Message); } }
private void OnLogCallback(void* data, libvlc_log_level level, char* fmt, char* args) { try { char* buffer = stackalloc char[BUFFER_SIZE]; int len = vsprintf(buffer, fmt, args); string msg = Marshal.PtrToStringAnsi(new IntPtr(buffer), len); switch (level) { case libvlc_log_level.LIBVLC_DEBUG: m_logger.Debug(msg); break; case libvlc_log_level.LIBVLC_NOTICE: m_logger.Info(msg); break; case libvlc_log_level.LIBVLC_WARNING: m_logger.Warning(msg); break; case libvlc_log_level.LIBVLC_ERROR: default: m_logger.Error(msg); break; } } catch (Exception ex) { m_logger.Error("Failed to handle log callback, reason : " + ex.Message); } }
private void NotifySubscribers(libvlc_log_level level, string msg) { LogMessage logMsg = new LogMessage((LogLevel)level, msg); lock (m_subscribers) { foreach (var item in m_subscribers) { if (item.Filter == null) { item.Callback(logMsg); } else if (item.Filter(logMsg)) { item.Callback(logMsg); } } } }