Move Applets to Horizon

This commit is contained in:
Isaac Marovitz 2024-03-10 13:51:30 +00:00
parent 242eb17fee
commit b093a3fbf6
No known key found for this signature in database
GPG key ID: 97250B2B09A132E1
93 changed files with 181 additions and 181 deletions

View file

@ -1,7 +1,8 @@
using Gtk;
using Ryujinx.HLE.HOS.Applets;
using Ryujinx.HLE.HOS.Services.Am.AppletOE.ApplicationProxyService.ApplicationProxy.Types;
using Ryujinx.HLE.UI;
using Ryujinx.Horizon.Applets.Controller;
using Ryujinx.Horizon.Applets.SoftwareKeyboard;
using Ryujinx.Horizon.Sdk.Am.Types;
using Ryujinx.UI.Widgets;
using System;
using System.Threading;

View file

@ -1,5 +1,5 @@
using Gtk;
using Ryujinx.HLE.HOS.Applets.SoftwareKeyboard;
using Ryujinx.Horizon.Applets.SoftwareKeyboard;
using System;
using System.Linq;

View file

@ -12,7 +12,6 @@ using Ryujinx.HLE.HOS.Kernel.Process;
using Ryujinx.HLE.HOS.Kernel.Threading;
using Ryujinx.HLE.HOS.Services;
using Ryujinx.HLE.HOS.Services.Account.Acc;
using Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.SystemAppletProxy;
using Ryujinx.HLE.HOS.Services.Apm;
using Ryujinx.HLE.HOS.Services.Caps;
using Ryujinx.HLE.HOS.Services.Mii;
@ -29,6 +28,7 @@ using Ryujinx.HLE.HOS.SystemState;
using Ryujinx.HLE.Loaders.Executables;
using Ryujinx.HLE.Loaders.Processes;
using Ryujinx.Horizon;
using Ryujinx.Horizon.Sdk.Am.Types;
using System;
using System.Collections.Generic;
using System.IO;

View file

@ -47,7 +47,8 @@ namespace Ryujinx.HLE.HOS.Services.Sdb.Pdm.QueryService
{
if (!context.Device.Processes.ActiveApplication.ApplicationControlProperties.PlayLogQueryableApplicationId.ItemsRo.Contains(titleId))
{
return (ResultCode)Am.ResultCode.ObjectInvalid;
// Am Result.ObjectInvalid
return (ResultCode)((500 << 9) | 128);
}
}
}

View file

@ -1,7 +1,7 @@
using Ryujinx.Common;
using Ryujinx.Common.Logging;
using Ryujinx.Common.Memory;
using Ryujinx.HLE.HOS.Applets;
using Ryujinx.Horizon.Applets;
using Ryujinx.HLE.HOS.Ipc;
using Ryujinx.HLE.HOS.Services.SurfaceFlinger;
using Ryujinx.HLE.HOS.Services.Vi.RootService.ApplicationDisplayService;

View file

@ -1,5 +1,5 @@
using Ryujinx.HLE.HOS.Kernel.Threading;
using Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.SystemAppletProxy;
using Ryujinx.Horizon.Sdk.Am.Types;
using System.Collections.Concurrent;
namespace Ryujinx.HLE.HOS.SystemState

View file

@ -1,4 +1,5 @@
using Ryujinx.HLE.HOS.Services.Am.AppletOE.ApplicationProxyService.ApplicationProxy.Types;
using Ryujinx.Horizon.Sdk.Am;
using Ryujinx.Horizon.Sdk.Am.Types;
using System;
using System.Collections.Generic;

View file

@ -24,8 +24,6 @@
<PackageReference Include="LibHac" />
<PackageReference Include="Microsoft.IdentityModel.JsonWebTokens" />
<PackageReference Include="MsgPack.Cli" />
<PackageReference Include="SixLabors.ImageSharp" />
<PackageReference Include="SixLabors.ImageSharp.Drawing" />
<PackageReference Include="NetCoreServer" />
</ItemGroup>
@ -40,10 +38,6 @@
<ItemGroup>
<EmbeddedResource Include="Homebrew.npdm" />
<EmbeddedResource Include="HOS\Applets\SoftwareKeyboard\Resources\Logo_Ryujinx.png" />
<EmbeddedResource Include="HOS\Applets\SoftwareKeyboard\Resources\Icon_BtnA.png" />
<EmbeddedResource Include="HOS\Applets\SoftwareKeyboard\Resources\Icon_BtnB.png" />
<EmbeddedResource Include="HOS\Applets\SoftwareKeyboard\Resources\Icon_KeyF6.png" />
<EmbeddedResource Include="HOS\Services\Account\Acc\DefaultUserImage.jpg" />
</ItemGroup>

View file

