Line 2: |
Line 2: |
| | | |
| = caps:sc = | | = caps:sc = |
− | This is "nn::capsrv::sf::IScreenShotControlService". This is available with [2.0.0+]. | + | This is "nn::capsrv::sf::IScreenShotControlService". |
| + | |
| + | This was added with [2.0.0+]. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
− | ! Cmd || Name || Notes | + | ! Cmd || Name |
| |- | | |- |
− | | 1 || [[#CaptureRawImage]] || | + | | 1 || [[#CaptureRawImage]] |
| |- | | |- |
− | | 2 || [[#CaptureRawImageWithTimeout]] || | + | | 2 || [[#CaptureRawImageWithTimeout]] |
| |- | | |- |
− | | 3 || [5.0.0+] AttachSharedBuffer || Takes a total of 8-bytes of input, no output. | + | | 3 || [5.0.0+] [[#AttachSharedBuffer]] |
| |- | | |- |
− | | 5 || [5.0.0+] CaptureRawImageToAttachedSharedBuffer || Takes a total of 0x10-bytes of input, no output. | + | | 5 || [5.0.0+] [[#CaptureRawImageToAttachedSharedBuffer]] |
| |- | | |- |
− | | 210 || [6.0.0+] ? || Takes a total of 0x50-bytes of input, a type-0x15 input buffer, and a type-0x45 input buffer, returns a total of 0x20-bytes of output. | + | | 210 || [6.0.0+] |
| |- | | |- |
− | | [2.0.0-4.1.0] 1001 || RequestTakingScreenShot || Takes a total of 0x10-bytes of input, no output. | + | | [2.0.0-4.1.0] 1001 || [[#RequestTakingScreenShot]] |
| |- | | |- |
− | | [2.0.0-4.1.0] 1002 || RequestTakingScreenShotWithTimeout || Takes a total of 0x18-bytes of input, no output. | + | | [2.0.0-4.1.0] 1002 || [[#RequestTakingScreenShotWithTimeout]] |
| |- | | |- |
− | | [3.0.0-4.1.0] 1003 || RequestTakingScreenShotEx || Takes a total of 0x58-bytes of input, no output. | + | | [3.0.0-4.1.0] 1003 || [[#RequestTakingScreenShotEx]] |
| |- | | |- |
− | | 1004 || [5.0.0+] RequestTakingScreenShotEx1 || Takes a total of 0x60-bytes of input, no output. [6.0.0+]: In addition, this also takes a type-0x15 input buffer. [11.0.0+] Now takes an additional 8-bytes of input. | + | | 1004 || [5.0.0+] [[#RequestTakingScreenShotEx1]] |
| |- | | |- |
− | | 1009 || [5.0.0+] CancelTakingScreenShot || Takes a total of 0x10-bytes of input, no output. | + | | 1009 || [5.0.0+] [[#CancelTakingScreenShot]] |
| |- | | |- |
− | | 1010 || [5.0.0+] SetTakingScreenShotCancelState || Takes a total of 0x10-bytes of input, no output. | + | | 1010 || [5.0.0+] [[#SetTakingScreenShotCancelState]] |
| |- | | |- |
− | | 1011 || NotifyTakingScreenShotRefused || Takes a total of 8-bytes of input, no output. | + | | 1011 || [[#NotifyTakingScreenShotRefused]] |
| |- | | |- |
− | | 1012 || NotifyTakingScreenShotFailed || Takes a total of 8-bytes of input, no output. | + | | 1012 || [[#NotifyTakingScreenShotFailed]] |
| |- | | |- |
− | | 1101 || [4.0.0+] [[#SetupOverlayMovieThumbnail]] || | + | | 1101 || [4.0.0+] [[#SetupOverlayMovieThumbnail]] |
| |- | | |- |
− | | 1106 || [4.0.0+] ? || | + | | 1106 || [4.0.0+] |
| |- | | |- |
− | | 1107 || [4.0.0+] ? || | + | | 1107 || [4.0.0+] |
| |- | | |- |
− | | 1201 || [3.0.0+] OpenRawScreenShotReadStream || Takes a total of 0x10-bytes of input, returns a total of 0x18-bytes of output. | + | | 1201 || [3.0.0+] [[#OpenRawScreenShotReadStream]] |
| |- | | |- |
− | | 1202 || [3.0.0+] CloseRawScreenShotReadStream || No input/output. | + | | 1202 || [3.0.0+] [[#CloseRawScreenShotReadStream]] |
| |- | | |- |
− | | 1203 || [3.0.0+] ReadRawScreenShotReadStream || Takes a total of 8-bytes of input and a type-0x6 output buffer, returns a total of 8-bytes of output. | + | | 1203 || [3.0.0+] [[#ReadRawScreenShotReadStream]] |
| |- | | |- |
− | | 1204 || [9.0.0+] || Takes a total of 0x10-bytes of input and a type-0x46 output buffer, returns a total of 8-bytes of output. | + | | 1204 || [9.0.0+] |
| |} | | |} |
− |
| |
− | * cmd210: User-processes use hard-coded size 0x88 for the type-0x15 buffer.
| |
− | * cmd1106/1107: User-processes use hard-coded sizes 0x400 and 0x404 for the first/second type-0x15 buffers.
| |
− | * cmd1201/1202/1203: These are only usable when the previously loaded value from [[Settings_services|set:sys GetDebugModeFlag]] is set.
| |
− | * cmd1204: Also required the mentioned debug flag but does no longer as of [10.0.0].
| |
| | | |
| The only caps:sc commands used by [[GRC_services|GRC]] are: 1101, 1106, and 1107. | | The only caps:sc commands used by [[GRC_services|GRC]] are: 1101, 1106, and 1107. |
− |
| |
− | [8.0.0+] Cmd210 and cmd1004 now takes an additional type-0x15 input buffer.
| |
| | | |
| == CaptureRawImage == | | == CaptureRawImage == |
Line 75: |
Line 70: |
| | | |
| Stubbed with [5.0.0+], where it now returns error 0x7FECE. | | Stubbed with [5.0.0+], where it now returns error 0x7FECE. |
| + | |
| + | == AttachSharedBuffer == |
| + | Takes a total of 8-bytes of input. No output. |
| + | |
| + | == CaptureRawImageToAttachedSharedBuffer == |
| + | Takes a total of 0x10-bytes of input. No output. |
| + | |
| + | == Cmd210 == |
| + | Takes a total of 0x50-bytes of input, a type-0x15 input buffer, and a type-0x45 input buffer, returns a total of 0x20-bytes of output. |
| + | |
| + | User-processes use hard-coded size 0x88 for the type-0x15 buffer. |
| + | |
| + | [8.0.0+] Now takes an additional type-0x15 input buffer. |
| + | |
| + | == RequestTakingScreenShot == |
| + | Takes a total of 0x10-bytes of input. No output. |
| + | |
| + | == RequestTakingScreenShotWithTimeout == |
| + | Takes a total of 0x18-bytes of input. No output. |
| + | |
| + | == RequestTakingScreenShotEx == |
| + | Takes a total of 0x58-bytes of input. No output. |
| + | |
| + | == RequestTakingScreenShotEx1 == |
| + | Takes a total of 0x60-bytes of input. No output. |
| + | |
| + | [6.0.0+] In addition, this also takes a type-0x15 input buffer. |
| + | |
| + | [8.0.0+] Now takes an additional type-0x15 input buffer. |
| + | |
| + | [11.0.0+] Now takes an additional 8-bytes of input. |
| + | |
| + | == CancelTakingScreenShot == |
| + | Takes a total of 0x10-bytes of input. No output. |
| + | |
| + | == SetTakingScreenShotCancelState == |
| + | Takes a total of 0x10-bytes of input. No output. |
| + | |
| + | == NotifyTakingScreenShotRefused == |
| + | Takes a total of 8-bytes of input. No output. |
| + | |
| + | == NotifyTakingScreenShotFailed == |
| + | Takes a total of 8-bytes of input. No output. |
| | | |
| == SetupOverlayMovieThumbnail == | | == SetupOverlayMovieThumbnail == |
Line 89: |
Line 127: |
| | | |
| '''width'''/'''height''' have same requirements as [[#SetupOverlayMovieThumbnail]]. The size of the type-0x6 buffer must be at least 0x7D000. The requirements for the type-0x46 buffers are the same as [[#SetupOverlayMovieThumbnail]]. | | '''width'''/'''height''' have same requirements as [[#SetupOverlayMovieThumbnail]]. The size of the type-0x6 buffer must be at least 0x7D000. The requirements for the type-0x46 buffers are the same as [[#SetupOverlayMovieThumbnail]]. |
| + | |
| + | User-processes use hard-coded sizes 0x400 and 0x404 for the first/second type-0x15 buffers. |
| | | |
| [5.0.0+] Now takes a total of 0x68-bytes of input instead of 0x30. | | [5.0.0+] Now takes a total of 0x68-bytes of input instead of 0x30. |
Line 96: |
Line 136: |
| | | |
| '''width'''/'''height''' have same requirements as [[#SetupOverlayMovieThumbnail]]. The size of the type-0x6 buffer must be at least 0x7D000. The size of the type-0x45 buffer must be at least 0x384000. | | '''width'''/'''height''' have same requirements as [[#SetupOverlayMovieThumbnail]]. The size of the type-0x6 buffer must be at least 0x7D000. The size of the type-0x45 buffer must be at least 0x384000. |
| + | |
| + | User-processes use hard-coded sizes 0x400 and 0x404 for the first/second type-0x15 buffers. |
| | | |
| [5.0.0+] Now takes a total of 0x68-bytes of input instead of 0x30. | | [5.0.0+] Now takes a total of 0x68-bytes of input instead of 0x30. |
| + | |
| + | == OpenRawScreenShotReadStream == |
| + | Takes a total of 0x10-bytes of input. Returns a total of 0x18-bytes of output. |
| + | |
| + | Only usable when the previously loaded value from [[Settings_services|set:sys GetDebugModeFlag]] is set. |
| + | |
| + | == CloseRawScreenShotReadStream == |
| + | No input/output. |
| + | |
| + | Only usable when the previously loaded value from [[Settings_services|set:sys GetDebugModeFlag]] is set. |
| + | |
| + | == ReadRawScreenShotReadStream == |
| + | Takes a total of 8-bytes of input and a type-0x6 output buffer. Returns a total of 8-bytes of output. |
| + | |
| + | Only usable when the previously loaded value from [[Settings_services|set:sys GetDebugModeFlag]] is set. |
| + | |
| + | == Cmd1204 == |
| + | Takes a total of 0x10-bytes of input and a type-0x46 output buffer. Returns a total of 8-bytes of output. |
| + | |
| + | Also required the mentioned debug flag but does no longer as of [10.0.0]. |
| | | |
| = caps:ss = | | = caps:ss = |
− | This is "nn::capsrv::sf::IScreenShotService". This is available with [2.0.0+]. | + | This is "nn::capsrv::sf::IScreenShotService". |
| + | |
| + | This was added with [2.0.0+]. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 122: |
Line 186: |
| This is "nn::capsrv::sf::IScreenShotApplicationService". | | This is "nn::capsrv::sf::IScreenShotApplicationService". |
| | | |
− | This was added with [3.0.0+]. This was moved to [[Applet_Manager_services|AM]] with [6.0.0+]. | + | This was added with [3.0.0+]. |
| + | |
| + | [6.0.0+] This was moved to [[Applet_Manager_services|AM]]. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 163: |
Line 229: |
| This is "nn::hdcp::IHdcpController". | | This is "nn::hdcp::IHdcpController". |
| | | |
− | Added with [4.0.0+].
| + | This was added with [4.0.0+]. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 180: |
Line 246: |
| = mm:u = | | = mm:u = |
| This is "nn::mmnv::IRequest". | | This is "nn::mmnv::IRequest". |
− |
| |
− | NVIDIA multimedia (NvMM) platform service.
| |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 232: |
Line 296: |
| |- | | |- |
| | 3 || [[#vi:s|GetDisplayServiceWithProxyNameExchange]] | | | 3 || [[#vi:s|GetDisplayServiceWithProxyNameExchange]] |
− | |-
| |
| |} | | |} |
| | | |
Line 251: |
Line 314: |
| |- | | |- |
| | 3 || [[#vi:m|GetDisplayServiceWithProxyNameExchange]] | | | 3 || [[#vi:m|GetDisplayServiceWithProxyNameExchange]] |
− | |-
| |
| |} | | |} |
| | | |
Line 761: |
Line 823: |
| |} | | |} |
| | | |
− | == Ambient Light Sensor Notes == | + | == GetAmbientLightSensorValue == |
− | The BH1730 outputs 2 values. Visible light and IR light. This is then calculated through an algorithm that checks for Gain, Measurement time, filter qualities and ouputs lux (max correct measurement of 100K lux).
| + | No input. Outputs lux in float. |
− | The default values are Gain 64x and ITIME of 38 (256 - 218). This allows for a max lux value of 17972 lux when visible light value is maximum and IR light is 0. When both of them are on their limit, the output is 1192 lux.
| |
− | The sensor is fully configurable.
| |
| | | |
− | == GetAmbientLightSensorValue ==
| + | [5.0.0+] Now returns an output [[#AmbientLightSensorValue]]. |
− | No input. Before 5.x, outputs lux in float. (5.0.0+) Returns an output struct:
| |
− | {| class="wikitable" border="1"
| |
− | |-
| |
− | ! Offset || Size || Description
| |
− | |-
| |
− | | 0x0 || 0x4 || bOverLimit. (u32) Equals to 1 if visible or IR light data is over 65534.
| |
− | |-
| |
− | | 0x4 || 0x4 || fLux. (float) Value in lux from the ambient light sensor.
| |
− | |}
| |
− | Note: if bOverLimit=1 and the default ALS configuration is used, the measurement of fLux should not be considered and the actual max value depends on the type of light. Ranges from 12.5K - 17.5K.
| |
| | | |
| == GetCurrentBrightnessSetting == | | == GetCurrentBrightnessSetting == |
Line 826: |
Line 876: |
| | | |
| Can be "Default", "External", "[https://en.wikipedia.org/wiki/Extended_Display_Identification_Data Edid]", "Internal" or "Null". | | Can be "Default", "External", "[https://en.wikipedia.org/wiki/Extended_Display_Identification_Data Edid]", "Internal" or "Null". |
| + | |
| + | = NativeWindow = |
| + | Max size of this buffer is 0x100-bytes(outbuf size used by official user-processes). Parsed("...DeserializeNativeWindow()") by a function called by the code described under [[#OpenLayer]], which executes code with Android symbols. |
| + | |
| + | This is a [[#Parcel]]. |
| | | |
| = Parcel = | | = Parcel = |
Line 842: |
Line 897: |
| | 0x10 || ? || FlattenedBinder | | | 0x10 || ? || FlattenedBinder |
| |} | | |} |
− |
| |
− | = NativeWindow =
| |
− | Max size of this buffer is 0x100-bytes(outbuf size used by official user-processes). Parsed("...DeserializeNativeWindow()") by a function called by the code described under [[#OpenLayer]], which executes code with Android symbols.
| |
− |
| |
− | This is a [[#Parcel]].
| |
| | | |
| == ParcelData == | | == ParcelData == |
Line 873: |
Line 923: |
| This normally contains an u32 with value 0? | | This normally contains an u32 with value 0? |
| | | |
− | = Resolution handling = | + | = AmbientLightSensorValue = |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset || Size || Description |
| + | |- |
| + | | 0x0 || 0x4 || bOverLimit. (u32) Equals to 1 if visible or IR light data is over 65534. |
| + | |- |
| + | | 0x4 || 0x4 || fLux. (float) Value in lux from the ambient light sensor. |
| + | |} |
| + | Note: if bOverLimit=1 and the default ALS configuration is used, the measurement of fLux should not be considered and the actual max value depends on the type of light. Ranges from 12.5K - 17.5K. |
| + | |
| + | = Resolution Handling = |
| There doesn't seem to be a way to get the actual TV resolution while using the "Default" Display. Official apps just hard-code what resolution to use depending on the current [[AM_services|OperationMode]]. | | There doesn't seem to be a way to get the actual TV resolution while using the "Default" Display. Official apps just hard-code what resolution to use depending on the current [[AM_services|OperationMode]]. |
| + | |
| + | = Ambient Light Sensor Notes = |
| + | The BH1730 outputs 2 values. Visible light and IR light. This is then calculated through an algorithm that checks for Gain, Measurement time, filter qualities and ouputs lux (max correct measurement of 100K lux). |
| + | The default values are Gain 64x and ITIME of 38 (256 - 218). This allows for a max lux value of 17972 lux when visible light value is maximum and IR light is 0. When both of them are on their limit, the output is 1192 lux. |
| + | The sensor is fully configurable. |
| | | |
| [[Category:Services]] | | [[Category:Services]] |