Difference between revisions of "OMM services"

From Nintendo Switch Brew
Jump to navigation Jump to search
(Yellows8 moved page OMM services to AM services)
 
(Removed redirect to AM services)
Tag: Removed redirect
Line 1: Line 1:
#REDIRECT [[AM services]]
+
Operation Mode Manager (OMM) is a sysmodule responsible for arbitrating the operation changes between docked and handheld modes.
 +
 
 +
= omm =
 +
This is "nn::omm::detail::IOperationModeManager"
 +
 
 +
Besides [[PTM_services|PTM]], this is the only service that interacts with the [[Dock]] through [[USB_services|usb:pd*]].
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || GetOperationMode
 +
|-
 +
| 1 || GetOperationModeChangeEvent
 +
|-
 +
| 2 || EnableAudioVisual
 +
|-
 +
| 3 || DisableAudioVisual
 +
|-
 +
| 4 || EnterSleepAndWait
 +
|-
 +
| 5 || GetCradleStatus
 +
|-
 +
| 6 || FadeInDisplay
 +
|-
 +
| 7 || FadeOutDisplay
 +
|-
 +
| 8 || [2.0.0+] GetCradleFwVersion
 +
|-
 +
| 9 || [2.0.0+] NotifyCecSettingsChanged
 +
|-
 +
| 10 || [3.0.0+] SetOperationModePolicy
 +
|-
 +
| 11 || [3.0.0+] GetDefaultDisplayResolution
 +
|-
 +
| 12 || [3.0.0+] GetDefaultDisplayResolutionChangeEvent
 +
|-
 +
| 13 || [3.0.0+] UpdateDefaultDisplayResolution
 +
|-
 +
| 14 || [3.0.0+] ShouldSleepOnBoot
 +
|-
 +
| 15 || [4.0.0+] NotifyHdcpApplicationExecutionStarted
 +
|-
 +
| 16 || [4.0.0+] NotifyHdcpApplicationExecutionFinished
 +
|-
 +
| 17 || [4.0.0+] NotifyHdcpApplicationDrawingStarted
 +
|-
 +
| 18 || [4.0.0+] NotifyHdcpApplicationDrawingFinished
 +
|-
 +
| 19 || [4.0.0+] GetHdcpAuthenticationFailedEvent
 +
|-
 +
| 20 || [4.0.0+] GetHdcpAuthenticationFailedEmulationEnabled
 +
|-
 +
| 21 || [4.0.0+] SetHdcpAuthenticationFailedEmulation
 +
|-
 +
| 22 || [4.0.0+] GetHdcpStateChangeEvent
 +
|-
 +
| 23 || [4.0.0+] GetHdcpState
 +
|-
 +
| 24 || [5.0.0+] ShowCardUpdateProcessing
 +
|-
 +
| 25 || [5.0.0+] SetApplicationCecSettingsAndNotifyChanged
 +
|-
 +
