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