Difference between revisions of "Swkbd.rpl"
Jump to navigation
Jump to search
(Start documenting a few basic swkbd functions; just what IDA says really) |
(Add "Keyboard Control" functions) |
||
Line 3: | Line 3: | ||
==Functions== | ==Functions== | ||
All the swkbd functions are C++ functions in the namespace <code>Rpl::</code>. To export them with OSDynLoad, you have to use their C symbol names (as listed). | All the swkbd functions are C++ functions in the namespace <code>Rpl::</code>. To export them with OSDynLoad, you have to use their C symbol names (as listed). | ||
+ | ===Initialisation=== | ||
{| class="wikitable" | {| class="wikitable" | ||
!Prototype | !Prototype | ||
Line 9: | Line 10: | ||
!Reverse-Engineering Notes | !Reverse-Engineering Notes | ||
|- | |- | ||
− | |<code>SwkbdCreate(unsigned char* | + | |<code>void SwkbdCreate(unsigned char*, nn::swkbd::RegionType, unsigned int, FSClient*)</code> |
|<code>SwkbdCreate__3RplFPUcQ3_2nn5swkbd10RegionTypeUiP8FSClient</code> | |<code>SwkbdCreate__3RplFPUcQ3_2nn5swkbd10RegionTypeUiP8FSClient</code> | ||
|Sets up a structure in memory | |Sets up a structure in memory | ||
− | | | + | |No clear return value. Will return a mutex pointer (1004D294 on 5.5.1) from memory due to lazy programming. |
|- | |- | ||
|<code>void SwkbdDestroy()</code> | |<code>void SwkbdDestroy()</code> | ||
|<code>SwkbdDestroy__3RplFv</code> | |<code>SwkbdDestroy__3RplFv</code> | ||
| | | | ||
− | |No return value. | + | |No clear return value. |
|- | |- | ||
+ | |} | ||
+ | |||
+ | ===Keyboard Control=== | ||
+ | {|class="wikitable" | ||
+ | !Prototype | ||
+ | !Symbol name (5.5.1) | ||
+ | !Description | ||
+ | !Reverse-Engineering Notes | ||
+ | |- | ||
+ | |<code>int SwkbdAppearInputForm(nn::swkbd::AppearArg const &)</code> | ||
+ | |<code>SwkbdAppearInputForm__3RplFRCQ3_2nn5swkbd9AppearArg</code> | ||
+ | | | ||
+ | |Returns 0 or a status code from a subroutine. | ||
+ | |- | ||
+ | |<code>int SwkbdAppearKeyboard(nn:swkbd::KeyboardArg)</code> | ||
+ | |<code>SwkbdAppearKeyboard__3RplFRCQ3_2nn5swkbd11KeyboardArg</code> | ||
+ | | | ||
+ | |Returns 0 or a status code from a subroutine. | ||
+ | |- | ||
+ | |<code>int SwkbdDisappearInputForm()</code> | ||
+ | |<code>SwkbdDisappearInputForm__3RplFv</code> | ||
+ | | | ||
+ | |Returns 0 or a status code from a subroutine. | ||
+ | |- | ||
+ | |<code>int SwkbdDissappearKeyboard()</code> | ||
+ | |<code>SwkbdDisappearKeyboard__3RplFv</code> | ||
+ | | | ||
+ | |Returns 0 or a status code from a subroutine. | ||
+ | |- | ||
+ | |<code>void SwkbdInactivateSelectCursor()</code> | ||
+ | |<code>SwkbdInactivateSelectCursor__3RplFv</code> | ||
+ | |Disables selection? | ||
+ | |No clear return value. Will return a pointer to some kind of internal struct due to lazy programming. Split up over several chunks. | ||
+ | |- | ||
+ | |<code>int SwkbdInitLearnDic(void*)</code> | ||
+ | |<code>SwkbdInitLearnDic__3RplFPv</code> | ||
+ | |Enables self-learning predictive text? | ||
+ | |Returns 0 or a status code from a subroutine. | ||
+ | |- | ||
+ | |<code>void SwkbdMuteAllSound(bool)</code> | ||
+ | |<code>SwkbdMuteAllSound__3RplFb</code> | ||
+ | | | ||
+ | |Writes argument 1 to an internal struct, returns argument 1 due to lazy programming. | ||
|} | |} |
Revision as of 06:28, 28 August 2016
swkbd.rpl is the system library that allows applications to use the Wii U's on-screen keyboard. It is one of the only libraries to export C++ functions; thus it isn't known how to use them in homebrew at this point.
Functions
All the swkbd functions are C++ functions in the namespace Rpl::
. To export them with OSDynLoad, you have to use their C symbol names (as listed).
Initialisation
Prototype | Symbol name (5.5.1) | Description | Reverse-Engineering Notes |
---|---|---|---|
void SwkbdCreate(unsigned char*, nn::swkbd::RegionType, unsigned int, FSClient*)
|
SwkbdCreate__3RplFPUcQ3_2nn5swkbd10RegionTypeUiP8FSClient
|
Sets up a structure in memory | No clear return value. Will return a mutex pointer (1004D294 on 5.5.1) from memory due to lazy programming. |
void SwkbdDestroy()
|
SwkbdDestroy__3RplFv
|
No clear return value. |
Keyboard Control
Prototype | Symbol name (5.5.1) | Description | Reverse-Engineering Notes |
---|---|---|---|
int SwkbdAppearInputForm(nn::swkbd::AppearArg const &)
|
SwkbdAppearInputForm__3RplFRCQ3_2nn5swkbd9AppearArg
|
Returns 0 or a status code from a subroutine. | |
int SwkbdAppearKeyboard(nn:swkbd::KeyboardArg)
|
SwkbdAppearKeyboard__3RplFRCQ3_2nn5swkbd11KeyboardArg
|
Returns 0 or a status code from a subroutine. | |
int SwkbdDisappearInputForm()
|
SwkbdDisappearInputForm__3RplFv
|
Returns 0 or a status code from a subroutine. | |
int SwkbdDissappearKeyboard()
|
SwkbdDisappearKeyboard__3RplFv
|
Returns 0 or a status code from a subroutine. | |
void SwkbdInactivateSelectCursor()
|
SwkbdInactivateSelectCursor__3RplFv
|
Disables selection? | No clear return value. Will return a pointer to some kind of internal struct due to lazy programming. Split up over several chunks. |
int SwkbdInitLearnDic(void*)
|
SwkbdInitLearnDic__3RplFPv
|
Enables self-learning predictive text? | Returns 0 or a status code from a subroutine. |
void SwkbdMuteAllSound(bool)
|
SwkbdMuteAllSound__3RplFb
|
Writes argument 1 to an internal struct, returns argument 1 due to lazy programming. |