DOSBox-X
|
00001 /* 00002 * Copyright (C) 2002-2020 The DOSBox Team 00003 * 00004 * This program is free software; you can redistribute it and/or modify 00005 * it under the terms of the GNU General Public License as published by 00006 * the Free Software Foundation; either version 2 of the License, or 00007 * (at your option) any later version. 00008 * 00009 * This program is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 * GNU General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU General Public License along 00015 * with this program; if not, write to the Free Software Foundation, Inc., 00016 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 00017 */ 00018 00019 #ifndef DOSBOX_LOGGING_H 00020 #define DOSBOX_LOGGING_H 00021 00022 #include <stdio.h> 00023 #include "setup.h" 00024 00025 enum LOG_TYPES { 00026 LOG_ALL, 00027 LOG_VGA, LOG_VGAGFX,LOG_VGAMISC,LOG_INT10, 00028 LOG_SB,LOG_DMACONTROL, 00029 LOG_FPU,LOG_CPU,LOG_PAGING, 00030 LOG_FCB,LOG_FILES,LOG_IOCTL,LOG_EXEC,LOG_DOSMISC, 00031 LOG_PIT,LOG_KEYBOARD,LOG_PIC, 00032 LOG_MOUSE,LOG_BIOS,LOG_GUI,LOG_MISC, 00033 LOG_IO, 00034 LOG_PCI, 00035 LOG_VOODOO, 00036 LOG_MAX 00037 }; 00038 00039 enum LOG_SEVERITIES { 00040 LOG_DEBUG, 00041 LOG_NORMAL, 00042 LOG_WARN, 00043 LOG_ERROR, 00044 LOG_FATAL, 00045 LOG_NEVER 00046 }; 00047 00048 struct _LogGroup { 00049 char const* front; 00050 enum LOG_SEVERITIES min_severity; 00051 }; 00052 00053 extern _LogGroup loggrp[LOG_MAX]; 00054 extern FILE* debuglog; 00055 00056 class LOG 00057 { 00058 LOG_TYPES d_type; 00059 LOG_SEVERITIES d_severity; 00060 public: 00061 00062 LOG (LOG_TYPES type , LOG_SEVERITIES severity): 00063 d_type(type), 00064 d_severity(severity) 00065 {} 00066 00067 static void ParseEnableSetting(_LogGroup &group,const char *setting); 00068 static void SetupConfigSection(void); 00069 static void EarlyInit(); 00070 static void Init(); 00071 static void Exit(); 00072 00073 void operator() (char const* format, ...) GCC_ATTRIBUTE(__format__(__printf__, 2, 3)); //../src/debug/debug_gui.cpp 00074 }; 00075 00076 void DEBUG_ShowMsg(char const* format,...) GCC_ATTRIBUTE(__format__(__printf__, 1, 2)); 00077 00078 #define LOG_MSG DEBUG_ShowMsg 00079 00080 #endif //DOSBOX_LOGGING_H 00081