mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 13:50:03 +00:00 
			
		
		
		
	ir_u: convert to ServiceFramework
This commit is contained in:
		
							parent
							
								
									69caf8c5dc
								
							
						
					
					
						commit
						f3e41fe941
					
				
					 5 changed files with 36 additions and 35 deletions
				
			
		|  | @ -13,7 +13,6 @@ namespace IR { | |||
| 
 | ||||
| void Init() { | ||||
|     AddService(new IR_RST_Interface); | ||||
|     AddService(new IR_U_Interface); | ||||
|     AddService(new IR_User_Interface); | ||||
| 
 | ||||
|     InitUser(); | ||||
|  | @ -30,6 +29,10 @@ void ReloadInputDevices() { | |||
|     ReloadInputDevicesRST(); | ||||
| } | ||||
| 
 | ||||
| void InstallInterfaces(SM::ServiceManager& service_manager) { | ||||
|     std::make_shared<IR_U>()->InstallAsService(service_manager); | ||||
| } | ||||
| 
 | ||||
| } // namespace IR
 | ||||
| 
 | ||||
| } // namespace Service
 | ||||
|  |  | |||
|  | @ -4,10 +4,11 @@ | |||
| 
 | ||||
| #pragma once | ||||
| 
 | ||||
| namespace SM { | ||||
| class ServiceManager; | ||||
| } | ||||
| 
 | ||||
| namespace Service { | ||||
| 
 | ||||
| class Interface; | ||||
| 
 | ||||
| namespace IR { | ||||
| 
 | ||||
| /// Initialize IR service
 | ||||
|  | @ -19,5 +20,7 @@ void Shutdown(); | |||
| /// Reload input devices. Used when input configuration changed
 | ||||
| void ReloadInputDevices(); | ||||
| 
 | ||||
| void InstallInterfaces(SM::ServiceManager& service_manager); | ||||
| 
 | ||||
| } // namespace IR
 | ||||
| } // namespace Service
 | ||||
|  |  | |||
|  | @ -7,31 +7,28 @@ | |||
| namespace Service { | ||||
| namespace IR { | ||||
| 
 | ||||
| const Interface::FunctionInfo FunctionTable[] = { | ||||
|     // clang-format off
 | ||||
|     {0x00010000, nullptr, "Initialize"}, | ||||
|     {0x00020000, nullptr, "Shutdown"}, | ||||
|     {0x00030042, nullptr, "StartSendTransfer"}, | ||||
|     {0x00040000, nullptr, "WaitSendTransfer"}, | ||||
|     {0x000500C2, nullptr, "StartRecvTransfer"}, | ||||
|     {0x00060000, nullptr, "WaitRecvTransfer"}, | ||||
|     {0x00070080, nullptr, "GetRecvTransferCount"}, | ||||
|     {0x00080000, nullptr, "GetSendState"}, | ||||
|     {0x00090040, nullptr, "SetBitRate"}, | ||||
|     {0x000A0000, nullptr, "GetBitRate"}, | ||||
|     {0x000B0040, nullptr, "SetIRLEDState"}, | ||||
|     {0x000C0000, nullptr, "GetIRLEDRecvState"}, | ||||
|     {0x000D0000, nullptr, "GetSendFinishedEvent"}, | ||||
|     {0x000E0000, nullptr, "GetRecvFinishedEvent"}, | ||||
|     {0x000F0000, nullptr, "GetTransferState"}, | ||||
|     {0x00100000, nullptr, "GetErrorStatus"}, | ||||
|     {0x00110040, nullptr, "SetSleepModeActive"}, | ||||
|     {0x00120040, nullptr, "SetSleepModeState"}, | ||||
|     // clang-format on
 | ||||
| }; | ||||
| 
 | ||||
| IR_U_Interface::IR_U_Interface() { | ||||
|     Register(FunctionTable); | ||||
| IR_U::IR_U() : ServiceFramework("ir:u", 1) { | ||||
|     static const FunctionInfo functions[] = { | ||||
|         {0x00010000, nullptr, "Initialize"}, | ||||
|         {0x00020000, nullptr, "Shutdown"}, | ||||
|         {0x00030042, nullptr, "StartSendTransfer"}, | ||||
|         {0x00040000, nullptr, "WaitSendTransfer"}, | ||||
|         {0x000500C2, nullptr, "StartRecvTransfer"}, | ||||
|         {0x00060000, nullptr, "WaitRecvTransfer"}, | ||||
|         {0x00070080, nullptr, "GetRecvTransferCount"}, | ||||
|         {0x00080000, nullptr, "GetSendState"}, | ||||
|         {0x00090040, nullptr, "SetBitRate"}, | ||||
|         {0x000A0000, nullptr, "GetBitRate"}, | ||||
|         {0x000B0040, nullptr, "SetIRLEDState"}, | ||||
|         {0x000C0000, nullptr, "GetIRLEDRecvState"}, | ||||
|         {0x000D0000, nullptr, "GetSendFinishedEvent"}, | ||||
|         {0x000E0000, nullptr, "GetRecvFinishedEvent"}, | ||||
|         {0x000F0000, nullptr, "GetTransferState"}, | ||||
|         {0x00100000, nullptr, "GetErrorStatus"}, | ||||
|         {0x00110040, nullptr, "SetSleepModeActive"}, | ||||
|         {0x00120040, nullptr, "SetSleepModeState"}, | ||||
|     }; | ||||
|     RegisterHandlers(functions); | ||||
| } | ||||
| 
 | ||||
| } // namespace IR
 | ||||
|  |  | |||
|  | @ -9,13 +9,10 @@ | |||
| namespace Service { | ||||
| namespace IR { | ||||
| 
 | ||||
| class IR_U_Interface : public Service::Interface { | ||||
| /// Interface to "ir:u" service
 | ||||
| class IR_U final : public ServiceFramework<IR_U> { | ||||
| public: | ||||
|     IR_U_Interface(); | ||||
| 
 | ||||
|     std::string GetPortName() const override { | ||||
|         return "ir:u"; | ||||
|     } | ||||
|     IR_U(); | ||||
| }; | ||||
| 
 | ||||
| } // namespace IR
 | ||||
|  |  | |||
|  | @ -274,6 +274,7 @@ void Init() { | |||
|     FRD::Init(); | ||||
|     HID::Init(); | ||||
|     IR::Init(); | ||||
|     IR::InstallInterfaces(*SM::g_service_manager); | ||||
|     MVD::Init(); | ||||
|     NDM::Init(); | ||||
|     NEWS::Init(); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue