⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 log.c

📁 这个库实现了录象功能
💻 C
字号:
/******************************************************************************* log.c libquicktime - A library for reading and writing quicktime/avi/mp4 files. http://libquicktime.sourceforge.net Copyright (C) 2002 Heroine Virtual Ltd. Copyright (C) 2002-2007 Members of the libquicktime project. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA*******************************************************************************/ #include "lqt_private.h"#include <stdlib.h>#include <stdarg.h>#include <stdio.h>#include <libintl.h>static struct  {  lqt_log_level_t level;  const char * name;  }level_names[] =  {    { LQT_LOG_DEBUG,   "Debug" },    { LQT_LOG_WARNING, "Warning" },    { LQT_LOG_ERROR,   "Error" },    { LQT_LOG_INFO,    "Info" },    { 0,              (char*)0 }  };static const char * log_level_to_string(lqt_log_level_t level)  {  int index = 0;  while(level_names[index].name)    {    if(level_names[index].level == level)      return level_names[index].name;    index++;    }  return (char*)0;  }static lqt_log_callback_t log_callback;static void * log_data;static int log_mask = LQT_LOG_ERROR | LQT_LOG_WARNING;void lqt_set_log_callback(lqt_log_callback_t cb, void * data)  {  log_callback = cb;  log_data = data;  }void lqt_logs(quicktime_t * file, lqt_log_level_t level,              const char * domain, const char * msg_string)  {  if(!file || !file->log_callback)    {    if(log_callback)      log_callback(level, domain, msg_string, log_data);    else      fprintf(stderr, "[%s] %s: %s\n",              domain, log_level_to_string(level), msg_string);    }  else    {    file->log_callback(level, domain, msg_string, file->log_data);    }  }void lqt_log(quicktime_t * file, lqt_log_level_t level,             const char * domain, const char * format, ...)  {  char * msg_string;  char * format_tr;  va_list argp; /* arg ptr */#ifndef HAVE_VASPRINTF  int len;#endif  if((!file || !file->log_callback) && !log_callback && !(level & log_mask))    return;    lqt_translation_init();    va_start( argp, format);  format_tr = dgettext(PACKAGE, format);    #ifndef HAVE_VASPRINTF  len = vsnprintf((char*)0, 0, format_tr, argp);  msg_string = malloc(len+1);  vsnprintf(msg_string, len+1, format_tr, argp);#else  vasprintf(&msg_string, format_tr, argp);#endif  va_end(argp);  lqt_logs(file, level, domain, msg_string);  free(msg_string);  }void lqt_dump(const char * format, ...)  {  va_list argp; /* arg ptr */  va_start( argp, format);    vfprintf(stdout, format, argp);    va_end(argp);  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -