diff --git a/libctru/include/3ds/applets/miiselector.h b/libctru/include/3ds/applets/miiselector.h index cab0698..438465e 100644 --- a/libctru/include/3ds/applets/miiselector.h +++ b/libctru/include/3ds/applets/miiselector.h @@ -89,9 +89,8 @@ void miiSelectorInit(MiiSelectorConf *conf); * @brief Launch the Mii selector library applet * * @param conf Configuration determining how the applet should behave - * @param returnbuf Data returned by the applet */ -Result miiSelectorLaunch(const MiiSelectorConf *conf, MiiSelectorReturn* returnbuf); +void miiSelectorLaunch(const MiiSelectorConf *conf, MiiSelectorReturn* returnbuf); /** * @brief Sets title of the Mii selector library applet diff --git a/libctru/include/3ds/services/apt.h b/libctru/include/3ds/services/apt.h index 46a04e0..f4d17e6 100644 --- a/libctru/include/3ds/services/apt.h +++ b/libctru/include/3ds/services/apt.h @@ -211,9 +211,8 @@ void aptSetMessageCallback(aptMessageCb callback, void* user); * @param buf Input/output buffer that contains launch parameters on entry and result data on exit. * @param bufsize Size of the buffer. * @param handle Handle to pass to the library applet. - * @return Whether the application should continue running after the library applet launch. */ -bool aptLaunchLibraryApplet(NS_APPID appId, void* buf, size_t bufsize, Handle handle); +void aptLaunchLibraryApplet(NS_APPID appId, void* buf, size_t bufsize, Handle handle); /** * @brief Sets the chainloader target. diff --git a/libctru/source/applets/miiselector.c b/libctru/source/applets/miiselector.c index 933c146..2421c9d 100644 --- a/libctru/source/applets/miiselector.c +++ b/libctru/source/applets/miiselector.c @@ -18,7 +18,7 @@ void miiSelectorInit(MiiSelectorConf *conf) conf->mii_whitelist[i] = 1; } -Result miiSelectorLaunch(const MiiSelectorConf *conf, MiiSelectorReturn *returnbuf) +void miiSelectorLaunch(const MiiSelectorConf *conf, MiiSelectorReturn *returnbuf) { union { MiiSelectorConf config; @@ -28,11 +28,9 @@ Result miiSelectorLaunch(const MiiSelectorConf *conf, MiiSelectorReturn *returnb memcpy(&ctx.config, conf, sizeof(MiiSelectorConf)); ctx.config.magic = MIISELECTOR_MAGIC; - Result ret = aptLaunchLibraryApplet(APPID_APPLETED, &ctx.config, sizeof(MiiSelectorConf), 0); - if(R_SUCCEEDED(ret) && returnbuf) + aptLaunchLibraryApplet(APPID_APPLETED, &ctx.config, sizeof(MiiSelectorConf), 0); + if(returnbuf) memcpy(returnbuf, &ctx.ret, sizeof(MiiSelectorReturn)); - - return ret; } static void miiSelectorConvertToUTF8(char* out, const u16* in, int max) diff --git a/libctru/source/applets/swkbd.c b/libctru/source/applets/swkbd.c index 8e712ae..d743ca2 100644 --- a/libctru/source/applets/swkbd.c +++ b/libctru/source/applets/swkbd.c @@ -238,39 +238,35 @@ SwkbdButton swkbdInputText(SwkbdState* swkbd, char* buf, size_t bufsize) // Launch swkbd memset(swkbd->reserved, 0, sizeof(swkbd->reserved)); if (extra.callback) aptSetMessageCallback(swkbdMessageCallback, &extra); - bool ret = aptLaunchLibraryApplet(APPID_SOFTWARE_KEYBOARD, swkbd, sizeof(*swkbd), swkbdSharedMemHandle); + aptLaunchLibraryApplet(APPID_SOFTWARE_KEYBOARD, swkbd, sizeof(*swkbd), swkbdSharedMemHandle); if (extra.callback) aptSetMessageCallback(NULL, NULL); svcCloseHandle(swkbdSharedMemHandle); SwkbdButton button = SWKBD_BUTTON_NONE; - - if (ret) + switch (swkbd->result) { - u16* text16 = (u16*)(swkbdSharedMem+swkbd->text_offset); - text16[swkbd->text_length] = 0; - swkbdConvertToUTF8(buf, text16, bufsize-1); - if (swkbd->save_state_flags & BIT(0)) memcpy(extra.status_data, swkbdSharedMem+swkbd->status_offset, sizeof(SwkbdStatusData)); - if (swkbd->save_state_flags & BIT(1)) memcpy(extra.learning_data, swkbdSharedMem+swkbd->learning_offset, sizeof(SwkbdLearningData)); - - switch (swkbd->result) - { - case SWKBD_D1_CLICK0: - case SWKBD_D2_CLICK0: - button = SWKBD_BUTTON_LEFT; - break; - case SWKBD_D2_CLICK1: - button = SWKBD_BUTTON_MIDDLE; - break; - case SWKBD_D0_CLICK: - case SWKBD_D1_CLICK1: - case SWKBD_D2_CLICK2: - button = SWKBD_BUTTON_RIGHT; - break; - default: - break; - } + case SWKBD_D1_CLICK0: + case SWKBD_D2_CLICK0: + button = SWKBD_BUTTON_LEFT; + break; + case SWKBD_D2_CLICK1: + button = SWKBD_BUTTON_MIDDLE; + break; + case SWKBD_D0_CLICK: + case SWKBD_D1_CLICK1: + case SWKBD_D2_CLICK2: + button = SWKBD_BUTTON_RIGHT; + break; + default: + break; } + u16* text16 = (u16*)(swkbdSharedMem+swkbd->text_offset); + text16[swkbd->text_length] = 0; + swkbdConvertToUTF8(buf, text16, bufsize-1); + if (swkbd->save_state_flags & BIT(0)) memcpy(extra.status_data, swkbdSharedMem+swkbd->status_offset, sizeof(SwkbdStatusData)); + if (swkbd->save_state_flags & BIT(1)) memcpy(extra.learning_data, swkbdSharedMem+swkbd->learning_offset, sizeof(SwkbdLearningData)); + free(swkbdSharedMem); return button; } diff --git a/libctru/source/services/apt.c b/libctru/source/services/apt.c index dde1986..e2ad1a8 100644 --- a/libctru/source/services/apt.c +++ b/libctru/source/services/apt.c @@ -730,7 +730,7 @@ void aptSetMessageCallback(aptMessageCb callback, void* user) aptMessageFuncData = user; } -bool aptLaunchLibraryApplet(NS_APPID appId, void* buf, size_t bufsize, Handle handle) +void aptLaunchLibraryApplet(NS_APPID appId, void* buf, size_t bufsize, Handle handle) { bool sleep = aptIsSleepAllowed(); @@ -752,8 +752,6 @@ bool aptLaunchLibraryApplet(NS_APPID appId, void* buf, size_t bufsize, Handle ha aptWaitForWakeUp(TR_LIBAPPLET); memcpy(buf, aptParameters, bufsize); aptSetSleepAllowed(sleep); - - return aptMainLoop(); } Result APT_GetLockHandle(u16 flags, Handle* lockHandle)