14 changed files with 200 additions and 190 deletions
-
2src/core/frontend/applets/cabinet.cpp
-
7src/core/frontend/applets/cabinet.h
-
16src/core/hle/service/am/applets/applet_cabinet.cpp
-
11src/core/hle/service/am/applets/applet_cabinet.h
-
4src/core/hle/service/nfp/nfp_device.cpp
-
2src/input_common/drivers/virtual_amiibo.cpp
-
2src/input_common/drivers/virtual_amiibo.h
-
6src/yuzu/CMakeLists.txt
-
93src/yuzu/applets/qt_amiibo_manager.h
-
117src/yuzu/applets/qt_amiibo_settings.cpp
-
83src/yuzu/applets/qt_amiibo_settings.h
-
17src/yuzu/applets/qt_amiibo_settings.ui
-
12src/yuzu/main.cpp
-
4src/yuzu/main.h
@ -1,93 +0,0 @@ |
|||
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project |
|||
// SPDX-License-Identifier: GPL-2.0-or-later |
|||
|
|||
#pragma once |
|||
|
|||
#include <array> |
|||
#include <memory> |
|||
#include <QDialog> |
|||
#include "core/frontend/applets/cabinet.h" |
|||
|
|||
class GMainWindow; |
|||
class QCheckBox; |
|||
class QComboBox; |
|||
class QDialogButtonBox; |
|||
class QGroupBox; |
|||
class QLabel; |
|||
|
|||
class InputProfiles; |
|||
|
|||
namespace InputCommon { |
|||
class InputSubsystem; |
|||
} |
|||
|
|||
namespace Ui { |
|||
class QtAmiiboManagerDialog; |
|||
} |
|||
|
|||
namespace Core { |
|||
class System; |
|||
} |
|||
|
|||
namespace Core::HID { |
|||
class HIDCore; |
|||
enum class NpadStyleIndex : u8; |
|||
} // namespace Core::HID |
|||
|
|||
namespace Service::NFP { |
|||
class NfpDevice; |
|||
} // namespace Service::NFP |
|||
|
|||
class QtAmiiboManagerDialog final : public QDialog { |
|||
Q_OBJECT |
|||
|
|||
public: |
|||
explicit QtAmiiboManagerDialog(QWidget* parent, Core::Frontend::CabinetParameters parameters_, |
|||
InputCommon::InputSubsystem* input_subsystem_, |
|||
std::shared_ptr<Service::NFP::NfpDevice> nfp_device_); |
|||
~QtAmiiboManagerDialog() override; |
|||
|
|||
int exec() override; |
|||
|
|||
std::string GetName(); |
|||
|
|||
private: |
|||
void LoadInfo(); |
|||
void LoadAmiiboApiInfo(std::string amiibo_id); |
|||
void LoadAmiiboData(); |
|||
void LoadAmiiboGameInfo(); |
|||
void SetGameDataName(u32 application_area_id); |
|||
void SetManagerDescription(); |
|||
|
|||
std::unique_ptr<Ui::QtAmiiboManagerDialog> ui; |
|||
|
|||
InputCommon::InputSubsystem* input_subsystem; |
|||
std::shared_ptr<Service::NFP::NfpDevice> nfp_device; |
|||
|
|||
// Parameters sent in from the backend HLE applet. |
|||
Core::Frontend::CabinetParameters parameters; |
|||
|
|||
// If false amiibo manager failed to load |
|||
bool is_initalized{}; |
|||
}; |
|||
|
|||
class QtAmiiboManager final : public QObject, public Core::Frontend::CabinetApplet { |
|||
Q_OBJECT |
|||
|
|||
public: |
|||
explicit QtAmiiboManager(GMainWindow& parent); |
|||
~QtAmiiboManager() override; |
|||
|
|||
void ShowCabinetApplet(std::function<void(bool, const std::string&)> callback_, |
|||
const Core::Frontend::CabinetParameters& parameters, |
|||
std::shared_ptr<Service::NFP::NfpDevice> nfp_device) const override; |
|||
|
|||
signals: |
|||
void MainWindowShowAmiiboManager(const Core::Frontend::CabinetParameters& parameters, |
|||
std::shared_ptr<Service::NFP::NfpDevice> nfp_device) const; |
|||
|
|||
private: |
|||
void MainWindowFinished(bool is_success, std::string name); |
|||
|
|||
mutable std::function<void(bool, const std::string&)> callback; |
|||
}; |
|||
@ -0,0 +1,83 @@ |
|||
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project |
|||
// SPDX-License-Identifier: GPL-2.0-or-later |
|||
|
|||
#pragma once |
|||
|
|||
#include <array> |
|||
#include <memory> |
|||
#include <QDialog> |
|||
#include "core/frontend/applets/cabinet.h" |
|||
|
|||
class GMainWindow; |
|||
class QCheckBox; |
|||
class QComboBox; |
|||
class QDialogButtonBox; |
|||
class QGroupBox; |
|||
class QLabel; |
|||
|
|||
namespace InputCommon { |
|||
class InputSubsystem; |
|||
} |
|||
|
|||
namespace Ui { |
|||
class QtAmiiboSettingsDialog; |
|||
} |
|||
|
|||
namespace Service::NFP { |
|||
class NfpDevice; |
|||
} // namespace Service::NFP |
|||
|
|||
class QtAmiiboSettingsDialog final : public QDialog { |
|||
Q_OBJECT |
|||
|
|||
public: |
|||
explicit QtAmiiboSettingsDialog(QWidget* parent, Core::Frontend::CabinetParameters parameters_, |
|||
InputCommon::InputSubsystem* input_subsystem_, |
|||
std::shared_ptr<Service::NFP::NfpDevice> nfp_device_); |
|||
~QtAmiiboSettingsDialog() override; |
|||
|
|||
int exec() override; |
|||
|
|||
std::string GetName() const; |
|||
|
|||
private: |
|||
void LoadInfo(); |
|||
void LoadAmiiboInfo(); |
|||
void LoadAmiiboApiInfo(std::string_view amiibo_id); |
|||
void LoadAmiiboData(); |
|||
void LoadAmiiboGameInfo(); |
|||
void SetGameDataName(u32 application_area_id); |
|||
void SetSettingsDescription(); |
|||
|
|||
std::unique_ptr<Ui::QtAmiiboSettingsDialog> ui; |
|||
|
|||
InputCommon::InputSubsystem* input_subsystem; |
|||
std::shared_ptr<Service::NFP::NfpDevice> nfp_device; |
|||
|
|||
// Parameters sent in from the backend HLE applet. |
|||
Core::Frontend::CabinetParameters parameters; |
|||
|
|||
// If false amiibo settings failed to load |
|||
bool is_initalized{}; |
|||
}; |
|||
|
|||
class QtAmiiboSettings final : public QObject, public Core::Frontend::CabinetApplet { |
|||
Q_OBJECT |
|||
|
|||
public: |
|||
explicit QtAmiiboSettings(GMainWindow& parent); |
|||
~QtAmiiboSettings() override; |
|||
|
|||
void ShowCabinetApplet(const Core::Frontend::CabinetCallback& callback_, |
|||
const Core::Frontend::CabinetParameters& parameters, |
|||
std::shared_ptr<Service::NFP::NfpDevice> nfp_device) const override; |
|||
|
|||
signals: |
|||
void MainWindowShowAmiiboSettings(const Core::Frontend::CabinetParameters& parameters, |
|||
std::shared_ptr<Service::NFP::NfpDevice> nfp_device) const; |
|||
|
|||
private: |
|||
void MainWindowFinished(bool is_success, const std::string& name); |
|||
|
|||
mutable Core::Frontend::CabinetCallback callback; |
|||
}; |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue