diff options
| author | Caian Benedicto <caianbene@gmail.com> | 2021-10-12 16:54:21 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-10-12 21:54:21 +0200 |
| commit | 380b95bc59e7dc419f89df951cdc086e792cb0ff (patch) | |
| tree | 59a636b48db991d8e13132d7d3f41464d9b04b24 /Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/LibraryAppletCreator | |
| parent | 69093cf2d69490862aff974f170cee63a0016fd0 (diff) | |
Inline software keyboard without input pop up dialog (#2180)
* Initial implementation
* Refactor dynamic text input keys out to facilitate configuration via UI
* Fix code styling
* Add per applet indirect layer handles
* Remove static functions from SoftwareKeyboardRenderer
* Remove inline keyboard reset delay
* Remove inline keyboard V2 responses
* Add inline keyboard soft-lock recovering
* Add comments
* Forward accept and cancel key names to the keyboard and add soft-lock prevention line
* Add dummy window to handle paste events
* Rework inline keyboard state machine and graphics
* Implement IHostUiHandler interfaces on headless WindowBase class
* Add inline keyboard assets
* Fix coding style
* Fix coding style
* Change mode cycling shortcut to F6
* Fix invalid calc size error in games using extended calc
* Remove unnecessary namespaces
Diffstat (limited to 'Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/LibraryAppletCreator')
| -rw-r--r-- | Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/LibraryAppletCreator/ILibraryAppletAccessor.cs | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/LibraryAppletCreator/ILibraryAppletAccessor.cs b/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/LibraryAppletCreator/ILibraryAppletAccessor.cs index 2deb830e..405806c4 100644 --- a/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/LibraryAppletCreator/ILibraryAppletAccessor.cs +++ b/Ryujinx.HLE/HOS/Services/Am/AppletAE/AllSystemAppletProxiesService/LibraryAppletCreator/ILibraryAppletAccessor.cs @@ -25,6 +25,8 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.Lib private int _normalOutDataEventHandle; private int _interactiveOutDataEventHandle; + private int _indirectLayerHandle; + public ILibraryAppletAccessor(AppletId appletId, Horizon system) { _kernelContext = system.KernelContext; @@ -222,21 +224,11 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.Lib // GetIndirectLayerConsumerHandle() -> u64 indirect_layer_consumer_handle public ResultCode GetIndirectLayerConsumerHandle(ServiceCtx context) { - /* - if (indirectLayerConsumer == null) - { - return ResultCode.ObjectInvalid; - } - */ - - // TODO: Official sw uses this during LibraryApplet creation when LibraryAppletMode is 0x3. - // Since we don't support IndirectLayer and the handle couldn't be 0, it's fine to return 1. + Horizon horizon = _kernelContext.Device.System; - ulong indirectLayerConsumerHandle = 1; + _indirectLayerHandle = horizon.AppletState.IndirectLayerHandles.Add(_applet); - context.ResponseData.Write(indirectLayerConsumerHandle); - - Logger.Stub?.PrintStub(LogClass.ServiceAm, new { indirectLayerConsumerHandle }); + context.ResponseData.Write((ulong)_indirectLayerHandle); return ResultCode.Success; } @@ -260,6 +252,10 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.Lib _kernelContext.Syscall.CloseHandle(_interactiveOutDataEventHandle); } } + + Horizon horizon = _kernelContext.Device.System; + + horizon.AppletState.IndirectLayerHandles.Delete(_indirectLayerHandle); } } } |
