|
@@ -25,7 +25,8 @@ namespace Service::Audio {
|
|
|
|
|
|
|
|
class IAudioRenderer final : public ServiceFramework<IAudioRenderer> {
|
|
class IAudioRenderer final : public ServiceFramework<IAudioRenderer> {
|
|
|
public:
|
|
public:
|
|
|
- explicit IAudioRenderer(AudioCore::AudioRendererParameter audren_params)
|
|
|
|
|
|
|
+ explicit IAudioRenderer(AudioCore::AudioRendererParameter audren_params,
|
|
|
|
|
+ const std::size_t instance_number)
|
|
|
: ServiceFramework("IAudioRenderer") {
|
|
: ServiceFramework("IAudioRenderer") {
|
|
|
// clang-format off
|
|
// clang-format off
|
|
|
static const FunctionInfo functions[] = {
|
|
static const FunctionInfo functions[] = {
|
|
@@ -48,8 +49,8 @@ public:
|
|
|
auto& system = Core::System::GetInstance();
|
|
auto& system = Core::System::GetInstance();
|
|
|
system_event = Kernel::WritableEvent::CreateEventPair(
|
|
system_event = Kernel::WritableEvent::CreateEventPair(
|
|
|
system.Kernel(), Kernel::ResetType::Manual, "IAudioRenderer:SystemEvent");
|
|
system.Kernel(), Kernel::ResetType::Manual, "IAudioRenderer:SystemEvent");
|
|
|
- renderer = std::make_unique<AudioCore::AudioRenderer>(system.CoreTiming(), audren_params,
|
|
|
|
|
- system_event.writable);
|
|
|
|
|
|
|
+ renderer = std::make_unique<AudioCore::AudioRenderer>(
|
|
|
|
|
+ system.CoreTiming(), audren_params, system_event.writable, instance_number);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private:
|
|
private:
|
|
@@ -607,7 +608,7 @@ void AudRenU::OpenAudioRendererImpl(Kernel::HLERequestContext& ctx) {
|
|
|
IPC::ResponseBuilder rb{ctx, 2, 0, 1};
|
|
IPC::ResponseBuilder rb{ctx, 2, 0, 1};
|
|
|
|
|
|
|
|
rb.Push(RESULT_SUCCESS);
|
|
rb.Push(RESULT_SUCCESS);
|
|
|
- rb.PushIpcInterface<IAudioRenderer>(params);
|
|
|
|
|
|
|
+ rb.PushIpcInterface<IAudioRenderer>(params, audren_instance_count++);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
bool AudRenU::IsFeatureSupported(AudioFeatures feature, u32_le revision) const {
|
|
bool AudRenU::IsFeatureSupported(AudioFeatures feature, u32_le revision) const {
|