mirror of
https://github.com/wiiu-env/wiiload_plugin.git
synced 2024-11-22 10:39:16 +01:00
Use latest libwupsbackend version
This commit is contained in:
parent
aecc164dda
commit
38d4578c36
@ -1,7 +1,7 @@
|
|||||||
FROM ghcr.io/wiiu-env/devkitppc:20231112
|
FROM ghcr.io/wiiu-env/devkitppc:20231112
|
||||||
|
|
||||||
COPY --from=ghcr.io/wiiu-env/wiiupluginsystem:0.8.0-dev-20240302-3b5cc2f /artifacts $DEVKITPRO
|
COPY --from=ghcr.io/wiiu-env/wiiupluginsystem:0.8.0-dev-20240302-3b5cc2f /artifacts $DEVKITPRO
|
||||||
COPY --from=ghcr.io/wiiu-env/libwupsbackend:20230621 /artifacts $DEVKITPRO
|
COPY --from=ghcr.io/wiiu-env/libwupsbackend:0.1.3-dev-20240323-9493c4f /artifacts $DEVKITPRO
|
||||||
COPY --from=ghcr.io/wiiu-env/librpxloader:20230621 /artifacts $DEVKITPRO
|
COPY --from=ghcr.io/wiiu-env/librpxloader:20230621 /artifacts $DEVKITPRO
|
||||||
COPY --from=ghcr.io/wiiu-env/libnotifications:20230621 /artifacts $DEVKITPRO
|
COPY --from=ghcr.io/wiiu-env/libnotifications:20230621 /artifacts $DEVKITPRO
|
||||||
|
|
||||||
|
@ -183,39 +183,41 @@ TcpReceiver::eLoadResults TcpReceiver::tryLoadRPX(uint8_t *data, uint32_t fileSi
|
|||||||
|
|
||||||
TcpReceiver::eLoadResults TcpReceiver::tryLoadWPS(uint8_t *data, uint32_t fileSize) {
|
TcpReceiver::eLoadResults TcpReceiver::tryLoadWPS(uint8_t *data, uint32_t fileSize) {
|
||||||
if (data[0x7] == 0xCA && data[0x8] == 0xFE && data[0x9] == 0x50 && data[0xA] == 0x4C) {
|
if (data[0x7] == 0xCA && data[0x8] == 0xFE && data[0x9] == 0x50 && data[0xA] == 0x4C) {
|
||||||
auto newContainer = WUPSBackend::PluginUtils::getPluginForBuffer((char *) data, fileSize);
|
PluginBackendApiErrorType err;
|
||||||
if (newContainer) {
|
auto newContainerOpt = WUPSBackend::PluginUtils::getPluginForBuffer((char *) data, fileSize, err);
|
||||||
auto plugins = WUPSBackend::PluginUtils::getLoadedPlugins(32);
|
if (newContainerOpt) {
|
||||||
|
auto pluginList = WUPSBackend::PluginUtils::getLoadedPlugins(err);
|
||||||
auto &metaInformation = newContainer.value()->getMetaInformation();
|
if (err != PLUGIN_BACKEND_API_ERROR_NONE) {
|
||||||
|
DEBUG_FUNCTION_LINE_ERR("Failed to load plugin list.");
|
||||||
|
return PLUGIN_PARSE_FAILED;
|
||||||
|
}
|
||||||
|
|
||||||
|
const auto &metaInformation = newContainerOpt->getMetaInformation();
|
||||||
// remove plugins with the same name and author as our new plugin
|
// remove plugins with the same name and author as our new plugin
|
||||||
plugins.erase(std::remove_if(plugins.begin(), plugins.end(),
|
pluginList.erase(std::remove_if(pluginList.begin(), pluginList.end(),
|
||||||
[metaInformation](auto &plugin) {
|
[&metaInformation](auto &plugin) {
|
||||||
return plugin->getMetaInformation()->getName() == metaInformation->getName() &&
|
auto res = plugin.getMetaInformation().getName() == metaInformation.getName() &&
|
||||||
plugin->getMetaInformation()->getAuthor() == metaInformation->getAuthor();
|
plugin.getMetaInformation().getAuthor() == metaInformation.getAuthor();
|
||||||
|
return res;
|
||||||
}),
|
}),
|
||||||
plugins.end());
|
pluginList.end());
|
||||||
|
|
||||||
// add the new plugin
|
// add the new plugin
|
||||||
plugins.push_back(std::move(newContainer.value()));
|
pluginList.push_back(std::move(newContainerOpt.value()));
|
||||||
|
|
||||||
#ifdef VERBOSE_DEBUG
|
#ifdef VERBOSE_DEBUG
|
||||||
for (auto &plugin : plugins) {
|
for (const auto &plugin : pluginList) {
|
||||||
DEBUG_FUNCTION_LINE_VERBOSE("name: %s", plugin->getMetaInformation()->getName().c_str());
|
DEBUG_FUNCTION_LINE_VERBOSE("name: %s", plugin.getMetaInformation().getName().c_str());
|
||||||
DEBUG_FUNCTION_LINE_VERBOSE("author: %s", plugin->getMetaInformation()->getAuthor().c_str());
|
DEBUG_FUNCTION_LINE_VERBOSE("author: %s", plugin.getMetaInformation().getAuthor().c_str());
|
||||||
DEBUG_FUNCTION_LINE_VERBOSE("handle: %08X", plugin->getPluginData()->getHandle());
|
DEBUG_FUNCTION_LINE_VERBOSE("handle: %08X", plugin.getPluginData().getHandle());
|
||||||
DEBUG_FUNCTION_LINE_VERBOSE("====");
|
DEBUG_FUNCTION_LINE_VERBOSE("====");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
if ((err = WUPSBackend::PluginUtils::LoadAndLinkOnRestart(pluginList)) != PLUGIN_BACKEND_API_ERROR_NONE) {
|
||||||
if (WUPSBackend::PluginUtils::LoadAndLinkOnRestart(plugins) != 0) {
|
DEBUG_FUNCTION_LINE_ERR("WUPSBackend::PluginUtils::LoadAndLinkOnRestart failed. %s", WUPSBackend::GetStatusStr(err));
|
||||||
DEBUG_FUNCTION_LINE_ERR("WUPSBackend::PluginUtils::LoadAndLinkOnRestart failed");
|
|
||||||
return PLUGIN_LOAD_LINK_FAILED;
|
return PLUGIN_LOAD_LINK_FAILED;
|
||||||
}
|
}
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
DEBUG_FUNCTION_LINE_ERR("Failed to parse plugin for buffer: %08X size %d", data, fileSize);
|
DEBUG_FUNCTION_LINE_ERR("Failed to parse plugin for buffer: %08X size %d. Error: %s", data, fileSize, WUPSBackend::GetStatusStr(err));
|
||||||
return PLUGIN_PARSE_FAILED;
|
return PLUGIN_PARSE_FAILED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user