mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	DSP_DSP: use member system instead of global instance
This commit is contained in:
		
							parent
							
								
									6ce58248b0
								
							
						
					
					
						commit
						ea496507d5
					
				
					 4 changed files with 15 additions and 2 deletions
				
			
		|  | @ -198,6 +198,8 @@ System::ResultStatus System::Init(EmuWindow& emu_window, u32 system_mode) { | |||
|         dsp_core = std::make_unique<AudioCore::DspHle>(*memory); | ||||
|     } | ||||
| 
 | ||||
|     memory->SetDSP(*dsp_core); | ||||
| 
 | ||||
|     dsp_core->SetSink(Settings::values.sink_id, Settings::values.audio_device_id); | ||||
|     dsp_core->EnableStretching(Settings::values.enable_audio_stretching); | ||||
| 
 | ||||
|  |  | |||
|  | @ -394,7 +394,7 @@ void InstallInterfaces(Core::System& system) { | |||
|     auto& service_manager = system.ServiceManager(); | ||||
|     auto dsp = std::make_shared<DSP_DSP>(system); | ||||
|     dsp->InstallAsService(service_manager); | ||||
|     Core::DSP().SetServiceToInterrupt(std::move(dsp)); | ||||
|     system.DSP().SetServiceToInterrupt(std::move(dsp)); | ||||
| } | ||||
| 
 | ||||
| } // namespace Service::DSP
 | ||||
|  |  | |||
|  | @ -67,6 +67,7 @@ public: | |||
|     std::vector<PageTable*> page_table_list; | ||||
| 
 | ||||
|     ARM_Interface* cpu = nullptr; | ||||
|     AudioCore::DspInterface* dsp = nullptr; | ||||
| }; | ||||
| 
 | ||||
| MemorySystem::MemorySystem() : impl(std::make_unique<Impl>()) {} | ||||
|  | @ -325,7 +326,7 @@ u8* MemorySystem::GetPhysicalPointer(PAddr address) { | |||
|         target_pointer = impl->vram.get() + offset_into_region; | ||||
|         break; | ||||
|     case DSP_RAM_PADDR: | ||||
|         target_pointer = Core::DSP().GetDspMemory().data() + offset_into_region; | ||||
|         target_pointer = impl->dsp->GetDspMemory().data() + offset_into_region; | ||||
|         break; | ||||
|     case FCRAM_PADDR: | ||||
|         target_pointer = impl->fcram.get() + offset_into_region; | ||||
|  | @ -808,4 +809,8 @@ u8* MemorySystem::GetFCRAMPointer(u32 offset) { | |||
|     return impl->fcram.get() + offset; | ||||
| } | ||||
| 
 | ||||
| void MemorySystem::SetDSP(AudioCore::DspInterface& dsp) { | ||||
|     impl->dsp = &dsp; | ||||
| } | ||||
| 
 | ||||
| } // namespace Memory
 | ||||
|  |  | |||
|  | @ -18,6 +18,10 @@ namespace Kernel { | |||
| class Process; | ||||
| } | ||||
| 
 | ||||
| namespace AudioCore { | ||||
| class DspInterface; | ||||
| } | ||||
| 
 | ||||
| namespace Memory { | ||||
| 
 | ||||
| // Are defined in a system header
 | ||||
|  | @ -292,6 +296,8 @@ public: | |||
|     /// Unregisters page table for rasterizer cache marking
 | ||||
|     void UnregisterPageTable(PageTable* page_table); | ||||
| 
 | ||||
|     void SetDSP(AudioCore::DspInterface& dsp); | ||||
| 
 | ||||
| private: | ||||
|     template <typename T> | ||||
|     T Read(const VAddr vaddr); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue