mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 13:50:03 +00:00 
			
		
		
		
	applets: implement HLE mii selector applet
This commit is contained in:
		
							parent
							
								
									f903d3161d
								
							
						
					
					
						commit
						041638ea4d
					
				
					 12 changed files with 350 additions and 18 deletions
				
			
		|  | @ -3,10 +3,12 @@ | |||
| // Refer to the license.txt file included.
 | ||||
| 
 | ||||
| #include "core/frontend/applets/default_applets.h" | ||||
| #include "core/frontend/applets/mii_selector.h" | ||||
| #include "core/frontend/applets/swkbd.h" | ||||
| 
 | ||||
| namespace Frontend { | ||||
| void RegisterDefaultApplets() { | ||||
|     RegisterSoftwareKeyboard(std::make_shared<DefaultKeyboard>()); | ||||
|     RegisterMiiSelector(std::make_shared<DefaultMiiSelector>()); | ||||
| } | ||||
| } // namespace Frontend
 | ||||
|  |  | |||
							
								
								
									
										27
									
								
								src/core/frontend/applets/mii_selector.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								src/core/frontend/applets/mii_selector.cpp
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,27 @@ | |||
| // Copyright 2018 Citra Emulator Project
 | ||||
| // Licensed under GPLv2 or any later version
 | ||||
| // Refer to the license.txt file included.
 | ||||
| 
 | ||||
| #include "core/core.h" | ||||
| #include "core/frontend/applets/mii_selector.h" | ||||
| 
 | ||||
| namespace Frontend { | ||||
| 
 | ||||
| void MiiSelector::Finalize(u32 return_code, HLE::Applets::MiiData mii) { | ||||
|     data = {return_code, mii}; | ||||
| } | ||||
| 
 | ||||
| void DefaultMiiSelector::Setup(const Frontend::MiiSelectorConfig* config) { | ||||
|     MiiSelector::Setup(config); | ||||
|     Finalize(0, HLE::Applets::MiiSelector::GetStandardMiiResult().selected_mii_data); | ||||
| } | ||||
| 
 | ||||
| void RegisterMiiSelector(std::shared_ptr<MiiSelector> applet) { | ||||
|     Core::System::GetInstance().RegisterMiiSelector(applet); | ||||
| } | ||||
| 
 | ||||
| std::shared_ptr<MiiSelector> GetRegisteredMiiSelector() { | ||||
|     return Core::System::GetInstance().GetMiiSelector(); | ||||
| } | ||||
| 
 | ||||
| } // namespace Frontend
 | ||||
							
								
								
									
										56
									
								
								src/core/frontend/applets/mii_selector.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								src/core/frontend/applets/mii_selector.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,56 @@ | |||
| // Copyright 2018 Citra Emulator Project
 | ||||
| // Licensed under GPLv2 or any later version
 | ||||
| // Refer to the license.txt file included.
 | ||||
| 
 | ||||
| #pragma once | ||||
| 
 | ||||
| #include <array> | ||||
| #include <memory> | ||||
| #include <string> | ||||
| #include "core/hle/applets/mii_selector.h" | ||||
| 
 | ||||
| namespace Frontend { | ||||
| 
 | ||||
| /// Configuration that's relevant to frontend implementation of applet. Anything missing that we
 | ||||
| /// later learn is needed can be added here and filled in by the backend HLE applet
 | ||||
| struct MiiSelectorConfig { | ||||
|     bool enable_cancel_button; | ||||
|     std::u16string title; | ||||
|     u32 initially_selected_mii_index; | ||||
| }; | ||||
| 
 | ||||
| struct MiiSelectorData { | ||||
|     u32 return_code; | ||||
|     HLE::Applets::MiiData mii; | ||||
| }; | ||||
| 
 | ||||
| class MiiSelector { | ||||
| public: | ||||
|     virtual void Setup(const MiiSelectorConfig* config) { | ||||
|         this->config = MiiSelectorConfig(*config); | ||||
|     } | ||||
|     const MiiSelectorData* ReceiveData() { | ||||
|         return &data; | ||||
|     } | ||||
| 
 | ||||
|     /**
 | ||||
|      * Stores the data so that the HLE applet in core can | ||||
|      * send this to the calling application | ||||
|      */ | ||||
|     void Finalize(u32 return_code, HLE::Applets::MiiData mii); | ||||
| 
 | ||||
| protected: | ||||
|     MiiSelectorConfig config; | ||||
|     MiiSelectorData data; | ||||
| }; | ||||
| 
 | ||||
| class DefaultMiiSelector final : public MiiSelector { | ||||
| public: | ||||
|     void Setup(const MiiSelectorConfig* config) override; | ||||
| }; | ||||
| 
 | ||||
| void RegisterMiiSelector(std::shared_ptr<MiiSelector> applet); | ||||
| 
 | ||||
| std::shared_ptr<MiiSelector> GetRegisteredMiiSelector(); | ||||
| 
 | ||||
| } // namespace Frontend
 | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue