am: Add all known AppletMessage (#2378)

This PR add all known AppletMessage values for accuracy, nothing more.
`MessageInfo` is renamed to the right `AppletMessage` name.
This commit is contained in:
Ac_K 2021-06-21 18:41:37 +02:00 committed by GitHub
parent 65fee49e8a
commit aca1c37d4b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 49 additions and 17 deletions

View file

@ -321,8 +321,8 @@ namespace Ryujinx.HLE.HOS
State.DockedMode = newState; State.DockedMode = newState;
PerformanceState.PerformanceMode = State.DockedMode ? PerformanceMode.Boost : PerformanceMode.Default; PerformanceState.PerformanceMode = State.DockedMode ? PerformanceMode.Boost : PerformanceMode.Default;
AppletState.Messages.Enqueue(MessageInfo.OperationModeChanged); AppletState.Messages.Enqueue(AppletMessage.OperationModeChanged);
AppletState.Messages.Enqueue(MessageInfo.PerformanceModeChanged); AppletState.Messages.Enqueue(AppletMessage.PerformanceModeChanged);
AppletState.MessageEvent.ReadableEvent.Signal(); AppletState.MessageEvent.ReadableEvent.Signal();
SignalDisplayResolutionChange(); SignalDisplayResolutionChange();
@ -338,7 +338,7 @@ namespace Ryujinx.HLE.HOS
public void SimulateWakeUpMessage() public void SimulateWakeUpMessage()
{ {
AppletState.Messages.Enqueue(MessageInfo.Resume); AppletState.Messages.Enqueue(AppletMessage.Resume);
AppletState.MessageEvent.ReadableEvent.Signal(); AppletState.MessageEvent.ReadableEvent.Signal();
} }

View file

@ -50,7 +50,7 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.Sys
// ReceiveMessage() -> nn::am::AppletMessage // ReceiveMessage() -> nn::am::AppletMessage
public ResultCode ReceiveMessage(ServiceCtx context) public ResultCode ReceiveMessage(ServiceCtx context)
{ {
if (!context.Device.System.AppletState.Messages.TryDequeue(out MessageInfo message)) if (!context.Device.System.AppletState.Messages.TryDequeue(out AppletMessage message))
{ {
return ResultCode.NoMessages; return ResultCode.NoMessages;
} }

View file

@ -0,0 +1,36 @@
namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.SystemAppletProxy
{
enum AppletMessage
{
None = 0,
ChangeIntoForeground = 1,
ChangeIntoBackground = 2,
Exit = 4,
ApplicationExited = 6,
FocusStateChanged = 15,
Resume = 16,
DetectShortPressingHomeButton = 20,
DetectLongPressingHomeButton = 21,
DetectShortPressingPowerButton = 22,
DetectMiddlePressingPowerButton = 23,
DetectLongPressingPowerButton = 24,
RequestToPrepareSleep = 25,
FinishedSleepSequence = 26,
SleepRequiredByHighTemperature = 27,
SleepRequiredByLowBattery = 28,
AutoPowerDown = 29,
OperationModeChanged = 30,
PerformanceModeChanged = 31,
DetectReceivingCecSystemStandby = 32,
SdCardRemoved = 33,
LaunchApplicationRequested = 50,
RequestToDisplay = 51,
ShowApplicationLogo = 55,
HideApplicationLogo = 56,
ForceHideApplicationLogo = 57,
FloatingApplicationDetected = 60,
DetectShortPressingCaptureButton = 90,
AlbumScreenShotTaken = 92,
AlbumRecordingSaved = 93
}
}

View file

@ -1,10 +0,0 @@
namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.SystemAppletProxy
{
enum MessageInfo
{
FocusStateChanged = 0xf,
Resume = 0x10,
OperationModeChanged = 0x1e,
PerformanceModeChanged = 0x1f
}
}

View file

@ -6,7 +6,7 @@ namespace Ryujinx.HLE.HOS.SystemState
{ {
class AppletStateMgr class AppletStateMgr
{ {
public ConcurrentQueue<MessageInfo> Messages { get; } public ConcurrentQueue<AppletMessage> Messages { get; }
public FocusState FocusState { get; private set; } public FocusState FocusState { get; private set; }
@ -16,7 +16,7 @@ namespace Ryujinx.HLE.HOS.SystemState
public AppletStateMgr(Horizon system) public AppletStateMgr(Horizon system)
{ {
Messages = new ConcurrentQueue<MessageInfo>(); Messages = new ConcurrentQueue<AppletMessage>();
MessageEvent = new KEvent(system.KernelContext); MessageEvent = new KEvent(system.KernelContext);
AppletResourceUserIds = new IdDictionary(); AppletResourceUserIds = new IdDictionary();
@ -26,7 +26,13 @@ namespace Ryujinx.HLE.HOS.SystemState
{ {
FocusState = isFocused ? FocusState.InFocus : FocusState.OutOfFocus; FocusState = isFocused ? FocusState.InFocus : FocusState.OutOfFocus;
Messages.Enqueue(MessageInfo.FocusStateChanged); Messages.Enqueue(AppletMessage.FocusStateChanged);
if (isFocused)
{
Messages.Enqueue(AppletMessage.ChangeIntoForeground);
}
MessageEvent.ReadableEvent.Signal(); MessageEvent.ReadableEvent.Signal();
} }
} }