Move solution and projects to src

This commit is contained in:
TSR Berry
2023-04-08 01:22:00 +02:00
committed by Mary
parent cd124bda58
commit cee7121058
3466 changed files with 55 additions and 55 deletions

View File

@@ -0,0 +1,43 @@
using LibHac.Ncm;
namespace Ryujinx.HLE.HOS.Services.Arp
{
class ApplicationLaunchProperty
{
public ulong TitleId;
public int Version;
public byte BaseGameStorageId;
public byte UpdateGameStorageId;
#pragma warning disable CS0649
public short Padding;
#pragma warning restore CS0649
public static ApplicationLaunchProperty Default
{
get
{
return new ApplicationLaunchProperty
{
TitleId = 0x00,
Version = 0x00,
BaseGameStorageId = (byte)StorageId.BuiltInSystem,
UpdateGameStorageId = (byte)StorageId.None
};
}
}
public static ApplicationLaunchProperty GetByPid(ServiceCtx context)
{
// TODO: Handle ApplicationLaunchProperty as array when pid will be supported and return the right item.
// For now we can hardcode values, and fix it after GetApplicationLaunchProperty is implemented.
return new ApplicationLaunchProperty
{
TitleId = context.Device.Processes.ActiveApplication.ProgramId,
Version = 0x00,
BaseGameStorageId = (byte)StorageId.BuiltInSystem,
UpdateGameStorageId = (byte)StorageId.None
};
}
}
}

View File

@@ -0,0 +1,8 @@
namespace Ryujinx.HLE.HOS.Services.Arp
{
[Service("arp:r")]
class IReader : IpcService
{
public IReader(ServiceCtx context) { }
}
}

View File

@@ -0,0 +1,8 @@
namespace Ryujinx.HLE.HOS.Services.Arp
{
[Service("arp:w")]
class IWriter : IpcService
{
public IWriter(ServiceCtx context) { }
}
}

View File

@@ -0,0 +1,76 @@
using LibHac;
using LibHac.Common;
using LibHac.Ncm;
using LibHac.Ns;
using System;
using ApplicationId = LibHac.ApplicationId;
namespace Ryujinx.HLE.HOS.Services.Arp
{
class LibHacIReader : LibHac.Arp.Impl.IReader
{
public ApplicationId ApplicationId { get; set; }
public Result GetApplicationLaunchProperty(out LibHac.Arp.ApplicationLaunchProperty launchProperty, ulong processId)
{
launchProperty = new LibHac.Arp.ApplicationLaunchProperty
{
StorageId = StorageId.BuiltInUser,
ApplicationId = ApplicationId
};
return Result.Success;
}
public void Dispose() { }
public Result GetApplicationLaunchPropertyWithApplicationId(out LibHac.Arp.ApplicationLaunchProperty launchProperty, ApplicationId applicationId)
{
launchProperty = new LibHac.Arp.ApplicationLaunchProperty
{
StorageId = StorageId.BuiltInUser,
ApplicationId = applicationId
};
return Result.Success;
}
public Result GetApplicationControlProperty(out ApplicationControlProperty controlProperty, ulong processId)
{
throw new NotImplementedException();
}
public Result GetApplicationControlPropertyWithApplicationId(out ApplicationControlProperty controlProperty, ApplicationId applicationId)
{
throw new NotImplementedException();
}
public Result GetServiceObject(out object serviceObject)
{
throw new NotImplementedException();
}
}
internal class LibHacArpServiceObject : LibHac.Sm.IServiceObject
{
private SharedRef<LibHacIReader> _serviceObject;
public LibHacArpServiceObject(ref SharedRef<LibHacIReader> serviceObject)
{
_serviceObject = SharedRef<LibHacIReader>.CreateCopy(in serviceObject);
}
public void Dispose()
{
_serviceObject.Destroy();
}
public Result GetServiceObject(ref SharedRef<IDisposable> serviceObject)
{
serviceObject.SetByCopy(in _serviceObject);
return Result.Success;
}
}
}