DSInput::DSInput()
: DS_INIT_PRIVATE_PTR(DSInput)
{
- DS_GET_PRIV(DSInput);
-
- priv->Init();
}
DSInput::~DSInput()
{
}
+void DSInput::Init()
+{
+ DS_GET_PRIV(DSInput);
+
+ priv->Init();
+}
+
void DSInput::deviceAdd(std::string name, std::string identifier, DSInput::DeviceClass devClass, DSInput::DeviceSubclass devSubclass)
{
DSInputDevice *device = new DSInputDevice(name, identifier, devClass, devSubclass);
}
}
+ this->__deviceAddSignal.emit(std::make_shared<DSInputDevice>(*device));
+
devList.push_back(device);
}
{
if (*dev == *device)
{
+ this->__deviceRemoveSignal.emit(std::make_shared<DSInputDevice>(*dev));
+
devList.remove(dev);
delete dev;
break;
delete device;
}
+void DSInput::registerCallbackDeviceAdd(DSObject *slot, std::function<void(std::shared_ptr<DSInputDevice>)> func)
+{
+ this->__deviceAddSignal.connect(slot, func);
+}
+
+void DSInput::registerCallbackDeviceRemove(DSObject *slot, std::function<void(std::shared_ptr<DSInputDevice>)> func)
+{
+ this->__deviceRemoveSignal.connect(slot, func);
+}
+
+
DSInputDevice::DSInputDevice()
: __deviceName(""),
__deviceIdentifier(""),
#include <iostream>
#include <string>
#include <memory>
+#include <DSSignal.h>
+#include <functional>
namespace display_server
{
DSInput();
~DSInput() override;
+ void Init();
+
void deviceAdd(std::string name, std::string identifier, DSInput::DeviceClass devClass, DSInput::DeviceSubclass devSubclass);
void deviceRemove(std::string name, std::string identifier, DSInput::DeviceClass devClass, DSInput::DeviceSubclass devSubclass);
+ void registerCallbackDeviceAdd(DSObject *slot, std::function<void(std::shared_ptr<DSInputDevice>)> func);
+ void registerCallbackDeviceRemove(DSObject *slot, std::function<void(std::shared_ptr<DSInputDevice>)> func);
+
private:
std::list<DSInputDevice*> devList;
+
+ DSSignal<std::shared_ptr<DSInputDevice>> __deviceAddSignal;
+ DSSignal<std::shared_ptr<DSInputDevice>> __deviceRemoveSignal;
};
class DSInputDevice