In memory of Ben “bushing” Byer, who passed away on Monday, February 8th, 2016.

Difference between revisions of "Swkbd.rpl"

From WiiUBrew
Jump to navigation Jump to search
(Add "Keyboard Control" functions)
(Add "Logic" (aka maths) functions, data (getters/setters) all that's left, will do later)
Line 63: Line 63:
 
|
 
|
 
|Writes argument 1 to an internal struct, returns argument 1 due to lazy programming.
 
|Writes argument 1 to an internal struct, returns argument 1 due to lazy programming.
 +
|}
 +
 +
===Logic===
 +
{|class="wikitable"
 +
!Prototype
 +
!Symbol name (5.5.1)
 +
!Description
 +
!Reverse-Engineering Notes
 +
|-
 +
|<code>int SwkbdCalc(nn:swkbd::ControllerInfo const &)</code>
 +
|<code>SwkbdCalc__3RplFRCQ3_2nn5swkbd14ControllerInfo</code>
 +
|
 +
|Returns a value from an internal subroutine (presumably the response from the math operation).
 +
|-
 +
|<code>int SwkbdCalcSubThreadFont(void)</code>
 +
|<code>SwkbdCalcSubThreadFont__3RplFv</code>
 +
|
 +
|Returns a value from an internal subroutine (presumably the response from the math operation).
 +
|-
 +
|<code>int SwkbdCalcSubThreadPredict(void)</code>
 +
|<code>SwkbdCalcSubThreadPredict__3RplFv</code>
 +
|
 +
|Returns a value from an internal subroutine (presumably the response from the math operation).
 
|}
 
|}

Revision as of 06:49, 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.

Logic

Prototype Symbol name (5.5.1) Description Reverse-Engineering Notes
int SwkbdCalc(nn:swkbd::ControllerInfo const &) SwkbdCalc__3RplFRCQ3_2nn5swkbd14ControllerInfo Returns a value from an internal subroutine (presumably the response from the math operation).
int SwkbdCalcSubThreadFont(void) SwkbdCalcSubThreadFont__3RplFv Returns a value from an internal subroutine (presumably the response from the math operation).
int SwkbdCalcSubThreadPredict(void) SwkbdCalcSubThreadPredict__3RplFv Returns a value from an internal subroutine (presumably the response from the math operation).