apt: Remove aptLaunchLibraryApplet's return value/hidden aptMainLoop call

This commit is contained in:
fincs 2020-06-10 20:14:01 +02:00
parent ac8656f8b2
commit 6ce690828c
No known key found for this signature in database
GPG Key ID: 62C7609ADA219C60
5 changed files with 28 additions and 38 deletions

View File

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

View File

@ -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.

View File

@ -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)

View File

@ -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;
}

View File

@ -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)