// 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/ns/language.h" #include "core/hle/service/ns/ns_types.h" #include "core/hle/service/os/event.h" #include "core/hle/service/service.h" namespace Service::NS { class IApplicationManagerInterface final : public ServiceFramework { public: explicit IApplicationManagerInterface(Core::System& system_); ~IApplicationManagerInterface() override; Result GetApplicationControlData(OutBuffer out_buffer, Out out_actual_size, ApplicationControlSource application_control_source, u64 application_id); Result GetApplicationDesiredLanguage(Out out_desired_language, u32 supported_languages); Result ConvertApplicationLanguageToLanguageCode(Out out_language_code, ApplicationLanguage application_language); Result ListApplicationRecord(OutArray out_records, Out out_count, s32 offset); Result GetApplicationRecordUpdateSystemEvent(OutCopyHandle out_event); Result GetGameCardMountFailureEvent(OutCopyHandle out_event); Result IsAnyApplicationEntityInstalled(Out out_is_any_application_entity_installed); Result GetApplicationView( OutArray out_application_views, InArray application_ids); Result GetApplicationViewWithPromotionInfo( OutArray out_application_views, InArray application_ids); Result GetApplicationRightsOnClient( OutArray out_rights, Out out_count, Common::UUID account_id, u32 flags, u64 application_id); Result CheckSdCardMountStatus(); Result GetSdCardMountStatusChangedEvent(OutCopyHandle out_event); Result GetFreeSpaceSize(Out out_free_space_size, FileSys::StorageId storage_id); Result GetGameCardUpdateDetectionEvent(OutCopyHandle out_event); Result ResumeAll(); Result GetStorageSize(Out out_total_space_size, Out out_free_space_size, FileSys::StorageId storage_id); Result IsApplicationUpdateRequested(Out out_update_required, Out out_update_version, u64 application_id); Result CheckApplicationLaunchVersion(u64 application_id); Result GetApplicationTerminateResult(Out out_result, u64 application_id); private: KernelHelpers::ServiceContext service_context; Event record_update_system_event; Event sd_card_mount_status_event; Event gamecard_update_detection_event; Event gamecard_mount_status_event; Event gamecard_mount_failure_event; }; } // namespace Service::NS