Merge pull request #3173 from shinyquagsire23/nfc-o3ds-stub

Services/NFC: Stub StartTagScanning as it should be for o3DS
This commit is contained in:
bunnei 2017-12-04 16:11:54 -05:00 committed by GitHub
commit 56db8e0858
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 5 deletions

View file

@ -3,6 +3,7 @@
// Refer to the license.txt file included. // Refer to the license.txt file included.
#include "core/hle/ipc.h" #include "core/hle/ipc.h"
#include "core/hle/ipc_helpers.h"
#include "core/hle/kernel/event.h" #include "core/hle/kernel/event.h"
#include "core/hle/kernel/handle_table.h" #include "core/hle/kernel/handle_table.h"
#include "core/hle/service/nfc/nfc.h" #include "core/hle/service/nfc/nfc.h"
@ -53,13 +54,23 @@ void StopCommunication(Interface* self) {
} }
void StartTagScanning(Interface* self) { void StartTagScanning(Interface* self) {
u32* cmd_buff = Kernel::GetCommandBuffer(); IPC::RequestParser rp(Kernel::GetCommandBuffer(), 5, 1, 0); // 0x00050040
u16 in_val = rp.Pop<u16>();
nfc_tag_state = TagState::TagInRange; ResultCode result = RESULT_SUCCESS;
tag_in_range_event->Signal();
cmd_buff[1] = RESULT_SUCCESS.raw; // No error // TODO(shinyquagsire23): Implement NFC tag detection, for now stub result
LOG_WARNING(Service_NFC, "(STUBBED) called"); result = ResultCode(ErrCodes::CommandInvalidForState, ErrorModule::NFC,
ErrorSummary::InvalidState, ErrorLevel::Status);
if (result == RESULT_SUCCESS) {
nfc_tag_state = TagState::TagInRange;
tag_in_range_event->Signal();
}
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
rb.Push(result);
LOG_WARNING(Service_NFC, "(STUBBED) called, in_val=%04x", in_val);
} }
void StopTagScanning(Interface* self) { void StopTagScanning(Interface* self) {

View file

@ -12,6 +12,12 @@ class Interface;
namespace NFC { namespace NFC {
namespace ErrCodes {
enum {
CommandInvalidForState = 512,
};
} // namespace ErrCodes
enum class TagState : u8 { enum class TagState : u8 {
NotInitialized = 0, NotInitialized = 0,
NotScanning = 1, NotScanning = 1,