cabinet.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. // SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #pragma once
  4. #include <functional>
  5. #include "core/hle/service/nfp/nfp_types.h"
  6. namespace Service::NFP {
  7. class NfpDevice;
  8. } // namespace Service::NFP
  9. namespace Core::Frontend {
  10. struct CabinetParameters {
  11. Service::NFP::TagInfo tag_info;
  12. Service::NFP::RegisterInfo register_info;
  13. Service::NFP::CabinetMode mode;
  14. };
  15. using CabinetCallback = std::function<void(bool, const std::string&)>;
  16. class CabinetApplet {
  17. public:
  18. virtual ~CabinetApplet();
  19. virtual void ShowCabinetApplet(const CabinetCallback& callback,
  20. const CabinetParameters& parameters,
  21. std::shared_ptr<Service::NFP::NfpDevice> nfp_device) const = 0;
  22. };
  23. class DefaultCabinetApplet final : public CabinetApplet {
  24. public:
  25. void ShowCabinetApplet(const CabinetCallback& callback, const CabinetParameters& parameters,
  26. std::shared_ptr<Service::NFP::NfpDevice> nfp_device) const override;
  27. };
  28. } // namespace Core::Frontend