Merge pull request #1679 from ergo720/error_log_lv
Add error log level to logging system
This commit is contained in:
commit
d4f8ec93bf
|
@ -100,6 +100,7 @@ std::atomic_int g_CurrentLogLevel = to_underlying(LOG_LEVEL::INFO);
|
||||||
const char log_debug[] = "DEBUG: ";
|
const char log_debug[] = "DEBUG: ";
|
||||||
const char log_info[] = "INFO : ";
|
const char log_info[] = "INFO : ";
|
||||||
const char log_warn[] = "WARN : ";
|
const char log_warn[] = "WARN : ";
|
||||||
|
const char log_error[] = "ERROR: ";
|
||||||
const char log_fatal[] = "FATAL: ";
|
const char log_fatal[] = "FATAL: ";
|
||||||
const char log_unkwn[] = "???? : ";
|
const char log_unkwn[] = "???? : ";
|
||||||
|
|
||||||
|
@ -130,6 +131,9 @@ void NTAPI EmuLogEx(CXBXR_MODULE cxbxr_module, LOG_LEVEL level, const char *szWa
|
||||||
break;
|
break;
|
||||||
case LOG_LEVEL::WARNING:
|
case LOG_LEVEL::WARNING:
|
||||||
level_str = log_warn;
|
level_str = log_warn;
|
||||||
|
break;
|
||||||
|
case LOG_LEVEL::ERROR2:
|
||||||
|
level_str = log_error;
|
||||||
break;
|
break;
|
||||||
case LOG_LEVEL::FATAL:
|
case LOG_LEVEL::FATAL:
|
||||||
level_str = log_fatal;
|
level_str = log_fatal;
|
||||||
|
|
|
@ -17,7 +17,8 @@
|
||||||
// * If not, write to the Free Software Foundation, Inc.,
|
// * If not, write to the Free Software Foundation, Inc.,
|
||||||
// * 59 Temple Place - Suite 330, Bostom, MA 02111-1307, USA.
|
// * 59 Temple Place - Suite 330, Bostom, MA 02111-1307, USA.
|
||||||
// *
|
// *
|
||||||
// * (c) 2016 Patrick van Logchem <pvanlogchem@gmail.com>
|
// * (c) 2016 Patrick van Logchem <pvanlogchem@gmail.com>
|
||||||
|
// * (c) 2019 ergo720
|
||||||
// *
|
// *
|
||||||
// * All rights reserved
|
// * All rights reserved
|
||||||
// *
|
// *
|
||||||
|
@ -34,10 +35,12 @@
|
||||||
#include <atomic> // For atomic_bool and atomic_uint
|
#include <atomic> // For atomic_bool and atomic_uint
|
||||||
#include "common\util\CxbxUtil.h" // For g_bPrintfOn and to_underlying
|
#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 {
|
typedef enum class _LOG_LEVEL {
|
||||||
DEBUG = 0,
|
DEBUG = 0,
|
||||||
INFO,
|
INFO,
|
||||||
WARNING,
|
WARNING,
|
||||||
|
ERROR2,
|
||||||
FATAL,
|
FATAL,
|
||||||
MAX,
|
MAX,
|
||||||
}LOG_LEVEL;
|
}LOG_LEVEL;
|
||||||
|
|
|
@ -130,7 +130,7 @@ void InitXboxControllerHostBridge(void)
|
||||||
//disconnect to host if the host port of xinput exceeds the total xinput controller connected to host.
|
//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) {
|
if (g_XboxControllerHostBridge[port].dwHostPort >= total_xinput_gamepad) {
|
||||||
g_XboxControllerHostBridge[port].dwHostType = X_XONTROLLER_HOST_BRIDGE_HOSTTYPE_NOTCONNECT;
|
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;
|
break;
|
||||||
case X_XONTROLLER_HOST_BRIDGE_HOSTTYPE_DINPUT:
|
case X_XONTROLLER_HOST_BRIDGE_HOSTTYPE_DINPUT:
|
||||||
|
@ -148,7 +148,7 @@ void InitXboxControllerHostBridge(void)
|
||||||
//find corresponding XboxDeviceInfo
|
//find corresponding XboxDeviceInfo
|
||||||
index=FindDeviceInfoIndexByXboxType(g_XboxControllerHostBridge[port].XboxDeviceInfo.ucType);
|
index=FindDeviceInfoIndexByXboxType(g_XboxControllerHostBridge[port].XboxDeviceInfo.ucType);
|
||||||
if (index == -1) {
|
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.
|
//copy XboxDeviceInfo from the global vector.
|
||||||
g_XboxControllerHostBridge[port].XboxDeviceInfo.ucSubType = g_XboxInputDeviceInfo[index].ucSubType;
|
g_XboxControllerHostBridge[port].XboxDeviceInfo.ucSubType = g_XboxInputDeviceInfo[index].ucSubType;
|
||||||
|
|
|
@ -206,7 +206,7 @@ xboxkrnl::VOID NTAPI xboxkrnl::KiCheckTimerTable
|
||||||
if (Timer->DueTime.QuadPart <= CurrentTime.QuadPart)
|
if (Timer->DueTime.QuadPart <= CurrentTime.QuadPart)
|
||||||
{
|
{
|
||||||
/* This is bad, breakpoint! */
|
/* This is bad, breakpoint! */
|
||||||
EmuLog(LOG_LEVEL::WARNING, "Invalid timer state!");
|
EmuLog(LOG_LEVEL::ERROR2, "Invalid timer state!");
|
||||||
DbgBreakPoint();
|
DbgBreakPoint();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -366,7 +366,7 @@ void OHCI::OHCI_FrameBoundaryWorker()
|
||||||
|
|
||||||
// Writeback HCCA
|
// Writeback HCCA
|
||||||
if (OHCI_WriteHCCA(m_Registers.HcHCCA, &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();
|
OHCI_FatalError();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -381,7 +381,7 @@ void OHCI::OHCI_FatalError()
|
||||||
|
|
||||||
OHCI_SetInterrupt(OHCI_INTR_UE);
|
OHCI_SetInterrupt(OHCI_INTR_UE);
|
||||||
OHCI_BusStop();
|
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)
|
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) {
|
for (current = Head; current; current = next_ed) {
|
||||||
if (OHCI_ReadED(current, &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();
|
OHCI_FatalError();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -580,7 +580,7 @@ int OHCI::OHCI_ServiceTD(OHCI_ED* Ed)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if (OHCI_ReadTD(addr, &td)) {
|
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();
|
OHCI_FatalError();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -1584,7 +1584,7 @@ int OHCI::OHCI_ServiceIsoTD(OHCI_ED* ed, int completion)
|
||||||
addr = ed->HeadP & OHCI_DPTR_MASK;
|
addr = ed->HeadP & OHCI_DPTR_MASK;
|
||||||
|
|
||||||
if (OHCI_ReadIsoTD(addr, &iso_td)) {
|
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();
|
OHCI_FatalError();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
// * If not, write to the Free Software Foundation, Inc.,
|
// * If not, write to the Free Software Foundation, Inc.,
|
||||||
// * 59 Temple Place - Suite 330, Bostom, MA 02111-1307, USA.
|
// * 59 Temple Place - Suite 330, Bostom, MA 02111-1307, USA.
|
||||||
// *
|
// *
|
||||||
// * (c) 2018 ergo720
|
// * (c) 2018-2019 ergo720
|
||||||
// *
|
// *
|
||||||
// * All rights reserved
|
// * All rights reserved
|
||||||
// *
|
// *
|
||||||
|
@ -125,7 +125,7 @@ INT_PTR CALLBACK DlgLogConfigProc(HWND hWndDlg, UINT uMsg, WPARAM wParam, LPARAM
|
||||||
|
|
||||||
hHandle = GetDlgItem(hWndDlg, IDC_EVENT_LV);
|
hHandle = GetDlgItem(hWndDlg, IDC_EVENT_LV);
|
||||||
TempLevel = to_underlying(LOG_LEVEL::DEBUG);
|
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));
|
LRESULT index = SendMessage(hHandle, CB_ADDSTRING, 0, reinterpret_cast<LPARAM>(i));
|
||||||
SendMessage(hHandle, CB_SETITEMDATA, index, TempLevel);
|
SendMessage(hHandle, CB_SETITEMDATA, index, TempLevel);
|
||||||
TempLevel++;
|
TempLevel++;
|
||||||
|
|
Loading…
Reference in New Issue