Changes

2,792 bytes added ,  03:16, 3 January 2019
no edit summary
Line 1: Line 1:  
The software keyboard (swkbd) expects to be passed three [[AM_services#IStorage|IStorage]]s. See also [[AM_services#Library_Applets]].
 
The software keyboard (swkbd) expects to be passed three [[AM_services#IStorage|IStorage]]s. See also [[AM_services#Library_Applets]].
   −
The below is for normal swkbd usage. There's also InlineKeyboard, which doesn't run in the foreground and has completely different input/output [[AM_services#IStorage|IStorage]]s. It also doesn't seem to display on the screen (or is optional at least): the user-process can get the gfx data via [[Display_services]]. InlineKeyboard was added with 2.0.0, however it wasn't added to sdk-nso until the version corresponding to sysver 3.x (even though 2.0.0 system titles use it).
+
The below is for normal swkbd usage, see the [[#InlineKeyboard]] section for InlineKeyboard.
    
== Library Applet Versions ==
 
== Library Applet Versions ==
Line 177: Line 177:  
|-
 
|-
 
|}
 
|}
 +
 +
== InlineKeyboard ==
 +
This doesn't run in the foreground and has completely different input/output [[AM_services#IStorage|IStorage]]s. This is essentially an asynchronous version of the regular swkbd. Whether it displays on the screen is controlled by the user-process. The user-process can also get the gfx data via [[Display_services]]. InlineKeyboard was added with 2.0.0, however it wasn't added to sdk-nso until the version corresponding to sysver 3.x (even though 2.0.0 system titles use it).
 +
 +
=== InitializeArg ===
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Notes
 +
|-
 +
| 0x0 || 0x4 || Unknown, normally 0.
 +
|-
 +
| 0x4 || 0x1 || Controls the LibraryAppletMode when launching the applet. Non-zero indicates LibraryAppletMode=0x1, otherwise LibraryAppletMode=0x3.
 +
|-
 +
| 0x5 || 0x1 || Set to 0x1 with [5.0.0+], originally set to value 0.
 +
|-
 +
| 0x6 || 0x2 || Padding
 +
|}
 +
 +
=== AppearArg ===
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Notes
 +
|-
 +
| 0x0 || 0x4 || Initialized to value 0x2.
 +
|-
 +
| 0x4 || 0x8 ||
 +
|-
 +
| 0xC || 0x8 ||
 +
|-
 +
| 0x14 || 0x6 ||
 +
|-
 +
| 0x1A || 0x1 ||
 +
|-
 +
| 0x1B || 0x1 ||
 +
|-
 +
| 0x1C || 0x4 || u32, Unknown.
 +
|-
 +
| 0x20 || 0x4 || s32, Unknown. Initialized to value -1.
 +
|-
 +
| 0x24 || 0x4 || s32, Unknown. Initialized to value -1.
 +
|-
 +
| 0x28 || 0x8 ||
 +
|-
 +
| 0x30 || 0x1 || Initialized to value 1.
 +
|-
 +
| 0x31 || 0x17 ||
 +
|}
 +
 +
The above struct is cleared to 0 during initialization, besides the fields specified otherwise.
 +
 +
=== CalcArg ===
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Flags bitmask || Notes
 +
|-
 +
| 0x0 || 0x4 || || Set to 0x30000.
 +
|-
 +
| 0x4 || 0x2 || || Size of this struct.
 +
|-
 +
| 0x6 || 0x1 || || Unknown, set to value 0x1.
 +
|-
 +
| 0x7 || 0x1 || || Unknown, set to value 0x1.
 +
|-
 +
| 0x8 || 0x8 || || Flags
 +
|-
 +
| 0x10 || 0x8 || 0x1 || [[#InitializeArg]]
 +
|-
 +
| 0x18 || 0x4 || 0x2 || float volume
 +
|-
 +
| 0x1C || 0x4 || 0x10 || s32 cursorPos
 +
|-
 +
| 0x20 || 0x48 || || [[#AppearArg]]
 +
|-
 +
| 0x68 || 0x3D4 || || Not known to be set by official sw?
 +
|-
 +
| 0x43C || 0x1 || 0x20 || utf8Mode
 +
|-
 +
| 0x43D || 0x1 || || Unknown
 +
|-
 +
| 0x43E || 0x1 || 0x8000 || enableBackspace. Added with 5.x in the user-process sdk-nso.
 +
|-
 +
| 0x43F || 0x3 || || Unknown
 +
|-
 +
| 0x442 || 0x1 || 0x200 || keytopAsFloating
 +
|-
 +
| 0x443 || 0x1 || 0x100 || footerScalable
 +
|-
 +
| 0x444 || 0x1 || 0x200 || alphaEnabledInInputMode
 +
|-
 +
| 0x445 || 0x1 || 0x100 || inputModeFadeType
 +
|-
 +
| 0x446 || 0x1 || 0x200 || disableTouch
 +
|-
 +
| 0x447 || 0x1 || 0x800 || disableUSBKeyboard
 +
|-
 +
| 0x448 || 0x5 || || Unknown
 +
|-
 +
| 0x44D || 0x2 || ||
 +
|-
 +
| 0x44F || 0x1 || ||
 +
|-
 +
| 0x450 || 0x4 || 0x200 || float keytopScale0
 +
|-
 +
| 0x454 || 0x4 || 0x200 || float keytopScale1
 +
|-
 +
| 0x458 || 0x4 || 0x200 || float keytopTranslate0
 +
|-
 +
| 0x45C || 0x4 || 0x200 || float keytopTranslate1
 +
|-
 +
| 0x460 || 0x4 || 0x100 || float keytopBgAlpha
 +
|-
 +
| 0x464 || 0x4 || || float, unknown
 +
|-
 +
| 0x468 || 0x4 || 0x200 || float balloonScale
 +
|-
 +
| 0x46C || 0x4 || || float, unknown
 +
|-
 +
| 0x470 || 0x20 || ||
 +
|-
 +
| 0x490 || 0x10 || ||
 +
|}
 +
 +
This is 0x4A0-bytes.
 +
 +
All floats except for keytopTranslate0/keytopTranslate1 are initialized to value 1.0f.
 +
 +
The applet-specific IStorage for data input is the [[#InitializeArg]] within this struct.
    
[[Category:Library Applets]]
 
[[Category:Library Applets]]