// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project // SPDX-License-Identifier: GPL-3.0-or-later // 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/async_result.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 UnregisterNetworkServiceAccountWithUserSaveDataDeletion(Common::UUID user_id); 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 GetGameCardWakenReadyEvent(OutCopyHandle out_event); Result IsGameCardApplicationRunning(Out out_is_running); Result Unknown936(Out out_result); Result IsAnyApplicationEntityInstalled(Out out_is_any_application_entity_installed); Result GetApplicationViewDeprecated( OutArray out_application_views, InArray application_ids); Result GetApplicationViewWithPromotionInfo( OutBuffer out_buffer, Out out_count, InArray application_ids); Result GetApplicationView( OutArray out_application_views, InArray application_ids); Result GetApplicationRightsOnClient( OutArray out_rights, Out out_count, u32 flags, u64 application_id, Uid account_id); Result CheckSdCardMountStatus(); Result GetSdCardMountStatusChangedEvent(OutCopyHandle out_event); Result GetTotalSpaceSize(Out out_total_space_size, FileSys::StorageId storage_id); Result GetFreeSpaceSize(Out out_free_space_size, FileSys::StorageId storage_id); Result GetGameCardUpdateDetectionEvent(OutCopyHandle out_event); Result ResumeAll(); Result IsQualificationTransitionSupportedByProcessId(Out out_is_supported, u64 process_id); Result DeleteApplicationEntity(u64 application_id); Result DeleteApplicationCompletely(u64 application_id); Result GetStorageSize(Out out_total_space_size, Out out_free_space_size, FileSys::StorageId storage_id); Result TouchApplication(u64 application_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); Result GetApplicationLogoData(Out out_size, OutBuffer out_buffer, u64 application_id, InBuffer logo_path_buffer); Result Unknown4022(OutCopyHandle out_event); Result Unknown4023(Out out_result); Result Unknown4042(OutInterface out_interface, OutCopyHandle out_event, u64 arg1, u64 arg2); Result Unknown4053(); Result Unknown4105(); Result RequestDownloadApplicationControlDataInBackground(u64 control_source, u64 application_id); void PushApplicationRecord(HLERequestContext& ctx); void ListApplicationTitle(HLERequestContext& ctx); void ListApplicationIcon(HLERequestContext& ctx); 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; Event gamecard_waken_ready_event; Event unknown_event; }; } // namespace Service::NS