mirror of
https://github.com/Ryujinx/Ryujinx.git
synced 2025-06-28 23:00:47 -07:00
Horizon: Impl Prepo, Fixes bugs, Clean things (#4220)
* Horizon: Impl Prepo, Fixes bugs, Clean things * remove ToArray() * resultCode > status * Remove old services * Addresses gdkchan's comments and more cleanup * Addresses Gdkchan's feedback 2 * Reorganize services, make sure service are loaded before guest Co-Authored-By: gdkchan <5624669+gdkchan@users.noreply.github.com> * Create interfaces for lm and sm Co-authored-by: gdkchan <5624669+gdkchan@users.noreply.github.com>
This commit is contained in:
30
Ryujinx.Horizon/Sm/SmServerManager.cs
Normal file
30
Ryujinx.Horizon/Sm/SmServerManager.cs
Normal file
@ -0,0 +1,30 @@
|
||||
using Ryujinx.Horizon.Common;
|
||||
using Ryujinx.Horizon.Sdk.Sf.Hipc;
|
||||
using Ryujinx.Horizon.Sdk.Sm;
|
||||
using Ryujinx.Horizon.Sm.Impl;
|
||||
using Ryujinx.Horizon.Sm.Ipc;
|
||||
using Ryujinx.Horizon.Sm.Types;
|
||||
using System;
|
||||
|
||||
namespace Ryujinx.Horizon.Sm
|
||||
{
|
||||
class SmServerManager : ServerManager
|
||||
{
|
||||
private readonly ServiceManager _serviceManager;
|
||||
|
||||
public SmServerManager(ServiceManager serviceManager, HeapAllocator allocator, SmApi sm, int maxPorts, ManagerOptions options, int maxSessions) : base(allocator, sm, maxPorts, options, maxSessions)
|
||||
{
|
||||
_serviceManager = serviceManager;
|
||||
}
|
||||
|
||||
protected override Result OnNeedsToAccept(int portIndex, Server server)
|
||||
{
|
||||
return (SmPortIndex)portIndex switch
|
||||
{
|
||||
SmPortIndex.User => AcceptImpl(server, new UserService(_serviceManager)),
|
||||
SmPortIndex.Manager => AcceptImpl(server, new ManagerService()),
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(portIndex)),
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user