diff options
| author | 2019-07-13 01:22:08 +1000 | |
|---|---|---|
| committer | 2019-07-13 01:22:08 +1000 | |
| commit | 73b37886c10f771abe05b57f53d8a570ee80b178 (patch) | |
| tree | 769f3d823a4783d42a1621798debb598e106466d /src/core | |
| parent | Merge pull request #2609 from FernandoS27/new-scan (diff) | |
| download | yuzu-73b37886c10f771abe05b57f53d8a570ee80b178.tar.gz yuzu-73b37886c10f771abe05b57f53d8a570ee80b178.tar.xz yuzu-73b37886c10f771abe05b57f53d8a570ee80b178.zip | |
"AudioRenderer" thread should have a unique name
Creating multiple "AudioRenderer" threads cause the previous thread to be overwritten. The thread will name be renamed to AudioRenderer-InstanceX, where X is the current instance number.
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/hle/service/audio/audren_u.cpp | 7 | ||||
| -rw-r--r-- | src/core/hle/service/audio/audren_u.h | 1 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/core/hle/service/audio/audren_u.cpp b/src/core/hle/service/audio/audren_u.cpp index 3711e1ea1..b6158d16e 100644 --- a/src/core/hle/service/audio/audren_u.cpp +++ b/src/core/hle/service/audio/audren_u.cpp | |||
| @@ -25,7 +25,7 @@ namespace Service::Audio { | |||
| 25 | 25 | ||
| 26 | class IAudioRenderer final : public ServiceFramework<IAudioRenderer> { | 26 | class IAudioRenderer final : public ServiceFramework<IAudioRenderer> { |
| 27 | public: | 27 | public: |
| 28 | explicit IAudioRenderer(AudioCore::AudioRendererParameter audren_params) | 28 | explicit IAudioRenderer(AudioCore::AudioRendererParameter audren_params, const std::size_t instance_number) |
| 29 | : ServiceFramework("IAudioRenderer") { | 29 | : ServiceFramework("IAudioRenderer") { |
| 30 | // clang-format off | 30 | // clang-format off |
| 31 | static const FunctionInfo functions[] = { | 31 | static const FunctionInfo functions[] = { |
| @@ -48,8 +48,7 @@ public: | |||
| 48 | auto& system = Core::System::GetInstance(); | 48 | auto& system = Core::System::GetInstance(); |
| 49 | system_event = Kernel::WritableEvent::CreateEventPair( | 49 | system_event = Kernel::WritableEvent::CreateEventPair( |
| 50 | system.Kernel(), Kernel::ResetType::Manual, "IAudioRenderer:SystemEvent"); | 50 | system.Kernel(), Kernel::ResetType::Manual, "IAudioRenderer:SystemEvent"); |
| 51 | renderer = std::make_unique<AudioCore::AudioRenderer>(system.CoreTiming(), audren_params, | 51 | renderer = std::make_unique<AudioCore::AudioRenderer>(system.CoreTiming(), audren_params, system_event.writable, instance_number); |
| 52 | system_event.writable); | ||
| 53 | } | 52 | } |
| 54 | 53 | ||
| 55 | private: | 54 | private: |
| @@ -607,7 +606,7 @@ void AudRenU::OpenAudioRendererImpl(Kernel::HLERequestContext& ctx) { | |||
| 607 | IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | 606 | IPC::ResponseBuilder rb{ctx, 2, 0, 1}; |
| 608 | 607 | ||
| 609 | rb.Push(RESULT_SUCCESS); | 608 | rb.Push(RESULT_SUCCESS); |
| 610 | rb.PushIpcInterface<IAudioRenderer>(params); | 609 | rb.PushIpcInterface<IAudioRenderer>(params, audren_instance_count++); |
| 611 | } | 610 | } |
| 612 | 611 | ||
| 613 | bool AudRenU::IsFeatureSupported(AudioFeatures feature, u32_le revision) const { | 612 | bool AudRenU::IsFeatureSupported(AudioFeatures feature, u32_le revision) const { |
diff --git a/src/core/hle/service/audio/audren_u.h b/src/core/hle/service/audio/audren_u.h index 1d3c8df61..49f2733cf 100644 --- a/src/core/hle/service/audio/audren_u.h +++ b/src/core/hle/service/audio/audren_u.h | |||
| @@ -33,6 +33,7 @@ private: | |||
| 33 | }; | 33 | }; |
| 34 | 34 | ||
| 35 | bool IsFeatureSupported(AudioFeatures feature, u32_le revision) const; | 35 | bool IsFeatureSupported(AudioFeatures feature, u32_le revision) const; |
| 36 | std::size_t audren_instance_count = 0; | ||
| 36 | }; | 37 | }; |
| 37 | 38 | ||
| 38 | } // namespace Service::Audio | 39 | } // namespace Service::Audio |