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]]