From a33dc2f4919f7fdc8ea9db41c4c70c38cedfd3df Mon Sep 17 00:00:00 2001 From: mageven <62494521+mageven@users.noreply.github.com> Date: Tue, 4 Aug 2020 05:02:53 +0530 Subject: Improved Logger (#1292) * Logger class changes only Now compile-time checking is possible with the help of Nullable Value types. * Misc formatting * Manual optimizations PrintGuestLog PrintGuestStackTrace Surfaceflinger DequeueBuffer * Reduce SendVibrationXX log level to Debug * Add Notice log level This level is always enabled and used to print system info, etc... Also, rewrite LogColor to switch expression as colors are static * Unify unhandled exception event handlers * Print enabled LogLevels during init * Re-add App Exit disposes in proper order nit: switch case spacing * Revert PrintGuestStackTrace to Info logs due to #1407 PrintGuestStackTrace is now called in some critical error handlers so revert to old behavior as KThread isn't part of Guest. * Batch replace Logger statements --- .../Audio/AudioRendererManager/IAudioDevice.cs | 22 +++++++++++----------- .../Audio/AudioRendererManager/IAudioRenderer.cs | 6 +++--- .../AudioRendererManager/PerformanceManager.cs | 2 +- Ryujinx.HLE/HOS/Services/Audio/IAudioOutManager.cs | 8 ++++---- .../HOS/Services/Audio/IAudioRendererManager.cs | 6 +++--- 5 files changed, 22 insertions(+), 22 deletions(-) (limited to 'Ryujinx.HLE/HOS/Services/Audio') diff --git a/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/IAudioDevice.cs b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/IAudioDevice.cs index 56ece87f..1cc263b6 100644 --- a/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/IAudioDevice.cs +++ b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/IAudioDevice.cs @@ -39,7 +39,7 @@ namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager if ((position - basePosition) + buffer.Length > size) { - Logger.PrintError(LogClass.ServiceAudio, $"Output buffer size {size} too small!"); + Logger.Error?.Print(LogClass.ServiceAudio, $"Output buffer size {size} too small!"); break; } @@ -67,7 +67,7 @@ namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager string deviceName = Encoding.ASCII.GetString(deviceNameBuffer); - Logger.PrintStub(LogClass.ServiceAudio); + Logger.Stub?.PrintStub(LogClass.ServiceAudio); return ResultCode.Success; } @@ -89,7 +89,7 @@ namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager } else { - Logger.PrintError(LogClass.ServiceAudio, $"Output buffer size {size} too small!"); + Logger.Error?.Print(LogClass.ServiceAudio, $"Output buffer size {size} too small!"); } return ResultCode.Success; @@ -106,7 +106,7 @@ namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager context.Response.HandleDesc = IpcHandleDesc.MakeCopy(handle); - Logger.PrintStub(LogClass.ServiceAudio); + Logger.Stub?.PrintStub(LogClass.ServiceAudio); return ResultCode.Success; } @@ -117,7 +117,7 @@ namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager { context.ResponseData.Write(2); - Logger.PrintStub(LogClass.ServiceAudio); + Logger.Stub?.PrintStub(LogClass.ServiceAudio); return ResultCode.Success; } @@ -140,7 +140,7 @@ namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager if ((position - basePosition) + buffer.Length > size) { - Logger.PrintError(LogClass.ServiceAudio, $"Output buffer size {size} too small!"); + Logger.Error?.Print(LogClass.ServiceAudio, $"Output buffer size {size} too small!"); break; } @@ -167,7 +167,7 @@ namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager string deviceName = Encoding.UTF8.GetString(deviceNameBuffer); - Logger.PrintStub(LogClass.ServiceAudio); + Logger.Stub?.PrintStub(LogClass.ServiceAudio); return ResultCode.Success; } @@ -178,7 +178,7 @@ namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager { context.ResponseData.Write(1f); - Logger.PrintStub(LogClass.ServiceAudio); + Logger.Stub?.PrintStub(LogClass.ServiceAudio); return ResultCode.Success; } @@ -199,7 +199,7 @@ namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager } else { - Logger.PrintError(LogClass.ServiceAudio, $"Output buffer size {size} too small!"); + Logger.Error?.Print(LogClass.ServiceAudio, $"Output buffer size {size} too small!"); } return ResultCode.Success; @@ -216,7 +216,7 @@ namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager context.Response.HandleDesc = IpcHandleDesc.MakeCopy(handle); - Logger.PrintStub(LogClass.ServiceAudio); + Logger.Stub?.PrintStub(LogClass.ServiceAudio); return ResultCode.Success; } @@ -232,7 +232,7 @@ namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager context.Response.HandleDesc = IpcHandleDesc.MakeCopy(handle); - Logger.PrintStub(LogClass.ServiceAudio); + Logger.Stub?.PrintStub(LogClass.ServiceAudio); return ResultCode.Success; } diff --git a/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/IAudioRenderer.cs b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/IAudioRenderer.cs index 16c06b51..b5802d2d 100644 --- a/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/IAudioRenderer.cs +++ b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/IAudioRenderer.cs @@ -105,7 +105,7 @@ namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager { context.ResponseData.Write((int)_playState); - Logger.PrintStub(LogClass.ServiceAudio, new { State = Enum.GetName(typeof(PlayState), _playState) }); + Logger.Stub?.PrintStub(LogClass.ServiceAudio, new { State = Enum.GetName(typeof(PlayState), _playState) }); return ResultCode.Success; } @@ -287,7 +287,7 @@ namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager // Start() public ResultCode StartAudioRenderer(ServiceCtx context) { - Logger.PrintStub(LogClass.ServiceAudio); + Logger.Stub?.PrintStub(LogClass.ServiceAudio); _playState = PlayState.Playing; @@ -298,7 +298,7 @@ namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager // Stop() public ResultCode StopAudioRenderer(ServiceCtx context) { - Logger.PrintStub(LogClass.ServiceAudio); + Logger.Stub?.PrintStub(LogClass.ServiceAudio); _playState = PlayState.Stopped; diff --git a/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/PerformanceManager.cs b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/PerformanceManager.cs index 1b8c8a7c..a5b3d79f 100644 --- a/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/PerformanceManager.cs +++ b/Ryujinx.HLE/HOS/Services/Audio/AudioRendererManager/PerformanceManager.cs @@ -18,7 +18,7 @@ namespace Ryujinx.HLE.HOS.Services.Audio.AudioRendererManager if (performanceMetricsDataFormat != 1) { - Logger.PrintWarning(LogClass.ServiceAudio, $"PerformanceMetricsDataFormat: {performanceMetricsDataFormat} is not supported!"); + Logger.Warning?.Print(LogClass.ServiceAudio, $"PerformanceMetricsDataFormat: {performanceMetricsDataFormat} is not supported!"); } return (((parameters.VoiceCount + diff --git a/Ryujinx.HLE/HOS/Services/Audio/IAudioOutManager.cs b/Ryujinx.HLE/HOS/Services/Audio/IAudioOutManager.cs index 508bed40..ae2b9802 100644 --- a/Ryujinx.HLE/HOS/Services/Audio/IAudioOutManager.cs +++ b/Ryujinx.HLE/HOS/Services/Audio/IAudioOutManager.cs @@ -78,7 +78,7 @@ namespace Ryujinx.HLE.HOS.Services.Audio } else { - Logger.PrintError(LogClass.ServiceAudio, $"Output buffer size {size} too small!"); + Logger.Error?.Print(LogClass.ServiceAudio, $"Output buffer size {size} too small!"); } context.ResponseData.Write(nameCount); @@ -100,7 +100,7 @@ namespace Ryujinx.HLE.HOS.Services.Audio if (deviceName != DefaultAudioOutput) { - Logger.PrintWarning(LogClass.Audio, "Invalid device name!"); + Logger.Warning?.Print(LogClass.Audio, "Invalid device name!"); return ResultCode.DeviceNotFound; } @@ -113,7 +113,7 @@ namespace Ryujinx.HLE.HOS.Services.Audio } else { - Logger.PrintError(LogClass.ServiceAudio, $"Output buffer size {receiveSize} too small!"); + Logger.Error?.Print(LogClass.ServiceAudio, $"Output buffer size {receiveSize} too small!"); } int sampleRate = context.RequestData.ReadInt32(); @@ -126,7 +126,7 @@ namespace Ryujinx.HLE.HOS.Services.Audio if (sampleRate != DefaultSampleRate) { - Logger.PrintWarning(LogClass.Audio, "Invalid sample rate!"); + Logger.Warning?.Print(LogClass.Audio, "Invalid sample rate!"); return ResultCode.UnsupportedSampleRate; } diff --git a/Ryujinx.HLE/HOS/Services/Audio/IAudioRendererManager.cs b/Ryujinx.HLE/HOS/Services/Audio/IAudioRendererManager.cs index 5ca96855..7e770a78 100644 --- a/Ryujinx.HLE/HOS/Services/Audio/IAudioRendererManager.cs +++ b/Ryujinx.HLE/HOS/Services/Audio/IAudioRendererManager.cs @@ -86,7 +86,7 @@ namespace Ryujinx.HLE.HOS.Services.Audio context.ResponseData.Write(size); - Logger.PrintDebug(LogClass.ServiceAudio, $"WorkBufferSize is 0x{size:x16}."); + Logger.Debug?.Print(LogClass.ServiceAudio, $"WorkBufferSize is 0x{size:x16}."); return ResultCode.Success; } @@ -94,7 +94,7 @@ namespace Ryujinx.HLE.HOS.Services.Audio { context.ResponseData.Write(0L); - Logger.PrintWarning(LogClass.ServiceAudio, $"Library Revision REV{AudioRendererCommon.GetRevisionVersion(parameters.Revision)} is not supported!"); + Logger.Warning?.Print(LogClass.ServiceAudio, $"Library Revision REV{AudioRendererCommon.GetRevisionVersion(parameters.Revision)} is not supported!"); return ResultCode.UnsupportedRevision; } @@ -140,7 +140,7 @@ namespace Ryujinx.HLE.HOS.Services.Audio int revisionInfo = context.RequestData.ReadInt32(); long appletResourceUserId = context.RequestData.ReadInt64(); - Logger.PrintStub(LogClass.ServiceAudio, new { appletResourceUserId, revisionInfo }); + Logger.Stub?.PrintStub(LogClass.ServiceAudio, new { appletResourceUserId, revisionInfo }); return GetAudioDeviceService(context); } -- cgit v1.2.3