Merge pull request #1679 from ergo720/error_log_lv

Add error log level to logging system
This commit is contained in:
RadWolfie 2019-07-20 22:20:45 -05:00 committed by GitHub
commit d4f8ec93bf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 18 additions and 11 deletions

View File

@ -100,6 +100,7 @@ std::atomic_int g_CurrentLogLevel = to_underlying(LOG_LEVEL::INFO);
const char log_debug[] = "DEBUG: ";
const char log_info[] = "INFO : ";
const char log_warn[] = "WARN : ";
const char log_error[] = "ERROR: ";
const char log_fatal[] = "FATAL: ";
const char log_unkwn[] = "???? : ";
@ -131,6 +132,9 @@ void NTAPI EmuLogEx(CXBXR_MODULE cxbxr_module, LOG_LEVEL level, const char *szWa
case LOG_LEVEL::WARNING:
level_str = log_warn;
break;
case LOG_LEVEL::ERROR2:
level_str = log_error;
break;
case LOG_LEVEL::FATAL:
level_str = log_fatal;
break;

View File

@ -18,6 +18,7 @@
// * 59 Temple Place - Suite 330, Bostom, MA 02111-1307, USA.
// *
// * (c) 2016 Patrick van Logchem <pvanlogchem@gmail.com>
// * (c) 2019 ergo720
// *
// * All rights reserved
// *
@ -34,10 +35,12 @@
#include <atomic> // For atomic_bool and atomic_uint
#include "common\util\CxbxUtil.h" // For g_bPrintfOn and to_underlying
// NOTE: using ERROR2 since windows.h imports an ERROR macro which would conflict otherwise
typedef enum class _LOG_LEVEL {
DEBUG = 0,
INFO,
WARNING,
ERROR2,
FATAL,
MAX,
}LOG_LEVEL;

View File

@ -130,7 +130,7 @@ void InitXboxControllerHostBridge(void)
//disconnect to host if the host port of xinput exceeds the total xinput controller connected to host.
if (g_XboxControllerHostBridge[port].dwHostPort >= total_xinput_gamepad) {
g_XboxControllerHostBridge[port].dwHostType = X_XONTROLLER_HOST_BRIDGE_HOSTTYPE_NOTCONNECT;
printf("InitXboxControllerHostBridge: Host XInput port greater then total xinput controller connected. disconnect xbox port from host!\n");
EmuLog(LOG_LEVEL::DEBUG, "InitXboxControllerHostBridge: Host XInput port greater then total xinput controller connected. disconnect xbox port from host!");
}
break;
case X_XONTROLLER_HOST_BRIDGE_HOSTTYPE_DINPUT:
@ -148,7 +148,7 @@ void InitXboxControllerHostBridge(void)
//find corresponding XboxDeviceInfo
index=FindDeviceInfoIndexByXboxType(g_XboxControllerHostBridge[port].XboxDeviceInfo.ucType);
if (index == -1) {
printf("XboxControllerHostBridge XboxDeviceInfo.ucType: %d not found in global XboxInputDeviceInfo vector!\n", g_XboxControllerHostBridge[port].XboxDeviceInfo.ucType);
EmuLog(LOG_LEVEL::DEBUG, "XboxControllerHostBridge XboxDeviceInfo.ucType: %d not found in global XboxInputDeviceInfo vector!", g_XboxControllerHostBridge[port].XboxDeviceInfo.ucType);
}
//copy XboxDeviceInfo from the global vector.
g_XboxControllerHostBridge[port].XboxDeviceInfo.ucSubType = g_XboxInputDeviceInfo[index].ucSubType;

View File

@ -206,7 +206,7 @@ xboxkrnl::VOID NTAPI xboxkrnl::KiCheckTimerTable
if (Timer->DueTime.QuadPart <= CurrentTime.QuadPart)
{
/* This is bad, breakpoint! */
EmuLog(LOG_LEVEL::WARNING, "Invalid timer state!");
EmuLog(LOG_LEVEL::ERROR2, "Invalid timer state!");
DbgBreakPoint();
}
}

View File

@ -366,7 +366,7 @@ void OHCI::OHCI_FrameBoundaryWorker()
// Writeback HCCA
if (OHCI_WriteHCCA(m_Registers.HcHCCA, &hcca)) {
EmuLog(LOG_LEVEL::WARNING, "HCCA write error at physical address 0x%X", m_Registers.HcHCCA);
EmuLog(LOG_LEVEL::ERROR2, "HCCA write error at physical address 0x%X", m_Registers.HcHCCA);
OHCI_FatalError();
}
@ -381,7 +381,7 @@ void OHCI::OHCI_FatalError()
OHCI_SetInterrupt(OHCI_INTR_UE);
OHCI_BusStop();
EmuLog(LOG_LEVEL::WARNING, "An unrecoverable error has occoured!\n");
EmuLog(LOG_LEVEL::ERROR2, "An unrecoverable error has occoured!\n");
}
bool OHCI::OHCI_ReadHCCA(xbaddr Paddr, OHCI_HCCA* Hcca)
@ -498,7 +498,7 @@ int OHCI::OHCI_ServiceEDlist(xbaddr Head, int Completion)
for (current = Head; current; current = next_ed) {
if (OHCI_ReadED(current, &ed)) {
EmuLog(LOG_LEVEL::WARNING, "ED read error at physical address 0x%X", current);
EmuLog(LOG_LEVEL::ERROR2, "ED read error at physical address 0x%X", current);
OHCI_FatalError();
return 0;
}
@ -580,7 +580,7 @@ int OHCI::OHCI_ServiceTD(OHCI_ED* Ed)
return 1;
}
if (OHCI_ReadTD(addr, &td)) {
EmuLog(LOG_LEVEL::WARNING, "TD read error at physical address 0x%X", addr);
EmuLog(LOG_LEVEL::ERROR2, "TD read error at physical address 0x%X", addr);
OHCI_FatalError();
return 0;
}
@ -1584,7 +1584,7 @@ int OHCI::OHCI_ServiceIsoTD(OHCI_ED* ed, int completion)
addr = ed->HeadP & OHCI_DPTR_MASK;
if (OHCI_ReadIsoTD(addr, &iso_td)) {
EmuLog(LOG_LEVEL::DEBUG, "ISO_TD read error at physical address 0x%X", addr);
EmuLog(LOG_LEVEL::ERROR2, "ISO_TD read error at physical address 0x%X", addr);
OHCI_FatalError();
return 0;
}

View File

@ -17,7 +17,7 @@
// * If not, write to the Free Software Foundation, Inc.,
// * 59 Temple Place - Suite 330, Bostom, MA 02111-1307, USA.
// *
// * (c) 2018 ergo720
// * (c) 2018-2019 ergo720
// *
// * All rights reserved
// *
@ -125,7 +125,7 @@ INT_PTR CALLBACK DlgLogConfigProc(HWND hWndDlg, UINT uMsg, WPARAM wParam, LPARAM
hHandle = GetDlgItem(hWndDlg, IDC_EVENT_LV);
TempLevel = to_underlying(LOG_LEVEL::DEBUG);
for (auto i : { "Debug" , "Info" ,"Warning", "Fatal" }) {
for (auto i : { "Debug" , "Info" ,"Warning", "Error", "Fatal" }) {
LRESULT index = SendMessage(hHandle, CB_ADDSTRING, 0, reinterpret_cast<LPARAM>(i));
SendMessage(hHandle, CB_SETITEMDATA, index, TempLevel);
TempLevel++;