aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Horizon.Common
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2024-02-22 16:58:33 -0300
committerGitHub <noreply@github.com>2024-02-22 16:58:33 -0300
commitd4d0a48bfe89d6e8e12ce16829bb2c440b56007c (patch)
tree2376566ed2c06181b3dbc547b1f99f5b533d918b /src/Ryujinx.Horizon.Common
parent57d8afd0c99bb43d1ba1e3cc630d257c5da92741 (diff)
Migrate Audio service to new IPC (#6285)
* Migrate audren to new IPC * Migrate audout * Migrate audin * Migrate hwopus * Bye bye old audio service * Switch volume control to IHardwareDeviceDriver * Somewhat unrelated changes * Remove Concentus reference from HLE * Implement OpenAudioRendererForManualExecution * Remove SetVolume/GetVolume methods that are not necessary * Remove SetVolume/GetVolume methods that are not necessary (2) * Fix incorrect volume update * PR feedback * PR feedback * Stub audrec * Init outParameter * Make FinalOutputRecorderParameter/Internal readonly * Make FinalOutputRecorder IDisposable * Fix HardwareOpusDecoderManager parameter buffers * Opus work buffer size and error handling improvements * Add AudioInProtocolName enum * Fix potential divisions by zero
Diffstat (limited to 'src/Ryujinx.Horizon.Common')
-rw-r--r--src/Ryujinx.Horizon.Common/IExternalEvent.cs10
-rw-r--r--src/Ryujinx.Horizon.Common/ISyscallApi.cs5
-rw-r--r--src/Ryujinx.Horizon.Common/Result.cs5
3 files changed, 20 insertions, 0 deletions
diff --git a/src/Ryujinx.Horizon.Common/IExternalEvent.cs b/src/Ryujinx.Horizon.Common/IExternalEvent.cs
new file mode 100644
index 00000000..dedf4c72
--- /dev/null
+++ b/src/Ryujinx.Horizon.Common/IExternalEvent.cs
@@ -0,0 +1,10 @@
+using System;
+
+namespace Ryujinx.Horizon.Common
+{
+ public interface IExternalEvent
+ {
+ void Signal();
+ void Clear();
+ }
+}
diff --git a/src/Ryujinx.Horizon.Common/ISyscallApi.cs b/src/Ryujinx.Horizon.Common/ISyscallApi.cs
index 20277f34..3d6da041 100644
--- a/src/Ryujinx.Horizon.Common/ISyscallApi.cs
+++ b/src/Ryujinx.Horizon.Common/ISyscallApi.cs
@@ -1,3 +1,4 @@
+using Ryujinx.Memory;
using System;
namespace Ryujinx.Horizon.Common
@@ -29,5 +30,9 @@ namespace Ryujinx.Horizon.Common
Result CreatePort(out int serverPortHandle, out int clientPortHandle, int maxSessions, bool isLight, string name);
Result ManageNamedPort(out int handle, string name, int maxSessions);
Result ConnectToPort(out int clientSessionHandle, int clientPortHandle);
+
+ IExternalEvent GetExternalEvent(int handle);
+ IVirtualMemoryManager GetMemoryManagerByProcessHandle(int handle);
+ ulong GetTransferMemoryAddress(int handle);
}
}
diff --git a/src/Ryujinx.Horizon.Common/Result.cs b/src/Ryujinx.Horizon.Common/Result.cs
index d313554e..4b120b84 100644
--- a/src/Ryujinx.Horizon.Common/Result.cs
+++ b/src/Ryujinx.Horizon.Common/Result.cs
@@ -36,6 +36,11 @@ namespace Ryujinx.Horizon.Common
ErrorCode = module | (description << ModuleBits);
}
+ public Result(int errorCode)
+ {
+ ErrorCode = errorCode;
+ }
+
public readonly override bool Equals(object obj)
{
return obj is Result result && result.Equals(this);