Switch 2: Chat services: Difference between revisions
No edit summary |
|||
| (8 intermediate revisions by the same user not shown) | |||
| Line 4: | Line 4: | ||
= chat:u = | = chat:u = | ||
This is "nn::chat::IUserService". | |||
Official sw uses domains with this. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Cmd || Name | |||
|- | |||
| 0 || | |||
|- | |||
| 2 || | |||
|- | |||
| 10 || | |||
|- | |||
| 11 || [[#GetRoomInfo|GetRoomInfo]] | |||
|- | |||
| 14 || GetLocalCameraImageProcessingMode | |||
|- | |||
| 15 || SetLocalCameraZoomMagnification | |||
|- | |||
| 16 || GetLocalCameraZoomMagnification | |||
|- | |||
| 20 || | |||
|- | |||
| 21 || SetScreenSharingDisallowList | |||
|- | |||
| 22 || ClearScreenSharingDisallowList | |||
|- | |||
| 23 || SetScreenSharingMode | |||
|- | |||
| 40 || GetRealtimeAudioLevels | |||
|- | |||
| 51 || CalculateRequiredAudioStreamWorkBufferSize | |||
|- | |||
| 60 || SetSharingKey | |||
|- | |||
| 61 || ClearSharingKey | |||
|- | |||
| 70 || | |||
|- | |||
| 71 || | |||
|- | |||
| 72 || | |||
|} | |||
== Cmd0 == | |||
No input, returns an [[#IUserShimScopedObject|IUserShimScopedObject]]. | |||
== Cmd2 == | |||
No input, returns an [[#IUserLayoutCustomizationShimScopedObject|IUserLayoutCustomizationShimScopedObject]]. | |||
== Cmd10 == | |||
No input, returns an output u8. | |||
== GetRoomInfo == | |||
Takes a type-0x1A output buffer containing a [[#RoomInfo|RoomInfo]]. | |||
Official sw also exposes this as GetChattingUid, with data being extracted from the cmd output. | |||
== Cmd70 == | |||
Takes a 0x10-byte input struct, returns an output u8. | |||
Official sw uses this prior to launching the relevant applet with ForChatStart (applet is only launched if cmd output is non-zero). | |||
== Cmd71 == | |||
No input, returns an output u8. | |||
Official sw uses this prior to launching the relevant applet with ForCameraSharingGuide (applet is only launched if cmd output is non-zero). | |||
== Cmd72 == | |||
Takes an input u8, returns an output u8. | |||
Official sw uses this prior to launching the relevant applet with ForCameraConfiguration (applet is only launched if cmd output is non-zero). | |||
== IUserShimScopedObject == | |||
This is "nn::chat::IUserShimScopedObject". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Cmd || Name | |||
|- | |||
| 1 || | |||
|- | |||
| 2 || [[#AttachToRoomInfoChangedEvent|AttachToRoomInfoChangedEvent]] | |||
|- | |||
| 3 || [[#AttachToLocalCameraImageProcessingModeChangedEvent|AttachToLocalCameraImageProcessingModeChangedEvent]] | |||
|- | |||
| 4 || [[#AttachToLocalCameraZoomMagnificationChangedEvent|AttachToLocalCameraZoomMagnificationChangedEvent]] | |||
|- | |||
| 10 || StartLocalCameraStreaming | |||
|- | |||
| 11 || StopLocalCameraStreaming | |||
|- | |||
| 20 || StartRemoteCameraStreaming | |||
|- | |||
| 21 || StopRemoteCameraStreaming | |||
|- | |||
| 30 || CreateAudioStreamWorkBuffer | |||
|- | |||
| 31 || DestroyAudioStreamWorkBuffer | |||
|- | |||
| 32 || GetAudioStreamCapacityFrameCount | |||
|- | |||
| 33 || StartAudioStreamRecording | |||
|- | |||
| 34 || StopAudioStreamRecording | |||
|- | |||
| 35 || GetAudioStreamFreeFrameCount | |||
|- | |||
| 36 || GetAudioStreamFilledFrameCount | |||
|- | |||
| 37 || ReadAudioStream | |||
|} | |||
=== Cmd1 === | |||
No input, returns an output Event handle with EventClearMode=0. | |||
This Event is used by official sw IsChatting. | |||
=== AttachToRoomInfoChangedEvent === | |||
No input, returns an output Event handle with EventClearMode=0. | |||
=== AttachToLocalCameraImageProcessingModeChangedEvent === | |||
No input, returns an output Event handle with EventClearMode=0. | |||
=== AttachToLocalCameraZoomMagnificationChangedEvent === | |||
No input, returns an output Event handle with EventClearMode=0. | |||
== IUserLayoutCustomizationShimScopedObject == | |||
This is "nn::chat::IUserLayoutCustomizationShimScopedObject". | |||
Official sw from BeginFullScreenWithLocalCameraAvailableSection uses cmd20 cmd10, cmd11, cmd13 (the exact cmds used depends on input). Depending on input, this may also launch the relevant applet with ForFullScreen. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Cmd || Name | |||
|- | |||
| 0 || [[#Initialize|Initialize]] | |||
|- | |||
| 1 || | |||
|- | |||
| 10 || | |||
|- | |||
| 11 || | |||
|- | |||
| 12 || [[#EndFullScreenWithLocalCameraAvailableSection|EndFullScreenWithLocalCameraAvailableSection]] | |||
|- | |||
| 13 || | |||
|- | |||
| 20 || | |||
|} | |||
=== Initialize === | |||
Takes a PID, an input u64 pid_reserved, no output. | |||
=== Cmd1 === | |||
No input, returns an output Event handle with EventClearMode=0. | |||
Used by official sw immediately after [[#Initialize|Initialize]]. | |||
=== Cmd10 === | |||
No input/output. | |||
=== Cmd11 === | |||
No input, returns an output u64. | |||
=== EndFullScreenWithLocalCameraAvailableSection === | |||
No input/output. | |||
=== Cmd13 === | |||
No input, returns an output u8 and a 0x10-byte struct. | |||
=== Cmd20 === | |||
No input, returns an output u8. | |||
= chat:ps = | = chat:ps = | ||
| Line 64: | Line 238: | ||
= chat:set = | = chat:set = | ||
= RoomInfo = | |||
This is "nn::chat::RoomInfo". | |||
This is a 0xF0-byte struct. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 || 0x18 || | |||
|- | |||
| 0x18 || 0x10 || ChattingUid | |||
|- | |||
| 0x28 || 0xC8 || | |||
|} | |||
[[Category:Services]] | [[Category:Services]] | ||