mirror of
https://github.com/wiiu-env/WiiUPluginLoaderBackend.git
synced 2026-09-28 22:03:13 -05:00
Add ButtonComboAPI support
This commit is contained in:
@@ -12,6 +12,7 @@
|
||||
#include "utils/utils.h"
|
||||
#include "version.h"
|
||||
|
||||
#include <buttoncombo/manager.h>
|
||||
#include <coreinit/debug.h>
|
||||
#include <notifications/notifications.h>
|
||||
#include <ranges>
|
||||
@@ -32,6 +33,10 @@ WUMS_INITIALIZE() {
|
||||
OSFatal("homebrew_wupsbackend: FunctionPatcher_InitLibrary failed");
|
||||
}
|
||||
|
||||
if (ButtonComboModule_InitLibrary() != BUTTON_COMBO_MODULE_ERROR_SUCCESS) {
|
||||
OSFatal("homebrew_wupsbackend: ButtonComboModule_InitLibrary failed");
|
||||
}
|
||||
|
||||
if (const NotificationModuleStatus res = NotificationModule_InitLibrary(); res != NOTIFICATION_MODULE_RESULT_SUCCESS) {
|
||||
DEBUG_FUNCTION_LINE_ERR("Failed to init NotificationModule: %s (%d)", NotificationModule_GetStatusStr(res), res);
|
||||
gNotificationModuleLoaded = false;
|
||||
@@ -207,14 +212,6 @@ WUMS_APPLICATION_STARTS() {
|
||||
std::vector<PluginContainer> pluginsToDeinit = std::move(gLoadedPlugins);
|
||||
gLoadedPlugins = std::move(pluginsToKeep);
|
||||
|
||||
for (const auto &p : pluginsToKeep) {
|
||||
DEBUG_FUNCTION_LINE_INFO("KEEP: %s", p.getMetaInformation().getName().c_str());
|
||||
}
|
||||
|
||||
for (const auto &p : pluginsToDeinit) {
|
||||
DEBUG_FUNCTION_LINE_ERR("DEINIT: %s", p.getMetaInformation().getName().c_str());
|
||||
}
|
||||
|
||||
DEBUG_FUNCTION_LINE("Deinit unused plugins");
|
||||
CleanupPlugins(std::move(pluginsToDeinit));
|
||||
|
||||
@@ -255,6 +252,7 @@ WUMS_APPLICATION_STARTS() {
|
||||
if (const WUPSStorageError err = plugin.OpenStorage(); err != WUPS_STORAGE_ERROR_SUCCESS) {
|
||||
DEBUG_FUNCTION_LINE_ERR("Failed to open storage for plugin: %s. (%s)", plugin.getMetaInformation().getName().c_str(), WUPSStorageAPI_GetStatusStr(err));
|
||||
}
|
||||
plugin.InitButtonComboData();
|
||||
}
|
||||
PluginManagement::callInitHooks(gLoadedPlugins, needsInitsCheck);
|
||||
|
||||
@@ -287,9 +285,11 @@ void CleanupPlugins(std::vector<PluginContainer> &&pluginsToDeinit) {
|
||||
PluginManagement::RestoreFunctionPatches(pluginsToDeinit);
|
||||
|
||||
for (auto &plugin : pluginsToDeinit) {
|
||||
if (!plugin.isInitDone()) { continue; }
|
||||
if (const WUPSStorageError err = plugin.CloseStorage(); err != WUPS_STORAGE_ERROR_SUCCESS) {
|
||||
DEBUG_FUNCTION_LINE_ERR("Failed to close storage for plugin: %s", plugin.getMetaInformation().getName().c_str());
|
||||
}
|
||||
plugin.DeinitButtonComboData();
|
||||
}
|
||||
|
||||
for (const auto &pluginContainer : pluginsToDeinit) {
|
||||
|
||||
Reference in New Issue
Block a user