mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	service/gsp: Migrate gsp_lcd to ServiceFramework
This commit is contained in:
		
							parent
							
								
									438751075f
								
							
						
					
					
						commit
						188979b3e2
					
				
					 5 changed files with 22 additions and 23 deletions
				
			
		|  | @ -11,6 +11,7 @@ namespace Service { | ||||||
| namespace GSP { | namespace GSP { | ||||||
| 
 | 
 | ||||||
| static std::weak_ptr<GSP_GPU> gsp_gpu; | static std::weak_ptr<GSP_GPU> gsp_gpu; | ||||||
|  | static std::weak_ptr<GSP_LCD> gsp_lcd; | ||||||
| 
 | 
 | ||||||
| FrameBufferUpdate* GetFrameBufferInfo(u32 thread_id, u32 screen_index) { | FrameBufferUpdate* GetFrameBufferInfo(u32 thread_id, u32 screen_index) { | ||||||
|     auto gpu = gsp_gpu.lock(); |     auto gpu = gsp_gpu.lock(); | ||||||
|  | @ -27,8 +28,11 @@ void SignalInterrupt(InterruptId interrupt_id) { | ||||||
| void InstallInterfaces(SM::ServiceManager& service_manager) { | void InstallInterfaces(SM::ServiceManager& service_manager) { | ||||||
|     auto gpu = std::make_shared<GSP_GPU>(); |     auto gpu = std::make_shared<GSP_GPU>(); | ||||||
|     gpu->InstallAsService(service_manager); |     gpu->InstallAsService(service_manager); | ||||||
| 
 |  | ||||||
|     gsp_gpu = gpu; |     gsp_gpu = gpu; | ||||||
|  | 
 | ||||||
|  |     auto lcd = std::make_shared<GSP_LCD>(); | ||||||
|  |     lcd->InstallAsService(service_manager); | ||||||
|  |     gsp_lcd = lcd; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| } // namespace GSP
 | } // namespace GSP
 | ||||||
|  |  | ||||||
|  | @ -9,6 +9,7 @@ | ||||||
| #include "common/common_types.h" | #include "common/common_types.h" | ||||||
| #include "core/hle/result.h" | #include "core/hle/result.h" | ||||||
| #include "core/hle/service/gsp/gsp_gpu.h" | #include "core/hle/service/gsp/gsp_gpu.h" | ||||||
|  | #include "core/hle/service/gsp/gsp_lcd.h" | ||||||
| 
 | 
 | ||||||
| namespace Service { | namespace Service { | ||||||
| namespace GSP { | namespace GSP { | ||||||
|  |  | ||||||
|  | @ -2,13 +2,14 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
|  | #include "core/hle/ipc_helpers.h" | ||||||
| #include "core/hle/service/gsp/gsp_lcd.h" | #include "core/hle/service/gsp/gsp_lcd.h" | ||||||
| 
 | 
 | ||||||
| namespace Service { | namespace Service { | ||||||
| namespace GSP { | namespace GSP { | ||||||
| 
 | 
 | ||||||
| const Interface::FunctionInfo FunctionTable[] = { | GSP_LCD::GSP_LCD() : ServiceFramework("gsp::Lcd") { | ||||||
|     // clang-format off
 |     static const FunctionInfo functions[] = { | ||||||
|         {0x000A0080, nullptr, "SetBrightnessRaw"}, |         {0x000A0080, nullptr, "SetBrightnessRaw"}, | ||||||
|         {0x000B0080, nullptr, "SetBrightness"}, |         {0x000B0080, nullptr, "SetBrightness"}, | ||||||
|         {0x000F0000, nullptr, "PowerOnAllBacklights"}, |         {0x000F0000, nullptr, "PowerOnAllBacklights"}, | ||||||
|  | @ -18,12 +19,9 @@ const Interface::FunctionInfo FunctionTable[] = { | ||||||
|         {0x00130040, nullptr, "SetLedForceOff"}, |         {0x00130040, nullptr, "SetLedForceOff"}, | ||||||
|         {0x00140000, nullptr, "GetVendor"}, |         {0x00140000, nullptr, "GetVendor"}, | ||||||
|         {0x00150040, nullptr, "GetBrightness"}, |         {0x00150040, nullptr, "GetBrightness"}, | ||||||
|     // clang-format on
 |     }; | ||||||
|  |     RegisterHandlers(functions); | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| GSP_LCD::GSP_LCD() { |  | ||||||
|     Register(FunctionTable); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| } // namespace GSP
 | } // namespace GSP
 | ||||||
| } // namespace Service
 | } // namespace Service
 | ||||||
|  |  | ||||||
|  | @ -9,13 +9,10 @@ | ||||||
| namespace Service { | namespace Service { | ||||||
| namespace GSP { | namespace GSP { | ||||||
| 
 | 
 | ||||||
| class GSP_LCD final : public Interface { | class GSP_LCD final : public ServiceFramework<GSP_LCD> { | ||||||
| public: | public: | ||||||
|     GSP_LCD(); |     GSP_LCD(); | ||||||
| 
 |     ~GSP_LCD() = default; | ||||||
|     std::string GetPortName() const override { |  | ||||||
|         return "gsp::Lcd"; |  | ||||||
|     } |  | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| } // namespace GSP
 | } // namespace GSP
 | ||||||
|  |  | ||||||
|  | @ -258,7 +258,6 @@ void Init(std::shared_ptr<SM::ServiceManager>& sm) { | ||||||
| 
 | 
 | ||||||
|     AddService(new CSND::CSND_SND); |     AddService(new CSND::CSND_SND); | ||||||
|     AddService(new DSP_DSP::Interface); |     AddService(new DSP_DSP::Interface); | ||||||
|     AddService(new GSP::GSP_LCD); |  | ||||||
|     AddService(new HTTP::HTTP_C); |     AddService(new HTTP::HTTP_C); | ||||||
|     AddService(new PM::PM_APP); |     AddService(new PM::PM_APP); | ||||||
|     AddService(new SOC::SOC_U); |     AddService(new SOC::SOC_U); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue