Software Keyboard: Difference between revisions
No edit summary |
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 | 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]] |