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
This commit is contained in:
gdkchan 2024-02-22 16:58:33 -03:00 committed by GitHub
parent 57d8afd0c9
commit d4d0a48bfe
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
130 changed files with 3096 additions and 3174 deletions

View file

@ -0,0 +1,10 @@
using System;
namespace Ryujinx.Horizon.Common
{
public interface IExternalEvent
{
void Signal();
void Clear();
}
}

View file

@ -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);
}
}

View file

@ -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);