mirror of
https://github.com/yuzu-mirror/yuzu
synced 2024-11-28 02:30:16 +00:00
service: nfp: address comments
This commit is contained in:
parent
afea5c163f
commit
3ce0ef04dd
9 changed files with 29 additions and 26 deletions
|
@ -332,7 +332,7 @@ public:
|
||||||
return CameraError::NotSupported;
|
return CameraError::NotSupported;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual NfcState SupportsNfc() {
|
virtual NfcState SupportsNfc() const {
|
||||||
return NfcState::NotSupported;
|
return NfcState::NotSupported;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -291,7 +291,7 @@ Common::Input::NfcStatus TransformToNfc(const Common::Input::CallbackStatus& cal
|
||||||
Common::Input::NfcStatus nfc{};
|
Common::Input::NfcStatus nfc{};
|
||||||
switch (callback.type) {
|
switch (callback.type) {
|
||||||
case Common::Input::InputType::Nfc:
|
case Common::Input::InputType::Nfc:
|
||||||
nfc = callback.nfc_status;
|
return callback.nfc_status;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
LOG_ERROR(Input, "Conversion from type {} to NFC not implemented", callback.type);
|
LOG_ERROR(Input, "Conversion from type {} to NFC not implemented", callback.type);
|
||||||
|
|
|
@ -42,10 +42,11 @@ NfpDevice::NfpDevice(Core::HID::NpadIdType npad_id_, Core::System& system_,
|
||||||
}
|
}
|
||||||
|
|
||||||
NfpDevice::~NfpDevice() {
|
NfpDevice::~NfpDevice() {
|
||||||
if (is_controller_set) {
|
if (!is_controller_set) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
npad_device->DeleteCallback(callback_key);
|
npad_device->DeleteCallback(callback_key);
|
||||||
is_controller_set = false;
|
is_controller_set = false;
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void NfpDevice::NpadUpdate(Core::HID::ControllerTriggerType type) {
|
void NfpDevice::NpadUpdate(Core::HID::ControllerTriggerType type) {
|
||||||
|
@ -453,7 +454,7 @@ Result NfpDevice::SetApplicationArea(const std::vector<u8>& data) {
|
||||||
return ResultSuccess;
|
return ResultSuccess;
|
||||||
}
|
}
|
||||||
|
|
||||||
Result NfpDevice::CreateApplicationArea(u32 access_id, const std::vector<u8>& data) {
|
Result NfpDevice::CreateApplicationArea(u32 access_id, std::span<const u8> data) {
|
||||||
if (device_state != DeviceState::TagMounted) {
|
if (device_state != DeviceState::TagMounted) {
|
||||||
LOG_ERROR(Service_NFP, "Wrong device state {}", device_state);
|
LOG_ERROR(Service_NFP, "Wrong device state {}", device_state);
|
||||||
if (device_state == DeviceState::TagRemoved) {
|
if (device_state == DeviceState::TagRemoved) {
|
||||||
|
@ -470,7 +471,7 @@ Result NfpDevice::CreateApplicationArea(u32 access_id, const std::vector<u8>& da
|
||||||
return RecreateApplicationArea(access_id, data);
|
return RecreateApplicationArea(access_id, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result NfpDevice::RecreateApplicationArea(u32 access_id, const std::vector<u8>& data) {
|
Result NfpDevice::RecreateApplicationArea(u32 access_id, std::span<const u8> data) {
|
||||||
if (device_state != DeviceState::TagMounted) {
|
if (device_state != DeviceState::TagMounted) {
|
||||||
LOG_ERROR(Service_NFP, "Wrong device state {}", device_state);
|
LOG_ERROR(Service_NFP, "Wrong device state {}", device_state);
|
||||||
if (device_state == DeviceState::TagRemoved) {
|
if (device_state == DeviceState::TagRemoved) {
|
||||||
|
|
|
@ -56,8 +56,8 @@ public:
|
||||||
Result OpenApplicationArea(u32 access_id);
|
Result OpenApplicationArea(u32 access_id);
|
||||||
Result GetApplicationArea(std::vector<u8>& data) const;
|
Result GetApplicationArea(std::vector<u8>& data) const;
|
||||||
Result SetApplicationArea(const std::vector<u8>& data);
|
Result SetApplicationArea(const std::vector<u8>& data);
|
||||||
Result CreateApplicationArea(u32 access_id, const std::vector<u8>& data);
|
Result CreateApplicationArea(u32 access_id, std::span<const u8> data);
|
||||||
Result RecreateApplicationArea(u32 access_id, const std::vector<u8>& data);
|
Result RecreateApplicationArea(u32 access_id, std::span<const u8> data);
|
||||||
Result DeleteApplicationArea();
|
Result DeleteApplicationArea();
|
||||||
|
|
||||||
u64 GetHandle() const;
|
u64 GetHandle() const;
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
|
|
||||||
#include <array>
|
#include <array>
|
||||||
|
|
||||||
|
#include "common/swap.h"
|
||||||
#include "core/hle/service/mii/types.h"
|
#include "core/hle/service/mii/types.h"
|
||||||
|
|
||||||
namespace Service::NFP {
|
namespace Service::NFP {
|
||||||
|
@ -80,33 +81,33 @@ using ApplicationArea = std::array<u8, 0xD8>;
|
||||||
using AmiiboName = std::array<char, (amiibo_name_length * 4) + 1>;
|
using AmiiboName = std::array<char, (amiibo_name_length * 4) + 1>;
|
||||||
|
|
||||||
struct AmiiboDate {
|
struct AmiiboDate {
|
||||||
u16_be raw_date{};
|
u16 raw_date{};
|
||||||
|
|
||||||
u16 DateRaw() const {
|
u16 GetValue() const {
|
||||||
return static_cast<u16>(raw_date);
|
return Common::swap16(raw_date);
|
||||||
}
|
}
|
||||||
|
|
||||||
u16 GetYear() const {
|
u16 GetYear() const {
|
||||||
return static_cast<u16>(((DateRaw() & 0xFE00) >> 9) + 2000);
|
return static_cast<u16>(((GetValue() & 0xFE00) >> 9) + 2000);
|
||||||
}
|
}
|
||||||
u8 GetMonth() const {
|
u8 GetMonth() const {
|
||||||
return static_cast<u8>(((DateRaw() & 0x01E0) >> 5) - 1);
|
return static_cast<u8>(((GetValue() & 0x01E0) >> 5) - 1);
|
||||||
}
|
}
|
||||||
u8 GetDay() const {
|
u8 GetDay() const {
|
||||||
return static_cast<u8>(DateRaw() & 0x001F);
|
return static_cast<u8>(GetValue() & 0x001F);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetYear(u16 year) {
|
void SetYear(u16 year) {
|
||||||
raw_date = DateRaw() & ~0xFE00;
|
const u16 year_converted = static_cast<u16>((year - 2000) << 9);
|
||||||
raw_date |= static_cast<u16_be>((year - 2000) << 9);
|
raw_date = Common::swap16((GetValue() & ~0xFE00) | year_converted);
|
||||||
}
|
}
|
||||||
void SetMonth(u8 month) {
|
void SetMonth(u8 month) {
|
||||||
raw_date = DateRaw() & ~0x01E0;
|
const u16 month_converted = static_cast<u16>((month + 1) << 5);
|
||||||
raw_date |= static_cast<u16_be>((month + 1) << 5);
|
raw_date = Common::swap16((GetValue() & ~0x01E0) | month_converted);
|
||||||
}
|
}
|
||||||
void SetDay(u8 day) {
|
void SetDay(u8 day) {
|
||||||
raw_date = DateRaw() & ~0x001F;
|
const u16 day_converted = static_cast<u16>(day);
|
||||||
raw_date |= static_cast<u16_be>(day);
|
raw_date = Common::swap16((GetValue() & ~0x001F) | day_converted);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
static_assert(sizeof(AmiiboDate) == 2, "AmiiboDate is an invalid size");
|
static_assert(sizeof(AmiiboDate) == 2, "AmiiboDate is an invalid size");
|
||||||
|
|
|
@ -20,7 +20,7 @@ constexpr PadIdentifier identifier = {
|
||||||
|
|
||||||
VirtualAmiibo::VirtualAmiibo(std::string input_engine_) : InputEngine(std::move(input_engine_)) {}
|
VirtualAmiibo::VirtualAmiibo(std::string input_engine_) : InputEngine(std::move(input_engine_)) {}
|
||||||
|
|
||||||
VirtualAmiibo::~VirtualAmiibo() {}
|
VirtualAmiibo::~VirtualAmiibo() = default;
|
||||||
|
|
||||||
Common::Input::PollingError VirtualAmiibo::SetPollingMode(
|
Common::Input::PollingError VirtualAmiibo::SetPollingMode(
|
||||||
[[maybe_unused]] const PadIdentifier& identifier_,
|
[[maybe_unused]] const PadIdentifier& identifier_,
|
||||||
|
@ -41,7 +41,7 @@ Common::Input::PollingError VirtualAmiibo::SetPollingMode(
|
||||||
}
|
}
|
||||||
|
|
||||||
Common::Input::NfcState VirtualAmiibo::SupportsNfc(
|
Common::Input::NfcState VirtualAmiibo::SupportsNfc(
|
||||||
[[maybe_unused]] const PadIdentifier& identifier_) {
|
[[maybe_unused]] const PadIdentifier& identifier_) const {
|
||||||
return Common::Input::NfcState::Success;
|
return Common::Input::NfcState::Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ public:
|
||||||
Common::Input::PollingError SetPollingMode(
|
Common::Input::PollingError SetPollingMode(
|
||||||
const PadIdentifier& identifier_, const Common::Input::PollingMode polling_mode_) override;
|
const PadIdentifier& identifier_, const Common::Input::PollingMode polling_mode_) override;
|
||||||
|
|
||||||
Common::Input::NfcState SupportsNfc(const PadIdentifier& identifier_) override;
|
Common::Input::NfcState SupportsNfc(const PadIdentifier& identifier_) const override;
|
||||||
|
|
||||||
Common::Input::NfcState WriteNfcData(const PadIdentifier& identifier_,
|
Common::Input::NfcState WriteNfcData(const PadIdentifier& identifier_,
|
||||||
const std::vector<u8>& data) override;
|
const std::vector<u8>& data) override;
|
||||||
|
|
|
@ -129,7 +129,8 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
// Request nfc data from a controller
|
// Request nfc data from a controller
|
||||||
virtual Common::Input::NfcState SupportsNfc([[maybe_unused]] const PadIdentifier& identifier) {
|
virtual Common::Input::NfcState SupportsNfc(
|
||||||
|
[[maybe_unused]] const PadIdentifier& identifier) const {
|
||||||
return Common::Input::NfcState::NotSupported;
|
return Common::Input::NfcState::NotSupported;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -768,7 +768,7 @@ public:
|
||||||
return input_engine->SetCameraFormat(identifier, camera_format);
|
return input_engine->SetCameraFormat(identifier, camera_format);
|
||||||
}
|
}
|
||||||
|
|
||||||
Common::Input::NfcState SupportsNfc() override {
|
Common::Input::NfcState SupportsNfc() const override {
|
||||||
return input_engine->SupportsNfc(identifier);
|
return input_engine->SupportsNfc(identifier);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue