Switch 2: Chat services
These services are S2-only.
chat:a
chat:u
This is "nn::chat::IUserService".
Official sw uses domains with this.
| Cmd | Name |
|---|---|
| 0 | |
| 2 | |
| 10 | |
| 11 | 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.
Cmd2
No input, returns an IUserLayoutCustomizationShimScopedObject.
Cmd10
No input, returns an output u8.
GetRoomInfo
Takes a type-0x1A output buffer containing a 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".
| Cmd | Name |
|---|---|
| 1 | |
| 2 | AttachToRoomInfoChangedEvent |
| 3 | AttachToLocalCameraImageProcessingModeChangedEvent |
| 4 | 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.
| Cmd | Name |
|---|---|
| 0 | Initialize |
| 1 | |
| 10 | |
| 11 | |
| 12 | 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.
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:sp
chat:dbg
chat:wu
This is "nn::chat::IWebUserService".
| Cmd | Name |
|---|---|
| 1 |
Cmd1
No input. Returns an IWebUserShimScopedObject.
IWebUserShimScopedObject
This is "nn::chat::IWebUserShimScopedObject".
| Cmd | Name |
|---|---|
| 1 | |
| 2 | |
| 3 |
Cmd0
No input, returns an output u8.
Cmd1
No input, returns an output Event handle with EventClearMode=0.
Cmd2
No input, returns an output u32.
chat:sa
chat:ch
chat:ds
chat:alb
chat:con
chat:myp
chat:hdr
chat:nxs
chat:set
RoomInfo
This is "nn::chat::RoomInfo".
This is a 0xF0-byte struct.
| Offset | Size | Description |
|---|---|---|
| 0x0 | 0x18 | |
| 0x18 | 0x10 | ChattingUid |
| 0x28 | 0xC8 |