applet_ae.h 976 B

123456789101112131415161718192021222324252627282930313233343536
  1. // Copyright 2018 yuzu emulator team
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #pragma once
  5. #include <memory>
  6. #include "core/hle/kernel/hle_ipc.h"
  7. #include "core/hle/service/service.h"
  8. namespace Service {
  9. namespace NVFlinger {
  10. class NVFlinger;
  11. }
  12. namespace AM {
  13. class AppletAE final : public ServiceFramework<AppletAE> {
  14. public:
  15. explicit AppletAE(std::shared_ptr<NVFlinger::NVFlinger> nvflinger,
  16. std::shared_ptr<AppletMessageQueue> msg_queue);
  17. ~AppletAE() override;
  18. const std::shared_ptr<AppletMessageQueue>& GetMessageQueue() const;
  19. private:
  20. void OpenSystemAppletProxy(Kernel::HLERequestContext& ctx);
  21. void OpenLibraryAppletProxy(Kernel::HLERequestContext& ctx);
  22. void OpenLibraryAppletProxyOld(Kernel::HLERequestContext& ctx);
  23. std::shared_ptr<NVFlinger::NVFlinger> nvflinger;
  24. std::shared_ptr<AppletMessageQueue> msg_queue;
  25. };
  26. } // namespace AM
  27. } // namespace Service