| 26 || [7.0.0+] [[#GetOperationModeSystemInfo]]
 +
|-
 +
| 27 || [9.0.0+] GetAppletFullAwakingSystemEvent
 +
|-
 +
| 28 || [12.0.0+] [[#CreateCradleFirmwareUpdater]]
 +
|-
 +
| 500 || [14.0.0+] LblSwitchBacklightOnForAm
 +
|-
 +
| 501 || [14.0.0+] LblSwitchBacklightOffForAm
 +
|-
 +
| 900 || [14.0.0+] HideStartupLogo
 +
|}
 +
 
 +
== GetOperationModeSystemInfo ==
 +
No input, returns an output u32.
 +
 
 +
This is used by [[#GetOperationModeSystemInfo|ICommonStateGetter GetOperationModeSystemInfo]].
 +
 
 +
== CreateCradleFirmwareUpdater ==
 +
No input. Returns an [[#ICradleFirmwareUpdater]].
 +
 
 +
== ICradleFirmwareUpdater ==
 +
This is "nn::omm::detail::ICradleFirmwareUpdater".
 +
 
 +
This was added with [12.0.0+].
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || Start
 +
|-
 +
| 1 || Finish
 +
|-
 +
| 2 || GetUpdateDeviceStatus
 +
|-
 +
| 3 || GetUpdateProgress
 +
|-
 +
| 4 || GetUpdateDeviceStatusChangeEvent
 +
|-
 +
| 5 || GetUpdateProgress2
 +
|}
 +
 
 +
= ommdisp =
 +
This was added with [14.0.0+].
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 100 ||
 +
|-
 +
| 101 ||
 +
|-
 +
| 110 ||
 +
|-
 +
| 111 ||
 +
|-
 +
| 200 ||
 +
|-
 +
| 210 ||
 +
|-
 +
| 300 ||
 +
|-
 +
| 301 ||
 +
|-
 +
| 302 ||
 +
|-
 +
| 303 ||
 +
|-
 +
| 304 ||
 +
|-
 +
| 305 ||
 +
|-
 +
| 306 ||
 +
|-
 +
| 307 ||
 +
|-
 +
| 308 ||
 +
|-
 +
| 309 ||
 +
|-
 +
| 310 ||
 +
|-
 +
| 311 ||
 +
|-
 +
| 312 ||
 +
|-
 +
| 313 ||
 +
|-
 +
| 314 ||
 +
|-
 +
| 315 ||
 +
|-
 +
| 316 ||
 +
|-
 +
| 330 ||
 +
|-
 +
| 340 ||
 +
|-
 +
| 341 ||
 +
|-
 +
| 342 ||
 +
|-
 +
| 343 ||
 +
|-
 +
| 344 ||
 +
|-
 +
| 345 ||
 +
|-
 +
| 346 ||
 +
|-
 +
| 350 ||
 +
|-
 +
| 351 ||
 +
|-
 +
| 360 ||
 +
|-
 +
| 361 ||
 +
|-
 +
| 370 ||
 +
|-
 +
| 371 ||
 +
|-
 +
| 400 ||
 +
|-
 +
| 410 ||
 +
|-
 +
| 500 ||
 +
|-
 +
| 501 ||
 +
|-
 +
| 510 ||
 +
|-
 +
| 520 ||
 +
|-
 +
| 540 ||
 +
|-
 +
| 600 ||
 +
|-
 +
| 700 ||
 +
|-
 +
| 701 ||
 +
|-
 +
| 710 ||
 +
|-
 +
| 711 ||
 +
|-
 +
| 720 ||
 +
|-
 +
| 721 ||
 +
|-
 +
| 722 ||
 +
|-
 +
| 800 ||
 +
|-
 +
| 810 ||
 +
|}
 +
 
 +
= idle:sys =
 +
This is "nn::idle::detail::IPolicyManagerSystem"
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || GetAutoPowerDownEvent
 +
|-
 +
| 1 || [7.0.0+] IsAutoPowerDownRequested ([1.0.0-3.0.2] )
 +
|-
 +
| 2 || [1.0.0-3.0.2]
 +
|-
 +
| 3 || [[#SetHandlingContext]]
 +
|-
 +
| 4 || LoadAndApplySettings
 +
|-
 +
| 5 || ReportUserIsActive
 +
|}
 +
 
 +
== SetHandlingContext ==
 +
[3.0.0+] Now takes an additional 0x10-bytes of input.
 +
 
 +
[13.0.0+] Total input size is now 0x30 instead of 0x38.
 +
 
 +
= spsm =
 +
This is "nn::spsm::detail::IPowerStateInterface".
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || GetCurrentState
 +
|-
 +
| 1 || EnterSleep
 +
|-
 +
| 2 || GetLastWakeReason
 +
|-
 +
| 3 || Shutdown
 +
|-
 +
| 4 || GetNotificationMessageEventHandle
 +
|-
 +
| 5 || ReceiveNotificationMessage
 +
|-
 +
| 6 || AnalyzeLogForLastSleepWakeSequence
 +
|-
 +
| 7 || ResetEventLog
 +
|-
 +
| 8 || AnalyzePerformanceLogForLastSleepWakeSequence
 +
|-
 +
| 9 || ChangeHomeButtonLongPressingTime
 +
|-
 +
| 10 || PutErrorState
 +
|-
 +
| 11 || [1.0.0-3.0.2] InvalidateCurrentHomeButtonPressing
 +
|}
 +
 
 +
[3.0.0+] Cmd11 now takes a total of 8-bytes of input.

Revision as of 17:55, 22 March 2022

Operation Mode Manager (OMM) is a sysmodule responsible for arbitrating the operation changes between docked and handheld modes.

omm

This is "nn::omm::detail::IOperationModeManager"

Besides PTM, this is the only service that interacts with the Dock through usb:pd*.

Cmd Name
0 GetOperationMode
1 GetOperationModeChangeEvent
2 EnableAudioVisual
3 DisableAudioVisual
4 EnterSleepAndWait
5 GetCradleStatus
6 FadeInDisplay
7 FadeOutDisplay
8 [2.0.0+] GetCradleFwVersion
9 [2.0.0+] NotifyCecSettingsChanged
10 [3.0.0+] SetOperationModePolicy
11 [3.0.0+] GetDefaultDisplayResolution
12 [3.0.0+] GetDefaultDisplayResolutionChangeEvent
13 [3.0.0+] UpdateDefaultDisplayResolution
14 [3.0.0+] ShouldSleepOnBoot
15 [4.0.0+] NotifyHdcpApplicationExecutionStarted
16 [4.0.0+] NotifyHdcpApplicationExecutionFinished
17 [4.0.0+] NotifyHdcpApplicationDrawingStarted
18 [4.0.0+] NotifyHdcpApplicationDrawingFinished
19 [4.0.0+] GetHdcpAuthenticationFailedEvent
20 [4.0.0+] GetHdcpAuthenticationFailedEmulationEnabled
21 [4.0.0+] SetHdcpAuthenticationFailedEmulation
22 [4.0.0+] GetHdcpStateChangeEvent
23 [4.0.0+] GetHdcpState
24 [5.0.0+] ShowCardUpdateProcessing
25 [5.0.0+] SetApplicationCecSettingsAndNotifyChanged
26 [7.0.0+] #GetOperationModeSystemInfo
27 [9.0.0+] GetAppletFullAwakingSystemEvent
28 [12.0.0+] #CreateCradleFirmwareUpdater
500 [14.0.0+] LblSwitchBacklightOnForAm
501 [14.0.0+] LblSwitchBacklightOffForAm
900 [14.0.0+] HideStartupLogo

GetOperationModeSystemInfo

No input, returns an output u32.

This is used by ICommonStateGetter GetOperationModeSystemInfo.

CreateCradleFirmwareUpdater

No input. Returns an #ICradleFirmwareUpdater.

ICradleFirmwareUpdater

This is "nn::omm::detail::ICradleFirmwareUpdater".

This was added with [12.0.0+].

Cmd Name
0 Start
1 Finish
2 GetUpdateDeviceStatus
3 GetUpdateProgress
4 GetUpdateDeviceStatusChangeEvent
5 GetUpdateProgress2

ommdisp

This was added with [14.0.0+].

Cmd Name
100
101
110
111
200
210
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
330
340
341
342
343
344
345
346
350
351
360
361
370
371
400
410
500
501
510
520
540
600
700
701
710
711
720
721
722
800
810

idle:sys

This is "nn::idle::detail::IPolicyManagerSystem"

Cmd Name
0 GetAutoPowerDownEvent
1 [7.0.0+] IsAutoPowerDownRequested ([1.0.0-3.0.2] )
2 [1.0.0-3.0.2]
3 #SetHandlingContext
4 LoadAndApplySettings
5 ReportUserIsActive

SetHandlingContext

[3.0.0+] Now takes an additional 0x10-bytes of input.

[13.0.0+] Total input size is now 0x30 instead of 0x38.

spsm

This is "nn::spsm::detail::IPowerStateInterface".

Cmd Name
0 GetCurrentState
1 EnterSleep
2 GetLastWakeReason
3 Shutdown
4 GetNotificationMessageEventHandle
5 ReceiveNotificationMessage
6 AnalyzeLogForLastSleepWakeSequence
7 ResetEventLog
8 AnalyzePerformanceLogForLastSleepWakeSequence
9 ChangeHomeButtonLongPressingTime
10 PutErrorState
11 [1.0.0-3.0.2] InvalidateCurrentHomeButtonPressing

[3.0.0+] Cmd11 now takes a total of 8-bytes of input.