diff options
author | Liam <byteslice@airmail.cc> | 2024-02-12 00:31:29 +0100 |
---|---|---|
committer | Liam <byteslice@airmail.cc> | 2024-02-12 03:59:33 +0100 |
commit | c7e97b22fb6fd14800ad374a13ad21d6a4c829f1 (patch) | |
tree | 23263e4ecf7c77a40a0366ce1ed099ab4b653d62 /src/core/hle/service/am/service/application_proxy.h | |
parent | am: rewrite appletAE, appletOE (diff) | |
download | yuzu-c7e97b22fb6fd14800ad374a13ad21d6a4c829f1.tar yuzu-c7e97b22fb6fd14800ad374a13ad21d6a4c829f1.tar.gz yuzu-c7e97b22fb6fd14800ad374a13ad21d6a4c829f1.tar.bz2 yuzu-c7e97b22fb6fd14800ad374a13ad21d6a4c829f1.tar.lz yuzu-c7e97b22fb6fd14800ad374a13ad21d6a4c829f1.tar.xz yuzu-c7e97b22fb6fd14800ad374a13ad21d6a4c829f1.tar.zst yuzu-c7e97b22fb6fd14800ad374a13ad21d6a4c829f1.zip |
Diffstat (limited to 'src/core/hle/service/am/service/application_proxy.h')
-rw-r--r-- | src/core/hle/service/am/service/application_proxy.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/core/hle/service/am/service/application_proxy.h b/src/core/hle/service/am/service/application_proxy.h new file mode 100644 index 000000000..1ebc593ba --- /dev/null +++ b/src/core/hle/service/am/service/application_proxy.h @@ -0,0 +1,48 @@ +// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "core/hle/service/cmif_types.h" +#include "core/hle/service/service.h" + +namespace Service::AM { + +struct Applet; +class IAudioController; +class IApplicationFunctions; +class ICommonStateGetter; +class IDebugFunctions; +class IDisplayController; +class ILibraryAppletCreator; +class IProcessWindingController; +class ISelfController; +class IWindowController; + +class IApplicationProxy final : public ServiceFramework<IApplicationProxy> { +public: + explicit IApplicationProxy(Core::System& system_, std::shared_ptr<Applet> applet, + Kernel::KProcess* process, Nvnflinger::Nvnflinger& nvnflinger); + ~IApplicationProxy(); + +private: + Result GetAudioController(Out<SharedPointer<IAudioController>> out_audio_controller); + Result GetDisplayController(Out<SharedPointer<IDisplayController>> out_display_controller); + Result GetProcessWindingController( + Out<SharedPointer<IProcessWindingController>> out_process_winding_controller); + Result GetDebugFunctions(Out<SharedPointer<IDebugFunctions>> out_debug_functions); + Result GetWindowController(Out<SharedPointer<IWindowController>> out_window_controller); + Result GetSelfController(Out<SharedPointer<ISelfController>> out_self_controller); + Result GetCommonStateGetter(Out<SharedPointer<ICommonStateGetter>> out_common_state_getter); + Result GetLibraryAppletCreator( + Out<SharedPointer<ILibraryAppletCreator>> out_library_applet_creator); + Result GetApplicationFunctions( + Out<SharedPointer<IApplicationFunctions>> out_application_functions); + +private: + Nvnflinger::Nvnflinger& m_nvnflinger; + Kernel::KProcess* const m_process; + const std::shared_ptr<Applet> m_applet; +}; + +} // namespace Service::AM |