diff options
Diffstat (limited to 'src/Ryujinx.Horizon/Sdk/Bcat')
6 files changed, 77 insertions, 0 deletions
diff --git a/src/Ryujinx.Horizon/Sdk/Bcat/IBcatService.cs b/src/Ryujinx.Horizon/Sdk/Bcat/IBcatService.cs new file mode 100644 index 00000000..f6c8e6dd --- /dev/null +++ b/src/Ryujinx.Horizon/Sdk/Bcat/IBcatService.cs @@ -0,0 +1,10 @@ +using Ryujinx.Horizon.Common; +using Ryujinx.Horizon.Sdk.Sf; + +namespace Ryujinx.Horizon.Sdk.Bcat +{ + internal interface IBcatService : IServiceObject + { + Result RequestSyncDeliveryCache(out IDeliveryCacheProgressService deliveryCacheProgressService); + } +} diff --git a/src/Ryujinx.Horizon/Sdk/Bcat/IDeliveryCacheDirectoryService.cs b/src/Ryujinx.Horizon/Sdk/Bcat/IDeliveryCacheDirectoryService.cs new file mode 100644 index 00000000..23a740c3 --- /dev/null +++ b/src/Ryujinx.Horizon/Sdk/Bcat/IDeliveryCacheDirectoryService.cs @@ -0,0 +1,14 @@ +using LibHac.Bcat; +using Ryujinx.Horizon.Common; +using Ryujinx.Horizon.Sdk.Sf; +using System; + +namespace Ryujinx.Horizon.Sdk.Bcat +{ + internal interface IDeliveryCacheDirectoryService : IServiceObject + { + Result GetCount(out int count); + Result Open(DirectoryName directoryName); + Result Read(out int entriesRead, Span<DeliveryCacheDirectoryEntry> entriesBuffer); + } +} diff --git a/src/Ryujinx.Horizon/Sdk/Bcat/IDeliveryCacheFileService.cs b/src/Ryujinx.Horizon/Sdk/Bcat/IDeliveryCacheFileService.cs new file mode 100644 index 00000000..a1e5d43b --- /dev/null +++ b/src/Ryujinx.Horizon/Sdk/Bcat/IDeliveryCacheFileService.cs @@ -0,0 +1,15 @@ +using LibHac.Bcat; +using Ryujinx.Horizon.Common; +using Ryujinx.Horizon.Sdk.Sf; +using System; + +namespace Ryujinx.Horizon.Sdk.Bcat +{ + internal interface IDeliveryCacheFileService : IServiceObject + { + Result GetDigest(out Digest digest); + Result GetSize(out long size); + Result Open(DirectoryName directoryName, FileName fileName); + Result Read(long offset, out long bytesRead, Span<byte> data); + } +} diff --git a/src/Ryujinx.Horizon/Sdk/Bcat/IDeliveryCacheProgressService.cs b/src/Ryujinx.Horizon/Sdk/Bcat/IDeliveryCacheProgressService.cs new file mode 100644 index 00000000..07a796f8 --- /dev/null +++ b/src/Ryujinx.Horizon/Sdk/Bcat/IDeliveryCacheProgressService.cs @@ -0,0 +1,12 @@ +using Ryujinx.Horizon.Bcat.Ipc.Types; +using Ryujinx.Horizon.Common; +using Ryujinx.Horizon.Sdk.Sf; + +namespace Ryujinx.Horizon.Sdk.Bcat +{ + internal interface IDeliveryCacheProgressService : IServiceObject + { + Result GetEvent(out int handle); + Result GetImpl(out DeliveryCacheProgressImpl deliveryCacheProgressImpl); + } +} diff --git a/src/Ryujinx.Horizon/Sdk/Bcat/IDeliveryCacheStorageService.cs b/src/Ryujinx.Horizon/Sdk/Bcat/IDeliveryCacheStorageService.cs new file mode 100644 index 00000000..5638f074 --- /dev/null +++ b/src/Ryujinx.Horizon/Sdk/Bcat/IDeliveryCacheStorageService.cs @@ -0,0 +1,14 @@ +using LibHac.Bcat; +using Ryujinx.Horizon.Common; +using Ryujinx.Horizon.Sdk.Sf; +using System; + +namespace Ryujinx.Horizon.Sdk.Bcat +{ + internal interface IDeliveryCacheStorageService : IServiceObject + { + Result CreateDirectoryService(out IDeliveryCacheDirectoryService service); + Result CreateFileService(out IDeliveryCacheFileService service); + Result EnumerateDeliveryCacheDirectory(out int count, Span<DirectoryName> directoryNames); + } +} diff --git a/src/Ryujinx.Horizon/Sdk/Bcat/IServiceCreator.cs b/src/Ryujinx.Horizon/Sdk/Bcat/IServiceCreator.cs new file mode 100644 index 00000000..edc52590 --- /dev/null +++ b/src/Ryujinx.Horizon/Sdk/Bcat/IServiceCreator.cs @@ -0,0 +1,12 @@ +using Ryujinx.Horizon.Common; +using Ryujinx.Horizon.Sdk.Sf; + +namespace Ryujinx.Horizon.Sdk.Bcat +{ + internal interface IServiceCreator : IServiceObject + { + Result CreateBcatService(out IBcatService service, ulong pid); + Result CreateDeliveryCacheStorageService(out IDeliveryCacheStorageService service, ulong pid); + Result CreateDeliveryCacheStorageServiceWithApplicationId(out IDeliveryCacheStorageService service, Ncm.ApplicationId applicationId); + } +} |