general: Address review comments

This commit is contained in:
german77 2022-11-13 15:14:08 -06:00
parent a253d1557d
commit 75e6ec85e1
14 changed files with 200 additions and 190 deletions

View file

@ -11,7 +11,7 @@ namespace Core::Frontend {
CabinetApplet::~CabinetApplet() = default;
void DefaultCabinetApplet::ShowCabinetApplet(
std::function<void(bool, const std::string&)> callback, const CabinetParameters& parameters,
const CabinetCallback& callback, const CabinetParameters& parameters,
std::shared_ptr<Service::NFP::NfpDevice> nfp_device) const {
LOG_WARNING(Service_AM, "(STUBBED) called");
callback(false, {});

View file

@ -18,18 +18,19 @@ struct CabinetParameters {
Service::NFP::CabinetMode mode;
};
using CabinetCallback = std::function<void(bool, const std::string&)>;
class CabinetApplet {
public:
virtual ~CabinetApplet();
virtual void ShowCabinetApplet(std::function<void(bool, const std::string&)> callback,
virtual void ShowCabinetApplet(const CabinetCallback& callback,
const CabinetParameters& parameters,
std::shared_ptr<Service::NFP::NfpDevice> nfp_device) const = 0;
};
class DefaultCabinetApplet final : public CabinetApplet {
public:
void ShowCabinetApplet(std::function<void(bool, const std::string&)> callback,
const CabinetParameters& parameters,
void ShowCabinetApplet(const CabinetCallback& callback, const CabinetParameters& parameters,
std::shared_ptr<Service::NFP::NfpDevice> nfp_device) const override;
};

View file

@ -98,7 +98,7 @@ void Cabinet::Execute() {
}
}
void Cabinet::DisplayCompleted(bool apply_changes, const std::string& amiibo_name) {
void Cabinet::DisplayCompleted(bool apply_changes, std::string_view amiibo_name) {
Service::Mii::MiiManager manager;
ReturnValueForAmiiboSettings applet_output{};
@ -118,7 +118,7 @@ void Cabinet::DisplayCompleted(bool apply_changes, const std::string& amiibo_nam
switch (applet_input_common.applet_mode) {
case Service::NFP::CabinetMode::StartNicknameAndOwnerSettings: {
Service::NFP::AmiiboName name{};
memcpy(name.data(), amiibo_name.data(), std::min(amiibo_name.size(), name.size() - 1));
std::memcpy(name.data(), amiibo_name.data(), std::min(amiibo_name.size(), name.size() - 1));
nfp_device->SetNicknameAndOwner(name);
break;
}
@ -142,12 +142,12 @@ void Cabinet::DisplayCompleted(bool apply_changes, const std::string& amiibo_nam
const auto tag_result = nfp_device->GetTagInfo(applet_output.tag_info);
nfp_device->Finalize();
if (reg_result.IsSuccess() && tag_result.IsSuccess()) {
applet_output.result = CabinetResult::All;
} else if (reg_result.IsSuccess()) {
applet_output.result = CabinetResult::RegisterInfo;
} else if (tag_result.IsSuccess()) {
applet_output.result = CabinetResult::TagInfo;
if (reg_result.IsSuccess()) {
applet_output.result |= CabinetResult::RegisterInfo;
}
if (tag_result.IsSuccess()) {
applet_output.result |= CabinetResult::TagInfo;
}
std::vector<u8> out_data(sizeof(ReturnValueForAmiiboSettings));

View file

@ -25,16 +25,17 @@ class NfpDevice;
namespace Service::AM::Applets {
enum class CabinetAppletVersion : s32 {
enum class CabinetAppletVersion : u32 {
Version1 = 0x1,
};
enum class CabinetResult : u8 {
Cancel,
Cancel = 0,
TagInfo = 1 << 1,
RegisterInfo = 1 << 2,
All = TagInfo | RegisterInfo,
};
DECLARE_ENUM_FLAG_OPERATORS(CabinetResult)
// This is nn::nfp::AmiiboSettingsStartParam
struct AmiiboSettingsStartParam {
@ -45,7 +46,7 @@ struct AmiiboSettingsStartParam {
static_assert(sizeof(AmiiboSettingsStartParam) == 0x30,
"AmiiboSettingsStartParam is an invalid size");
#pragma pack(1)
#pragma pack(push, 1)
// This is nn::nfp::StartParamForAmiiboSettings
struct StartParamForAmiiboSettings {
u8 param_1;
@ -72,7 +73,7 @@ struct ReturnValueForAmiiboSettings {
};
static_assert(sizeof(ReturnValueForAmiiboSettings) == 0x188,
"ReturnValueForAmiiboSettings is an invalid size");
#pragma pack()
#pragma pack(pop)
class Cabinet final : public Applet {
public:
@ -86,7 +87,7 @@ public:
Result GetStatus() const override;
void ExecuteInteractive() override;
void Execute() override;
void DisplayCompleted(bool apply_changes, const std::string& amiibo_name);
void DisplayCompleted(bool apply_changes, std::string_view amiibo_name);
void Cancel();
private:

View file

@ -148,7 +148,7 @@ void NfpDevice::Finalize() {
device_state = DeviceState::Unavailable;
}
Result NfpDevice::StartDetection([[maybe_unused]] TagProtocol allowed_protocol) {
Result NfpDevice::StartDetection(TagProtocol allowed_protocol) {
if (device_state != DeviceState::Initialized && device_state != DeviceState::TagRemoved) {
LOG_ERROR(Service_NFP, "Wrong device state {}", device_state);
return WrongDeviceState;
@ -475,6 +475,8 @@ Result NfpDevice::OpenApplicationArea(u32 access_id) {
}
Result NfpDevice::GetApplicationAreaId(u32& application_area_id) const {
application_area_id = {};
if (device_state != DeviceState::TagMounted) {
LOG_ERROR(Service_NFP, "Wrong device state {}", device_state);
if (device_state == DeviceState::TagRemoved) {