yuzu/src/core/hle/service/nfc/nfc_interface.h

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

56 lines
1.9 KiB
C++
Raw Normal View History

2022-11-09 20:04:11 +01:00
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include "core/hle/service/kernel_helpers.h"
#include "core/hle/service/nfc/nfc_types.h"
2022-11-09 20:04:11 +01:00
#include "core/hle/service/service.h"
2024-02-23 19:38:43 +01:00
namespace Service::Set {
class ISystemSettingsServer;
}
2022-11-09 20:04:11 +01:00
namespace Service::NFC {
class DeviceManager;
2022-11-09 20:04:11 +01:00
class NfcInterface : public ServiceFramework<NfcInterface> {
2022-11-09 20:04:11 +01:00
public:
explicit NfcInterface(Core::System& system_, const char* name, BackendType service_backend);
~NfcInterface();
2022-11-09 20:04:11 +01:00
2023-02-19 20:42:12 +01:00
void Initialize(HLERequestContext& ctx);
void Finalize(HLERequestContext& ctx);
void GetState(HLERequestContext& ctx);
void IsNfcEnabled(HLERequestContext& ctx);
void ListDevices(HLERequestContext& ctx);
void GetDeviceState(HLERequestContext& ctx);
void GetNpadId(HLERequestContext& ctx);
void AttachAvailabilityChangeEvent(HLERequestContext& ctx);
void StartDetection(HLERequestContext& ctx);
void StopDetection(HLERequestContext& ctx);
void GetTagInfo(HLERequestContext& ctx);
void AttachActivateEvent(HLERequestContext& ctx);
void AttachDeactivateEvent(HLERequestContext& ctx);
void ReadMifare(HLERequestContext& ctx);
2024-02-23 19:38:43 +01:00
void SetNfcEnabled(HLERequestContext& ctx);
void WriteMifare(HLERequestContext& ctx);
2023-02-19 20:42:12 +01:00
void SendCommandByPassThrough(HLERequestContext& ctx);
2022-11-09 20:04:11 +01:00
protected:
std::shared_ptr<DeviceManager> GetManager();
BackendType GetBackendType() const;
Result TranslateResultToServiceError(Result result) const;
Result TranslateResultToNfp(Result result) const;
Result TranslateResultToMifare(Result result) const;
2022-11-09 20:04:11 +01:00
KernelHelpers::ServiceContext service_context;
BackendType backend_type;
2022-11-09 20:04:11 +01:00
State state{State::NonInitialized};
std::shared_ptr<DeviceManager> device_manager = nullptr;
2024-02-23 19:38:43 +01:00
std::shared_ptr<Service::Set::ISystemSettingsServer> m_set_sys;
2022-11-09 20:04:11 +01:00
};
} // namespace Service::NFC