mirror of
https://github.com/Lime3DS/Lime3DS
synced 2024-12-26 09:02:44 -06:00
Merge pull request #3173 from shinyquagsire23/nfc-o3ds-stub
Services/NFC: Stub StartTagScanning as it should be for o3DS
This commit is contained in:
commit
56db8e0858
2 changed files with 22 additions and 5 deletions
|
@ -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>();
|
||||||
|
|
||||||
|
ResultCode result = RESULT_SUCCESS;
|
||||||
|
|
||||||
|
// TODO(shinyquagsire23): Implement NFC tag detection, for now stub result
|
||||||
|
result = ResultCode(ErrCodes::CommandInvalidForState, ErrorModule::NFC,
|
||||||
|
ErrorSummary::InvalidState, ErrorLevel::Status);
|
||||||
|
|
||||||
|
if (result == RESULT_SUCCESS) {
|
||||||
nfc_tag_state = TagState::TagInRange;
|
nfc_tag_state = TagState::TagInRange;
|
||||||
tag_in_range_event->Signal();
|
tag_in_range_event->Signal();
|
||||||
|
}
|
||||||
|
|
||||||
cmd_buff[1] = RESULT_SUCCESS.raw; // No error
|
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
||||||
LOG_WARNING(Service_NFC, "(STUBBED) called");
|
rb.Push(result);
|
||||||
|
LOG_WARNING(Service_NFC, "(STUBBED) called, in_val=%04x", in_val);
|
||||||
}
|
}
|
||||||
|
|
||||||
void StopTagScanning(Interface* self) {
|
void StopTagScanning(Interface* self) {
|
||||||
|
|
|
@ -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,
|
||||||
|
|
Loading…
Reference in a new issue