mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-01-11 16:49:12 +01:00
954c41d6e9
Some structures will be reused and shared between several IOS USB device implementations. This prepares for the upcoming USB PR. I've also removed GetPointer calls in the trivial case (BT passthrough)
122 lines
4.0 KiB
C++
122 lines
4.0 KiB
C++
// Copyright 2009 Dolphin Emulator Project
|
|
// Licensed under GPLv2+
|
|
// Refer to the license.txt file included.
|
|
|
|
#pragma once
|
|
|
|
namespace LogTypes
|
|
{
|
|
enum LOG_TYPE
|
|
{
|
|
ACTIONREPLAY,
|
|
AUDIO,
|
|
AUDIO_INTERFACE,
|
|
BOOT,
|
|
COMMANDPROCESSOR,
|
|
COMMON,
|
|
CONSOLE,
|
|
DISCIO,
|
|
DSPHLE,
|
|
DSPLLE,
|
|
DSP_MAIL,
|
|
DSPINTERFACE,
|
|
DVDINTERFACE,
|
|
DYNA_REC,
|
|
EXPANSIONINTERFACE,
|
|
FILEMON,
|
|
GDB_STUB,
|
|
GPFIFO,
|
|
HOST_GPU,
|
|
IOS,
|
|
IOS_DI,
|
|
IOS_ES,
|
|
IOS_FILEIO,
|
|
IOS_HID,
|
|
IOS_NET,
|
|
IOS_SD,
|
|
IOS_SSL,
|
|
IOS_STM,
|
|
IOS_USB,
|
|
IOS_WC24,
|
|
IOS_WIIMOTE,
|
|
MASTER_LOG,
|
|
MEMMAP,
|
|
MEMCARD_MANAGER,
|
|
NETPLAY,
|
|
OSHLE,
|
|
OSREPORT,
|
|
PAD,
|
|
PIXELENGINE,
|
|
PROCESSORINTERFACE,
|
|
POWERPC,
|
|
SERIALINTERFACE,
|
|
SP1,
|
|
VIDEO,
|
|
VIDEOINTERFACE,
|
|
WII_IPC,
|
|
WIIMOTE,
|
|
|
|
NUMBER_OF_LOGS // Must be last
|
|
};
|
|
|
|
enum LOG_LEVELS
|
|
{
|
|
LNOTICE = 1, // VERY important information that is NOT errors. Like startup and OSReports.
|
|
LERROR = 2, // Critical errors
|
|
LWARNING = 3, // Something is suspicious.
|
|
LINFO = 4, // General information.
|
|
LDEBUG = 5, // Detailed debugging - might make things slow.
|
|
};
|
|
|
|
static const char LOG_LEVEL_TO_CHAR[7] = "-NEWID";
|
|
|
|
} // namespace
|
|
|
|
void GenericLog(LogTypes::LOG_LEVELS level, LogTypes::LOG_TYPE type, const char* file, int line,
|
|
const char* fmt, ...)
|
|
#ifdef __GNUC__
|
|
__attribute__((format(printf, 5, 6)))
|
|
#endif
|
|
;
|
|
|
|
#if defined LOGGING || defined _DEBUG || defined DEBUGFAST
|
|
#define MAX_LOGLEVEL LogTypes::LOG_LEVELS::LDEBUG
|
|
#else
|
|
#ifndef MAX_LOGLEVEL
|
|
#define MAX_LOGLEVEL LogTypes::LOG_LEVELS::LINFO
|
|
#endif // loglevel
|
|
#endif // logging
|
|
|
|
// Let the compiler optimize this out
|
|
#define GENERIC_LOG(t, v, ...) \
|
|
{ \
|
|
if (v <= MAX_LOGLEVEL) \
|
|
GenericLog(v, t, __FILE__, __LINE__, __VA_ARGS__); \
|
|
}
|
|
|
|
#define ERROR_LOG(t, ...) \
|
|
do \
|
|
{ \
|
|
GENERIC_LOG(LogTypes::t, LogTypes::LERROR, __VA_ARGS__) \
|
|
} while (0)
|
|
#define WARN_LOG(t, ...) \
|
|
do \
|
|
{ \
|
|
GENERIC_LOG(LogTypes::t, LogTypes::LWARNING, __VA_ARGS__) \
|
|
} while (0)
|
|
#define NOTICE_LOG(t, ...) \
|
|
do \
|
|
{ \
|
|
GENERIC_LOG(LogTypes::t, LogTypes::LNOTICE, __VA_ARGS__) \
|
|
} while (0)
|
|
#define INFO_LOG(t, ...) \
|
|
do \
|
|
{ \
|
|
GENERIC_LOG(LogTypes::t, LogTypes::LINFO, __VA_ARGS__) \
|
|
} while (0)
|
|
#define DEBUG_LOG(t, ...) \
|
|
do \
|
|
{ \
|
|
GENERIC_LOG(LogTypes::t, LogTypes::LDEBUG, __VA_ARGS__) \
|
|
} while (0)
|