@ -1,5 +1,6 @@
using Ryujinx.HLE.HOS.Applets;
using Ryujinx.HLE.HOS.Services.Am.AppletOE.ApplicationProxyService.ApplicationProxy.Types;
using Ryujinx.Horizon.Applets.Controller;
using Ryujinx.Horizon.Applets.SoftwareKeyboard;
using Ryujinx.Horizon.Sdk.Am.Types;
namespace Ryujinx.HLE.UI
{

View file

@ -5,9 +5,10 @@ using Ryujinx.Graphics.GAL;
using Ryujinx.Graphics.GAL.Multithreading;
using Ryujinx.Graphics.Gpu;
using Ryujinx.Graphics.OpenGL;
using Ryujinx.HLE.HOS.Applets;
using Ryujinx.HLE.HOS.Services.Am.AppletOE.ApplicationProxyService.ApplicationProxy.Types;
using Ryujinx.HLE.UI;
using Ryujinx.Horizon.Applets.Controller;
using Ryujinx.Horizon.Applets.SoftwareKeyboard;
using Ryujinx.Horizon.Sdk.Am.Types;
using Ryujinx.Input;
using Ryujinx.Input.HLE;
using Ryujinx.SDL2.Common;

View file

@ -1,23 +1,25 @@
using Ryujinx.Common.Logging;
using Ryujinx.Horizon.Common;
using Ryujinx.Horizon.Sdk.Am;
using Ryujinx.Horizon.Sdk.Am.Controllers;
using Ryujinx.Horizon.Sdk.Am.Storage;
using Ryujinx.Horizon.Sdk.Sf;
using System.Linq;
namespace Ryujinx.Horizon.Am.Ipc.Controllers
{
partial class LibraryAppletCreator : ILibraryAppletCreator
{
[CmifCommand(0)]
public Result CreateLibraryApplet(out ILibraryAppletAccessor arg0, uint arg1, uint arg2)
public Result CreateLibraryApplet(out ILibraryAppletAccessor libraryAppletAccessor, uint appletId, uint libraryAppletMode)
{
Logger.Stub?.PrintStub(LogClass.ServiceAm);
libraryAppletAccessor = new LibraryAppletAccessor((AppletId)appletId);
return Result.Success;
}
[CmifCommand(1)]
public Result TerminateAllLibraryApplets(out bool arg0)
public Result TerminateAllLibraryApplets()
{
Logger.Stub?.PrintStub(LogClass.ServiceAm);
@ -25,32 +27,35 @@ namespace Ryujinx.Horizon.Am.Ipc.Controllers
}
[CmifCommand(2)]
public Result AreAnyLibraryAppletsLeft()
public Result AreAnyLibraryAppletsLeft(out bool arg0)
{
arg0 = true;
Logger.Stub?.PrintStub(LogClass.ServiceAm);
return Result.Success;
}
[CmifCommand(10)]
public Result CreateStorage(out IStorage arg0, long arg1)
public Result CreateStorage(out IStorage storage, long size)
{
Logger.Stub?.PrintStub(LogClass.ServiceAm);
storage = new Storage.Storage(Enumerable.Repeat((byte)0, (int)size).ToArray());
return Result.Success;
}
[CmifCommand(11)]
public Result CreateTransferMemoryStorage(out IStorage arg0, int arg1, long arg2, bool arg3)
public Result CreateTransferMemoryStorage(out IStorage storage, int handle, long size, bool writeable)
{
storage = new Storage.Storage(Enumerable.Repeat((byte)0, (int)size).ToArray(), writeable);
Logger.Stub?.PrintStub(LogClass.ServiceAm);
return Result.Success;
}
[CmifCommand(12)]
public Result CreateHandleStorage(out IStorage arg0, int arg1, long arg2)
public Result CreateHandleStorage(out IStorage storage, int handle, long size)
{
storage = new Storage.Storage(Enumerable.Repeat((byte)0, (int)size).ToArray());
Logger.Stub?.PrintStub(LogClass.ServiceAm);
return Result.Success;

View file

@ -1,10 +1,13 @@
using Ryujinx.HLE.HOS.Applets.Browser;
using Ryujinx.HLE.HOS.Applets.Error;
using Ryujinx.HLE.HOS.Services.Am.AppletAE;
using Ryujinx.Horizon.Applets.Browser;
using Ryujinx.Horizon.Applets.Controller;
using Ryujinx.Horizon.Applets.PlayerSelect;
using Ryujinx.Horizon.Applets.SoftwareKeyboard;
using Ryujinx.Horizon.Sdk.Am;
using System;
using System.Collections.Generic;
using ErrorApplet = Ryujinx.Horizon.Applets.Error.ErrorApplet;
namespace Ryujinx.HLE.HOS.Applets
namespace Ryujinx.Horizon.Applets
{
static class AppletManager
{
@ -17,18 +20,18 @@ namespace Ryujinx.HLE.HOS.Applets
{ AppletId.Error, typeof(ErrorApplet) },
{ AppletId.PlayerSelect, typeof(PlayerSelectApplet) },
{ AppletId.Controller, typeof(ControllerApplet) },
{ AppletId.SoftwareKeyboard, typeof(SoftwareKeyboardApplet) },
{ AppletId.LibAppletWeb, typeof(BrowserApplet) },
{ AppletId.LibAppletShop, typeof(BrowserApplet) },
{ AppletId.LibAppletOff, typeof(BrowserApplet) },
{ AppletId.Swkbd, typeof(SoftwareKeyboardApplet) },
{ AppletId.Web, typeof(BrowserApplet) },
{ AppletId.Shop, typeof(BrowserApplet) },
{ AppletId.OfflineWeb, typeof(BrowserApplet) },
};
}
public static IApplet Create(AppletId applet, Horizon system)
public static IApplet Create(AppletId applet)
{
if (_appletMapping.TryGetValue(applet, out Type appletClass))
{
return (IApplet)Activator.CreateInstance(appletClass, system);
return (IApplet)Activator.CreateInstance(appletClass);
}
throw new NotImplementedException($"{applet} applet is not implemented.");

View file

@ -1,4 +1,4 @@
namespace Ryujinx.HLE.HOS.Applets.Browser
namespace Ryujinx.Horizon.Applets.Browser
{
enum BootDisplayKind
{

View file

@ -1,12 +1,13 @@
using Ryujinx.Common;
using Ryujinx.Common.Logging;
using Ryujinx.Common.Memory;
using Ryujinx.HLE.HOS.Services.Am.AppletAE;
using Ryujinx.Horizon.Common;
using Ryujinx.Horizon.Sdk.Am;
using System;
using System.Collections.Generic;
using System.IO;
namespace Ryujinx.HLE.HOS.Applets.Browser
namespace Ryujinx.Horizon.Applets.Browser
{
internal class BrowserApplet : IApplet
{
@ -18,14 +19,12 @@ namespace Ryujinx.HLE.HOS.Applets.Browser
private List<BrowserArgument> _arguments;
private ShimKind _shimKind;
public BrowserApplet(Horizon system) { }
public ResultCode GetResult()
public Result GetResult()
{
return ResultCode.Success;
return Result.Success;
}
public ResultCode Start(AppletSession normalSession, AppletSession interactiveSession)
public Result Start(AppletSession normalSession, AppletSession interactiveSession)
{
_normalSession = normalSession;
@ -65,7 +64,7 @@ namespace Ryujinx.HLE.HOS.Applets.Browser
AppletStateChanged?.Invoke(this, null);
return ResultCode.Success;
return Result.Success;
}
private static byte[] BuildResponseOld(WebCommonReturnValue result)

View file

@ -1,10 +1,10 @@
using Ryujinx.HLE.HOS.Services.Account.Acc;
using LibHac.Fs;
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Text;
namespace Ryujinx.HLE.HOS.Applets.Browser
namespace Ryujinx.Horizon.Applets.Browser
{
class BrowserArgument
{

View file

@ -2,7 +2,7 @@ using Ryujinx.Common;
using System;
using System.IO;
namespace Ryujinx.HLE.HOS.Applets.Browser
namespace Ryujinx.Horizon.Applets.Browser
{
class BrowserOutput
{

View file

@ -1,4 +1,4 @@
namespace Ryujinx.HLE.HOS.Applets.Browser
namespace Ryujinx.Horizon.Applets.Browser
{
enum BrowserOutputType : ushort
{

View file

@ -1,4 +1,4 @@
namespace Ryujinx.HLE.HOS.Applets.Browser
namespace Ryujinx.Horizon.Applets.Browser
{
enum DocumentKind
{

View file

@ -1,4 +1,4 @@
namespace Ryujinx.HLE.HOS.Applets.Browser
namespace Ryujinx.Horizon.Applets.Browser
{
enum LeftStickMode
{

View file

@ -1,4 +1,4 @@
namespace Ryujinx.HLE.HOS.Applets.Browser
namespace Ryujinx.Horizon.Applets.Browser
{
public enum ShimKind : uint
{

View file

@ -1,4 +1,4 @@
namespace Ryujinx.HLE.HOS.Applets.Browser
namespace Ryujinx.Horizon.Applets.Browser
{
public struct WebArgHeader
{

View file

@ -1,4 +1,4 @@
namespace Ryujinx.HLE.HOS.Applets.Browser
namespace Ryujinx.Horizon.Applets.Browser
{
public struct WebArgTLV
{

View file

@ -1,4 +1,4 @@
namespace Ryujinx.HLE.HOS.Applets.Browser
namespace Ryujinx.Horizon.Applets.Browser
{
enum WebArgTLVType : ushort
{

View file

@ -1,6 +1,6 @@
using Ryujinx.Common.Memory;
namespace Ryujinx.HLE.HOS.Applets.Browser
namespace Ryujinx.Horizon.Applets.Browser
{
public struct WebCommonReturnValue
{

View file

@ -1,4 +1,4 @@
namespace Ryujinx.HLE.HOS.Applets.Browser
namespace Ryujinx.Horizon.Applets.Browser
{
public enum WebExitReason : uint
{

View file

@ -1,6 +1,6 @@
using System.Runtime.InteropServices;
namespace Ryujinx.HLE.HOS.Applets
namespace Ryujinx.Horizon.Applets
{
[StructLayout(LayoutKind.Sequential, Pack = 8)]
struct CommonArguments

View file

@ -1,30 +1,23 @@
using Ryujinx.Audio;
using Ryujinx.Common.Configuration.Hid;
using Ryujinx.Common.Logging;
using Ryujinx.Common.Memory;
using Ryujinx.HLE.HOS.Services.Am.AppletAE;
using Ryujinx.HLE.HOS.Services.Hid;
using Ryujinx.HLE.HOS.Services.Hid.Types;
using Ryujinx.Horizon.Common;
using Ryujinx.Horizon.Sdk.Am;
using System;
using System.IO;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using static Ryujinx.HLE.HOS.Services.Hid.HidServer.HidUtils;
namespace Ryujinx.HLE.HOS.Applets
namespace Ryujinx.Horizon.Applets.Controller
{
internal class ControllerApplet : IApplet
{
private readonly Horizon _system;
private AppletSession _normalSession;
public event EventHandler AppletStateChanged;
public ControllerApplet(Horizon system)
{
_system = system;
}
public ResultCode Start(AppletSession normalSession, AppletSession interactiveSession)
public Result Start(AppletSession normalSession, AppletSession interactiveSession)
{
_normalSession = normalSession;
@ -40,7 +33,7 @@ namespace Ryujinx.HLE.HOS.Applets
_normalSession.Push(BuildResponse()); // Dummy response for other modes
AppletStateChanged?.Invoke(this, null);
return ResultCode.Success;
return Result.Success;
}
byte[] controllerSupportArg = _normalSession.Pop();
@ -114,12 +107,12 @@ namespace Ryujinx.HLE.HOS.Applets
_system.ReturnFocus();
return ResultCode.Success;
return Result.Success;
}
public ResultCode GetResult()
public Result GetResult()
{
return ResultCode.Success;
return Result.Success;
}
private static byte[] BuildResponse(ControllerSupportResultInfo result)

View file

@ -1,7 +1,6 @@
using Ryujinx.HLE.HOS.Services.Hid;
using System.Collections.Generic;
namespace Ryujinx.HLE.HOS.Applets
namespace Ryujinx.Horizon.Applets.Controller
{
public struct ControllerAppletUIArgs
{

View file

@ -1,6 +1,6 @@
using System.Runtime.InteropServices;
namespace Ryujinx.HLE.HOS.Applets
namespace Ryujinx.Horizon.Applets.Controller
{
#pragma warning disable CS0649 // Field is never assigned to
[StructLayout(LayoutKind.Sequential, Pack = 1)]

View file

@ -1,4 +1,4 @@
namespace Ryujinx.HLE.HOS.Applets
namespace Ryujinx.Horizon.Applets.Controller
{
#pragma warning disable CS0649 // Field is never assigned to
struct ControllerSupportArgPrivate

View file

@ -2,7 +2,7 @@ using Ryujinx.Common.Memory;
using System;
using System.Runtime.InteropServices;
namespace Ryujinx.HLE.HOS.Applets
namespace Ryujinx.Horizon.Applets.Controller
{
#pragma warning disable CS0649 // Field is never assigned to
// (8.0.0+ version)

View file

@ -2,7 +2,7 @@ using Ryujinx.Common.Memory;
using System;
using System.Runtime.InteropServices;
namespace Ryujinx.HLE.HOS.Applets
namespace Ryujinx.Horizon.Applets.Controller
{
#pragma warning disable CS0649 // Field is never assigned to
// (1.0.0+ version)

View file

@ -1,4 +1,4 @@
namespace Ryujinx.HLE.HOS.Applets
namespace Ryujinx.Horizon.Applets.Controller
{
enum ControllerSupportMode : byte
{

View file

@ -1,7 +1,7 @@
using Ryujinx.Common.Memory;
using System.Runtime.InteropServices;
namespace Ryujinx.HLE.HOS.Applets
namespace Ryujinx.Horizon.Applets.Controller
{
#pragma warning disable CS0649 // Field is never assigned to
[StructLayout(LayoutKind.Sequential, Pack = 1)]

View file

@ -1,7 +1,7 @@
using Ryujinx.Common.Memory;
using System.Runtime.InteropServices;
namespace Ryujinx.HLE.HOS.Applets.Error
namespace Ryujinx.Horizon.Applets.Error
{
[StructLayout(LayoutKind.Sequential, Pack = 1)]
struct ApplicationErrorArg

View file

@ -6,8 +6,8 @@ using LibHac.Ncm;
using LibHac.Tools.FsSystem;
using LibHac.Tools.FsSystem.NcaUtils;
using Ryujinx.Common.Logging;
using Ryujinx.HLE.HOS.Services.Am.AppletAE;
using Ryujinx.HLE.HOS.SystemState;
using Ryujinx.Horizon.Common;
using Ryujinx.Horizon.Sdk.Am;
using System;
using System.Collections.Generic;
using System.IO;
@ -16,7 +16,7 @@ using System.Runtime.InteropServices;
using System.Text;
using System.Text.RegularExpressions;
namespace Ryujinx.HLE.HOS.Applets.Error
namespace Ryujinx.Horizon.Applets.Error
{
internal partial class ErrorApplet : IApplet
{
@ -38,7 +38,7 @@ namespace Ryujinx.HLE.HOS.Applets.Error
_horizon = horizon;
}
public ResultCode Start(AppletSession normalSession, AppletSession interactiveSession)
public Result Start(AppletSession normalSession, AppletSession interactiveSession)
{
_normalSession = normalSession;
_commonArguments = IApplet.ReadStruct<CommonArguments>(_normalSession.Pop());
@ -69,7 +69,7 @@ namespace Ryujinx.HLE.HOS.Applets.Error
AppletStateChanged?.Invoke(this, null);
return ResultCode.Success;
return Result.Success;
}
private static (uint module, uint description) HexToResultCode(uint resultCode)
@ -209,9 +209,9 @@ namespace Ryujinx.HLE.HOS.Applets.Error
}
}
public ResultCode GetResult()
public Result GetResult()
{
return ResultCode.Success;
return Result.Success;
}
}
}

View file

@ -1,6 +1,6 @@
using System.Runtime.InteropServices;
namespace Ryujinx.HLE.HOS.Applets.Error
namespace Ryujinx.Horizon.Applets.Error
{
[StructLayout(LayoutKind.Sequential, Pack = 1)]
struct ErrorCommonArg

View file

@ -1,6 +1,6 @@
using System.Runtime.InteropServices;
namespace Ryujinx.HLE.HOS.Applets.Error
namespace Ryujinx.Horizon.Applets.Error
{
[StructLayout(LayoutKind.Sequential, Pack = 1)]
struct ErrorCommonHeader

View file

@ -1,4 +1,4 @@
namespace Ryujinx.HLE.HOS.Applets.Error
namespace Ryujinx.Horizon.Applets.Error
{
enum ErrorType : byte
{

View file

@ -1,19 +1,19 @@
using Ryujinx.HLE.HOS.Services.Am.AppletAE;
using Ryujinx.HLE.UI;
using Ryujinx.Horizon.Common;
using Ryujinx.Horizon.Sdk.Am;
using Ryujinx.Memory;
using System;
using System.Runtime.InteropServices;
namespace Ryujinx.HLE.HOS.Applets
namespace Ryujinx.Horizon.Applets
{
interface IApplet
public interface IApplet
{
event EventHandler AppletStateChanged;
ResultCode Start(AppletSession normalSession,
Result Start(AppletSession normalSession,
AppletSession interactiveSession);
ResultCode GetResult();
Result GetResult();
bool DrawTo(RenderingSurfaceInfo surfaceInfo, IVirtualMemoryManager destination, ulong position)
{

View file

@ -1,15 +1,13 @@
using Ryujinx.Common.Memory;
using Ryujinx.HLE.HOS.Services.Account.Acc;
using Ryujinx.HLE.HOS.Services.Am.AppletAE;
using Ryujinx.Horizon.Common;
using Ryujinx.Horizon.Sdk.Am;
using System;
using System.IO;
namespace Ryujinx.HLE.HOS.Applets
namespace Ryujinx.Horizon.Applets.PlayerSelect
{
internal class PlayerSelectApplet : IApplet
{
private readonly Horizon _system;
private AppletSession _normalSession;
#pragma warning disable IDE0052 // Remove unread private member
private AppletSession _interactiveSession;
@ -17,12 +15,7 @@ namespace Ryujinx.HLE.HOS.Applets
public event EventHandler AppletStateChanged;
public PlayerSelectApplet(Horizon system)
{
_system = system;
}
public ResultCode Start(AppletSession normalSession, AppletSession interactiveSession)
public Result Start(AppletSession normalSession, AppletSession interactiveSession)
{
_normalSession = normalSession;
_interactiveSession = interactiveSession;
@ -34,12 +27,12 @@ namespace Ryujinx.HLE.HOS.Applets
_system.ReturnFocus();
return ResultCode.Success;
return Result.Success;
}
public ResultCode GetResult()
public Result GetResult()
{
return ResultCode.Success;
return Result.Success;
}
private byte[] BuildResponse()

View file

@ -1,4 +1,4 @@
namespace Ryujinx.HLE.HOS.Applets
namespace Ryujinx.Horizon.Applets.PlayerSelect
{
enum PlayerSelectResult : ulong
{

View file

@ -1,6 +1,6 @@
using System.Text.RegularExpressions;
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
namespace Ryujinx.Horizon.Applets.SoftwareKeyboard
{
public static partial class CJKCharacterValidation
{

View file

@ -1,4 +1,4 @@
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
namespace Ryujinx.Horizon.Applets.SoftwareKeyboard
{
/// <summary>
/// Identifies the initial position of the cursor displayed in the area.

View file

@ -1,4 +1,4 @@
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
namespace Ryujinx.Horizon.Applets.SoftwareKeyboard
{
/// <summary>
/// Possible requests to the software keyboard when running in inline mode.

View file

@ -1,4 +1,4 @@
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
namespace Ryujinx.Horizon.Applets.SoftwareKeyboard
{
/// <summary>
/// Possible responses from the software keyboard when running in inline mode.

View file

@ -1,4 +1,4 @@
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
namespace Ryujinx.Horizon.Applets.SoftwareKeyboard
{
/// <summary>
/// Possible states for the software keyboard when running in inline mode.

View file

@ -1,7 +1,7 @@
using System.IO;
using System.Text;
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
namespace Ryujinx.Horizon.Applets.SoftwareKeyboard
{
internal class InlineResponses
{

View file

@ -1,4 +1,4 @@
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
namespace Ryujinx.Horizon.Applets.SoftwareKeyboard
{
/// <summary>
/// Identifies the text entry mode.

View file

@ -1,6 +1,6 @@
using System;
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
namespace Ryujinx.Horizon.Applets.SoftwareKeyboard
{
/// <summary>
/// Identifies prohibited buttons.

View file

@ -1,6 +1,6 @@
using System;
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
namespace Ryujinx.Horizon.Applets.SoftwareKeyboard
{
/// <summary>
/// Identifies prohibited character sets.

View file

@ -1,6 +1,6 @@
using System;
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
namespace Ryujinx.Horizon.Applets.SoftwareKeyboard
{
/// <summary>
/// Bitmask of commands encoded in the Flags field of the Calc structs.

View file

@ -1,4 +1,4 @@
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
namespace Ryujinx.Horizon.Applets.SoftwareKeyboard
{
/// <summary>
/// Active input options set by the keyboard applet. These options allow keyboard

View file

@ -1,4 +1,4 @@
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
namespace Ryujinx.Horizon.Applets.SoftwareKeyboard
{
/// <summary>
/// The miniaturization mode used by the keyboard in inline mode.

View file

@ -1,4 +1,4 @@
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
namespace Ryujinx.Horizon.Applets.SoftwareKeyboard
{
/// <summary>
/// Identifies the variant of keyboard displayed on screen.

View file

@ -1,4 +1,4 @@
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
namespace Ryujinx.Horizon.Applets.SoftwareKeyboard
{
/// <summary>
/// The intention of the user when they finish the interaction with the keyboard.

View file

@ -1,6 +1,6 @@
using System.Text.RegularExpressions;
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
namespace Ryujinx.Horizon.Applets.SoftwareKeyboard
{
public static partial class NumericCharacterValidation
{

View file

@ -1,4 +1,4 @@
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
namespace Ryujinx.Horizon.Applets.SoftwareKeyboard
{
/// <summary>
/// Identifies the display mode of text in a password field.

View file

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

View file

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

View file

@ -1,6 +1,6 @@
using System.Runtime.InteropServices;
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
namespace Ryujinx.Horizon.Applets.SoftwareKeyboard
{
/// <summary>
/// A structure with appearance configurations for the software keyboard when running in inline mode.

View file

@ -1,6 +1,6 @@
using System.Runtime.InteropServices;
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
namespace Ryujinx.Horizon.Applets.SoftwareKeyboard
{
/// <summary>
/// A structure with appearance configurations for the software keyboard when running in inline mode.

View file

@ -1,11 +1,8 @@
using Ryujinx.Common;
using Ryujinx.Common.Configuration.Hid;
using Ryujinx.Common.Logging;
using Ryujinx.HLE.HOS.Applets.SoftwareKeyboard;
using Ryujinx.HLE.HOS.Services.Am.AppletAE;
using Ryujinx.HLE.HOS.Services.Hid.Types.SharedMemory.Npad;
using Ryujinx.HLE.UI;
using Ryujinx.HLE.UI.Input;
using Ryujinx.Horizon.Common;
using Ryujinx.Horizon.Sdk.Am;
using Ryujinx.Memory;
using System;
using System.Diagnostics;
@ -15,9 +12,9 @@ using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Text;
namespace Ryujinx.HLE.HOS.Applets
namespace Ryujinx.Horizon.Applets.SoftwareKeyboard
{
internal class SoftwareKeyboardApplet : IApplet
public class SoftwareKeyboardApplet : IApplet
{
private const string DefaultInputText = "Ryujinx";
@ -71,7 +68,7 @@ namespace Ryujinx.HLE.HOS.Applets
_device = system.Device;
}
public ResultCode Start(AppletSession normalSession, AppletSession interactiveSession)
public Result Start(AppletSession normalSession, AppletSession interactiveSession)
{
lock (_lock)
{
@ -139,14 +136,14 @@ namespace Ryujinx.HLE.HOS.Applets
ExecuteForegroundKeyboard();
return ResultCode.Success;
return Result.Success;
}
}
}
public ResultCode GetResult()
public Result GetResult()
{
return ResultCode.Success;
return Result.Success;
}
private bool IsKeyboardActive()
@ -774,7 +771,7 @@ namespace Ryujinx.HLE.HOS.Applets
/// </remarks>
/// <param name="input">The input string to sanitize (may be null).</param>
/// <returns>The sanitized string.</returns>
internal static string StripUnicodeControlCodes(string input)
public static string StripUnicodeControlCodes(string input)
{
if (input is null)
{

View file

@ -1,6 +1,6 @@
using System.Runtime.InteropServices;
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
namespace Ryujinx.Horizon.Applets.SoftwareKeyboard
{
/// <summary>
/// A structure with configuration options of the software keyboard when starting a new input request in inline mode.

View file

@ -1,6 +1,6 @@
using System.Runtime.InteropServices;
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
namespace Ryujinx.Horizon.Applets.SoftwareKeyboard
{
/// <summary>
/// A structure with configuration options of the software keyboard when starting a new input request in inline mode.

View file

@ -1,6 +1,6 @@
using System.Runtime.InteropServices;
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
namespace Ryujinx.Horizon.Applets.SoftwareKeyboard
{
/// <summary>
/// A structure that defines the configuration options of the software keyboard.

View file

@ -1,6 +1,6 @@
using System.Runtime.InteropServices;
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
namespace Ryujinx.Horizon.Applets.SoftwareKeyboard
{
/// <summary>
/// A structure used by SetCustomizeDic request to software keyboard.

View file

@ -1,7 +1,7 @@
using Ryujinx.Common.Memory;
using System.Runtime.InteropServices;
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
namespace Ryujinx.Horizon.Applets.SoftwareKeyboard
{
/// <summary>
/// A structure with custom dictionary words for the software keyboard.

View file

@ -1,6 +1,6 @@
using System.Runtime.InteropServices;
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
namespace Ryujinx.Horizon.Applets.SoftwareKeyboard
{
/// <summary>
/// A structure that mirrors the parameters used to initialize the keyboard applet.

View file

@ -1,9 +1,8 @@
using Ryujinx.HLE.UI;
using Ryujinx.Memory;
using System;
using System.Threading;
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
namespace Ryujinx.Horizon.Applets.SoftwareKeyboard
{
/// <summary>
/// Class that manages the renderer base class and its state in a multithreaded context.

View file

@ -1,4 +1,3 @@
using Ryujinx.HLE.UI;
using Ryujinx.Memory;
using SixLabors.Fonts;
using SixLabors.ImageSharp;
@ -12,7 +11,7 @@ using System.Numerics;
using System.Reflection;
using System.Runtime.InteropServices;
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
namespace Ryujinx.Horizon.Applets.SoftwareKeyboard
{
/// <summary>
/// Base class that generates the graphics for the software keyboard applet during inline mode.

View file

@ -1,4 +1,4 @@
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
namespace Ryujinx.Horizon.Applets.SoftwareKeyboard
{
/// <summary>
/// Identifies the software keyboard state.

View file

@ -1,6 +1,4 @@
using Ryujinx.HLE.HOS.Applets.SoftwareKeyboard;
namespace Ryujinx.HLE.HOS.Applets
namespace Ryujinx.Horizon.Applets.SoftwareKeyboard
{
public struct SoftwareKeyboardUIArgs
{

View file

@ -1,6 +1,4 @@
using Ryujinx.HLE.UI;
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
namespace Ryujinx.Horizon.Applets.SoftwareKeyboard
{
/// <summary>
/// TODO

View file

@ -1,6 +1,6 @@
using System.Runtime.InteropServices;
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
namespace Ryujinx.Horizon.Applets.SoftwareKeyboard
{
/// <summary>
/// A structure used by SetUserWordInfo request to the software keyboard.

View file

@ -1,4 +1,4 @@
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
namespace Ryujinx.Horizon.Applets.SoftwareKeyboard
{
/// <summary>
/// Wraps a type in a class so it gets stored in the GC managed heap. This is used as communication mechanism

View file

@ -1,7 +1,7 @@
using System;
using System.Threading;
namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
namespace Ryujinx.Horizon.Applets.SoftwareKeyboard
{
/// <summary>
/// A threaded executor of periodic actions that can be cancelled. The total execution time is optional

View file

@ -15,6 +15,15 @@
<ItemGroup>
<PackageReference Include="Concentus" />
<PackageReference Include="LibHac" />
<PackageReference Include="SixLabors.ImageSharp" />
<PackageReference Include="SixLabors.ImageSharp.Drawing" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Applets\SoftwareKeyboard\Resources\Icon_BtnA.png" />
<EmbeddedResource Include="Applets\SoftwareKeyboard\Resources\Icon_BtnB.png" />
<EmbeddedResource Include="Applets\SoftwareKeyboard\Resources\Icon_KeyF6.png" />
<EmbeddedResource Include="Applets\SoftwareKeyboard\Resources\Logo_Ryujinx.png" />
</ItemGroup>
<!-- Due to Concentus. -->

View file

@ -6,11 +6,11 @@ namespace Ryujinx.Horizon.Sdk.Am.Controllers
{
interface ILibraryAppletCreator : IServiceObject
{
Result CreateLibraryApplet(out ILibraryAppletAccessor arg0, uint arg1, uint arg2);
Result CreateLibraryApplet(out ILibraryAppletAccessor libraryAppletAccessor, uint appletId, uint libraryAppletMode);
Result TerminateAllLibraryApplets();
Result AreAnyLibraryAppletsLeft(out bool arg0);
Result CreateStorage(out IStorage arg0, long arg1);
Result CreateTransferMemoryStorage(out IStorage arg0, int arg1, long arg2, bool arg3);
Result CreateHandleStorage(out IStorage arg0, int arg1, long arg2);
Result CreateStorage(out IStorage storage, long size);
Result CreateTransferMemoryStorage(out IStorage storage, int handle, long size, bool writeable);
Result CreateHandleStorage(out IStorage storage, int handle, long size);
}
}

View file

@ -1,6 +1,6 @@
namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.SystemAppletProxy
namespace Ryujinx.Horizon.Sdk.Am.Types
{
enum AppletMessage
public enum AppletMessage
{
None = 0,
ChangeIntoForeground = 1,
@ -33,4 +33,5 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.Sys
AlbumScreenShotTaken = 92,
AlbumRecordingSaved = 93,
}
}

View file

@ -0,0 +1,8 @@
namespace Ryujinx.Horizon.Sdk.Am.Types
{
public enum FocusState
{
InFocus = 1,
OutOfFocus = 2,
}
}

View file

@ -1,4 +1,4 @@
namespace Ryujinx.HLE.HOS.Services.Am.AppletOE.ApplicationProxyService.ApplicationProxy.Types
namespace Ryujinx.Horizon.Sdk.Am.Types
{
public enum ProgramSpecifyKind : uint
{

View file

@ -1,7 +1,6 @@
using Ryujinx.Horizon.Arp;
using Ryujinx.Horizon.Audio;
using Ryujinx.Horizon.Am;
using Ryujinx.Horizon.Arp;
using Ryujinx.Horizon.Bcat;
using Ryujinx.Horizon.Friends;
using Ryujinx.Horizon.Hshl;

View file

@ -1,8 +1,8 @@
using NUnit.Framework;
using Ryujinx.HLE.HOS.Applets;
using Ryujinx.Horizon.Applets.SoftwareKeyboard;
using System.Text;
namespace Ryujinx.Tests.HLE
namespace Ryujinx.Tests.Horizon
{
public class SoftwareKeyboardTests
{

View file

@ -27,6 +27,7 @@
<ProjectReference Include="..\Ryujinx.Audio\Ryujinx.Audio.csproj" />
<ProjectReference Include="..\Ryujinx.Cpu\Ryujinx.Cpu.csproj" />
<ProjectReference Include="..\Ryujinx.HLE\Ryujinx.HLE.csproj" />
<ProjectReference Include="..\Ryujinx.Horizon\Ryujinx.Horizon.csproj" />
<ProjectReference Include="..\Ryujinx.Tests.Memory\Ryujinx.Tests.Memory.csproj" />
<ProjectReference Include="..\Ryujinx.Memory\Ryujinx.Memory.csproj" />
<ProjectReference Include="..\Ryujinx.Tests.Unicorn\Ryujinx.Tests.Unicorn.csproj" />

View file

@ -6,9 +6,10 @@ using Ryujinx.Ava.UI.Controls;
using Ryujinx.Ava.UI.Helpers;
using Ryujinx.Ava.UI.Windows;
using Ryujinx.HLE;
using Ryujinx.HLE.HOS.Applets;
using Ryujinx.HLE.HOS.Services.Am.AppletOE.ApplicationProxyService.ApplicationProxy.Types;
using Ryujinx.HLE.UI;
using Ryujinx.Horizon.Applets.Controller;
using Ryujinx.Horizon.Applets.SoftwareKeyboard;
using Ryujinx.Horizon.Sdk.Am.Types;
using System;
using System.Threading;

View file

@ -7,8 +7,8 @@ using Ryujinx.Ava.Common.Locale;
using Ryujinx.Ava.UI.Helpers;
using Ryujinx.Ava.UI.Windows;
using Ryujinx.Common;
using Ryujinx.HLE.HOS.Applets;
using Ryujinx.HLE.HOS.Services.Hid;
using Ryujinx.Horizon.Applets.Controller;
using System;
using System.Linq;
using System.Threading.Tasks;

View file

@ -5,8 +5,7 @@ using Avalonia.Media;
using FluentAvalonia.UI.Controls;
using Ryujinx.Ava.Common.Locale;
using Ryujinx.Ava.UI.Helpers;
using Ryujinx.HLE.HOS.Applets;
using Ryujinx.HLE.HOS.Applets.SoftwareKeyboard;
using Ryujinx.Horizon.Applets.SoftwareKeyboard;
using System;
using System.Linq;
using System.Threading.Tasks;