ir_u: convert to ServiceFramework

This commit is contained in:
wwylele 2017-12-09 12:34:23 +02:00
parent 69caf8c5dc
commit f3e41fe941
5 changed files with 36 additions and 35 deletions

View file

@ -13,7 +13,6 @@ namespace IR {
void Init() { void Init() {
AddService(new IR_RST_Interface); AddService(new IR_RST_Interface);
AddService(new IR_U_Interface);
AddService(new IR_User_Interface); AddService(new IR_User_Interface);
InitUser(); InitUser();
@ -30,6 +29,10 @@ void ReloadInputDevices() {
ReloadInputDevicesRST(); ReloadInputDevicesRST();
} }
void InstallInterfaces(SM::ServiceManager& service_manager) {
std::make_shared<IR_U>()->InstallAsService(service_manager);
}
} // namespace IR } // namespace IR
} // namespace Service } // namespace Service

View file

@ -4,10 +4,11 @@
#pragma once #pragma once
namespace SM {
class ServiceManager;
}
namespace Service { namespace Service {
class Interface;
namespace IR { namespace IR {
/// Initialize IR service /// Initialize IR service
@ -19,5 +20,7 @@ void Shutdown();
/// Reload input devices. Used when input configuration changed /// Reload input devices. Used when input configuration changed
void ReloadInputDevices(); void ReloadInputDevices();
void InstallInterfaces(SM::ServiceManager& service_manager);
} // namespace IR } // namespace IR
} // namespace Service } // namespace Service

View file

@ -7,8 +7,8 @@
namespace Service { namespace Service {
namespace IR { namespace IR {
const Interface::FunctionInfo FunctionTable[] = { IR_U::IR_U() : ServiceFramework("ir:u", 1) {
// clang-format off static const FunctionInfo functions[] = {
{0x00010000, nullptr, "Initialize"}, {0x00010000, nullptr, "Initialize"},
{0x00020000, nullptr, "Shutdown"}, {0x00020000, nullptr, "Shutdown"},
{0x00030042, nullptr, "StartSendTransfer"}, {0x00030042, nullptr, "StartSendTransfer"},
@ -27,11 +27,8 @@ const Interface::FunctionInfo FunctionTable[] = {
{0x00100000, nullptr, "GetErrorStatus"}, {0x00100000, nullptr, "GetErrorStatus"},
{0x00110040, nullptr, "SetSleepModeActive"}, {0x00110040, nullptr, "SetSleepModeActive"},
{0x00120040, nullptr, "SetSleepModeState"}, {0x00120040, nullptr, "SetSleepModeState"},
// clang-format on
}; };
RegisterHandlers(functions);
IR_U_Interface::IR_U_Interface() {
Register(FunctionTable);
} }
} // namespace IR } // namespace IR

View file

@ -9,13 +9,10 @@
namespace Service { namespace Service {
namespace IR { namespace IR {
class IR_U_Interface : public Service::Interface { /// Interface to "ir:u" service
class IR_U final : public ServiceFramework<IR_U> {
public: public:
IR_U_Interface(); IR_U();
std::string GetPortName() const override {
return "ir:u";
}
}; };
} // namespace IR } // namespace IR

View file

@ -274,6 +274,7 @@ void Init() {
FRD::Init(); FRD::Init();
HID::Init(); HID::Init();
IR::Init(); IR::Init();
IR::InstallInterfaces(*SM::g_service_manager);
MVD::Init(); MVD::Init();
NDM::Init(); NDM::Init();
NEWS::Init(); NEWS::Init();