mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-11-03 23:28:48 +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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue