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:
@@ -1,36 +1,43 @@
|
||||
#include "PluginContainer.h"
|
||||
#include "utils/storage/StorageUtils.h"
|
||||
|
||||
#include <utils/buttoncombo/ButtonComboUtils.h>
|
||||
|
||||
PluginContainer::PluginContainer(PluginMetaInformation metaInformation, PluginLinkInformation pluginLinkInformation, std::shared_ptr<PluginData> pluginData)
|
||||
: mMetaInformation(std::move(metaInformation)),
|
||||
mPluginLinkInformation(std::move(pluginLinkInformation)),
|
||||
mPluginData(std::move(pluginData)) {
|
||||
// Abuse this as a stable handle that references itself and survives std::move
|
||||
*mHandle = reinterpret_cast<uint32_t>(mHandle.get());
|
||||
}
|
||||
|
||||
|
||||
PluginContainer::PluginContainer(PluginContainer &&src) : mMetaInformation(std::move(src.mMetaInformation)),
|
||||
mPluginLinkInformation(std::move(src.mPluginLinkInformation)),
|
||||
mPluginData(std::move(src.mPluginData)),
|
||||
mPluginConfigData(std::move(src.mPluginConfigData)),
|
||||
mStorageRootItem(src.mStorageRootItem),
|
||||
mInitDone(src.mInitDone)
|
||||
|
||||
{
|
||||
PluginContainer::PluginContainer(PluginContainer &&src) noexcept : mMetaInformation(std::move(src.mMetaInformation)),
|
||||
mPluginLinkInformation(std::move(src.mPluginLinkInformation)),
|
||||
mPluginData(std::move(src.mPluginData)),
|
||||
mHandle(std::move(src.mHandle)),
|
||||
mPluginConfigData(std::move(src.mPluginConfigData)),
|
||||
mStorageRootItem(src.mStorageRootItem),
|
||||
mInitDone(src.mInitDone),
|
||||
mButtonComboManagerHandle(src.mButtonComboManagerHandle) {
|
||||
src.mHandle = {};
|
||||
src.mStorageRootItem = {};
|
||||
src.mInitDone = {};
|
||||
}
|
||||
|
||||
PluginContainer &PluginContainer::operator=(PluginContainer &&src) noexcept {
|
||||
if (this != &src) {
|
||||
this->mMetaInformation = std::move(src.mMetaInformation);
|
||||
this->mPluginLinkInformation = std::move(src.mPluginLinkInformation);
|
||||
this->mPluginData = std::move(src.mPluginData);
|
||||
this->mPluginConfigData = std::move(src.mPluginConfigData);
|
||||
this->mStorageRootItem = src.mStorageRootItem;
|
||||
this->mInitDone = src.mInitDone;
|
||||
this->mMetaInformation = std::move(src.mMetaInformation);
|
||||
this->mPluginLinkInformation = std::move(src.mPluginLinkInformation);
|
||||
this->mPluginData = std::move(src.mPluginData);
|
||||
this->mPluginConfigData = std::move(src.mPluginConfigData);
|
||||
this->mHandle = std::move(src.mHandle);
|
||||
this->mStorageRootItem = src.mStorageRootItem;
|
||||
this->mInitDone = src.mInitDone;
|
||||
this->mButtonComboManagerHandle = src.mButtonComboManagerHandle;
|
||||
|
||||
src.mStorageRootItem = nullptr;
|
||||
src.mInitDone = false;
|
||||
src.mStorageRootItem = nullptr;
|
||||
src.mInitDone = false;
|
||||
src.mButtonComboManagerHandle = false;
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
@@ -39,7 +46,6 @@ const PluginMetaInformation &PluginContainer::getMetaInformation() const {
|
||||
return this->mMetaInformation;
|
||||
}
|
||||
|
||||
|
||||
const PluginLinkInformation &PluginContainer::getPluginLinkInformation() const {
|
||||
return this->mPluginLinkInformation;
|
||||
}
|
||||
@@ -53,7 +59,7 @@ std::shared_ptr<PluginData> PluginContainer::getPluginDataCopy() const {
|
||||
}
|
||||
|
||||
uint32_t PluginContainer::getHandle() const {
|
||||
return reinterpret_cast<uint32_t>(this);
|
||||
return *mHandle;
|
||||
}
|
||||
|
||||
const std::optional<PluginConfigData> &PluginContainer::getConfigData() const {
|
||||
@@ -104,4 +110,21 @@ void PluginContainer::setInitDone(const bool val) {
|
||||
|
||||
bool PluginContainer::isInitDone() const {
|
||||
return mInitDone;
|
||||
}
|
||||
|
||||
void PluginContainer::InitButtonComboData() {
|
||||
if (getMetaInformation().getWUPSVersion() < WUPSVersion(0, 8, 2)) {
|
||||
return;
|
||||
}
|
||||
mButtonComboManagerHandle = ButtonComboUtils::API::Internal::CreateButtonComboData();
|
||||
}
|
||||
void PluginContainer::DeinitButtonComboData() {
|
||||
if (getMetaInformation().getWUPSVersion() < WUPSVersion(0, 8, 2)) {
|
||||
return;
|
||||
}
|
||||
ButtonComboUtils::API::Internal::RemoveButtonComboData(mButtonComboManagerHandle);
|
||||
}
|
||||
|
||||
uint32_t PluginContainer::getButtonComboManagerHandle() const {
|
||||
return mButtonComboManagerHandle;
|
||||
}
|
||||
Reference in New Issue
Block a user