Ejemplo n.º 1
0
 public static extern IntPtr libvlc_log_iterator_next(IntPtr libvlc_log_iterator_t, ref libvlc_log_message_t p_buffer, ref libvlc_exception_t exception);
Ejemplo n.º 2
0
 public static extern IntPtr libvlc_log_iterator_next(IntPtr libvlc_log_iterator_t, ref libvlc_log_message_t p_buffer, ref libvlc_exception_t exception);
Ejemplo n.º 3
0
 public void UpdateMessages() {
     VerifyObjectIsNotDisposed();
     //
     libvlc_exception_t exc = new libvlc_exception_t();
     LibVlcInterop.libvlc_exception_init(ref exc);
     IntPtr iterator = LibVlcInterop.libvlc_log_get_iterator(descriptor, ref exc);
     if (exc.b_raised != 0) {
         throw new VlcInternalException(exc.Message);
     }
     //
     try {
         while (0 != LibVlcInterop.libvlc_log_iterator_has_next(iterator, ref exc)) {
             if (exc.b_raised != 0) {
                 throw new VlcInternalException(exc.Message);
             }
             //
             libvlc_log_message_t messageBuffer = new libvlc_log_message_t();
             messageBuffer.sizeof_msg = Convert.ToUInt32(Marshal.SizeOf(typeof(libvlc_log_message_t)));
             IntPtr ptrStructRes = LibVlcInterop.libvlc_log_iterator_next(iterator, ref messageBuffer, ref exc);
             if (exc.b_raised != 0) {
                 throw new VlcInternalException(exc.Message);
             }
             //
             libvlc_log_message_t msgRes = (libvlc_log_message_t)Marshal.PtrToStructure(ptrStructRes, typeof(libvlc_log_message_t));
             string text = String.Format("{0} {1} {2} : {3}", msgRes.Type,msgRes.Name,msgRes.Header,msgRes.Message);
             //
             switch (msgRes.Severity) {
                 case libvlc_log_messate_t_severity.INFO : {
                     // INFO
                     logger.Info(text);
                     break;
                 }
                 case libvlc_log_messate_t_severity.ERR: {
                     // ERR
                     logger.Error(text);
                     break;
                 }
                 case libvlc_log_messate_t_severity.WARN: {
                     // WARN
                     logger.Warn(text);
                     break;
                 }
                 case libvlc_log_messate_t_severity.DBG: {
                     // DBG
                     logger.Debug(text);
                     break;
                 }
                 default: {
                     logger.Trace("Unknown severity : " + text);
                     break;
                 }
             }
         }
     } finally {
         LibVlcInterop.libvlc_log_iterator_free(iterator, ref exc);
     }
 }