// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include "common/uuid.h" #include "core/hle/service/am/am_types.h" #include "core/hle/service/cmif_types.h" #include "core/hle/service/service.h" namespace Service::AM { struct Applet; class ILibraryAppletAccessor; class IStorage; class IApplicationAccessor final : public ServiceFramework { public: explicit IApplicationAccessor(Core::System& system_, std::shared_ptr applet); ~IApplicationAccessor() override; private: Result Start(); Result RequestExit(); Result Terminate(); Result GetResult(); Result GetAppletStateChangedEvent(OutCopyHandle out_event); Result PushLaunchParameter(LaunchParameterKind kind, SharedPointer storage); Result GetApplicationControlProperty(OutBuffer out_control_property); Result SetUsers(bool enable, InArray user_ids); Result GetCurrentLibraryApplet(Out> out_accessor); Result RequestForApplicationToGetForeground(); Result CheckRightsEnvironmentAvailable(Out out_is_available); Result GetNsRightsEnvironmentHandle(Out out_handle); Result ReportApplicationExitTimeout(); const std::shared_ptr m_applet; }; } // namespace Service::AM