pub->keyUp(keycode, devIdentifier, devClass, timestamp);
}
-void DSInputPrivate::PostPointerEvent(int button, int x, int y, int z, DSInputEvent::Type type, std::string devIdentifier, DSInput::DeviceClass devClass)
+void DSInputPrivate::PostPointerEvent(int button, int x, int y, int z, DSInputEvent::Type type, std::string devIdentifier, DSInput::DeviceClass devClass, uint32_t timestamp)
{
DS_GET_PUB(DSInput);
if (type == DSInputEvent::MouseDownEvent)
- pub->mouseDown(button, x, y, z, devIdentifier, devClass);
+ pub->mouseDown(button, x, y, z, devIdentifier, devClass, timestamp);
else if (type == DSInputEvent::MouseMoveEvent)
- pub->mouseMove(button, x, y, z, devIdentifier, devClass);
+ pub->mouseMove(button, x, y, z, devIdentifier, devClass, timestamp);
else if (type == DSInputEvent::MouseUpEvent)
- pub->mouseUp(button, x, y, z, devIdentifier, devClass);
+ pub->mouseUp(button, x, y, z, devIdentifier, devClass, timestamp);
}
-void DSInputPrivate::PostTouchEvent(int index, int x, int y, DSInputEvent::Type type, std::string devIdentifier, DSInput::DeviceClass devClass)
+void DSInputPrivate::PostTouchEvent(int index, int x, int y, DSInputEvent::Type type, std::string devIdentifier, DSInput::DeviceClass devClass, uint32_t timestamp)
{
DS_GET_PUB(DSInput);
if (type == DSInputEvent::TouchDownEvent)
- pub->touchDown(index, x, y, devIdentifier, devClass);
+ pub->touchDown(index, x, y, devIdentifier, devClass, timestamp);
else if (type == DSInputEvent::TouchMoveEvent)
- pub->touchMove(index, x, y, devIdentifier, devClass);
+ pub->touchMove(index, x, y, devIdentifier, devClass, timestamp);
else if (type == DSInputEvent::TouchUpEvent)
- pub->touchUp(index, x, y, devIdentifier, devClass);
+ pub->touchUp(index, x, y, devIdentifier, devClass, timestamp);
}
int DSInput::DS_INPUT_EVENT_KEY_DOWN = 0;
ecore_event_add(DS_INPUT_EVENT_KEY_UP, (void *)ev, nullptr, nullptr);
}
-void DSInput::mouseDown(int button, int x, int y, int z, std::string devIdentifier, DSInput::DeviceClass devClass)
+void DSInput::mouseDown(int button, int x, int y, int z, std::string devIdentifier, DSInput::DeviceClass devClass, uint32_t timestamp)
{
DSLOG_DBG("DSInput", "[mouseDown] button: %d (%d, %d, %d), identifier: %d\n", button, x, y, z, devIdentifier);
DSInputDevice *device = findDevice(devIdentifier, devClass);
- DSInputMouseEvent *ev = new DSInputMouseEvent(std::make_shared<DSInputDevice>(*device), DSInputEvent::MouseDownEvent, 0, button, x, y, z);
+ DSInputMouseEvent *ev = new DSInputMouseEvent(std::make_shared<DSInputDevice>(*device), DSInputEvent::MouseDownEvent, timestamp, button, x, y, z);
ecore_event_add(DS_INPUT_EVENT_MOUSE_DOWN, (void *)ev, nullptr, nullptr);
}
-void DSInput::mouseMove(int button, int x, int y, int z, std::string devIdentifier, DSInput::DeviceClass devClass)
+void DSInput::mouseMove(int button, int x, int y, int z, std::string devIdentifier, DSInput::DeviceClass devClass, uint32_t timestamp)
{
DSLOG_DBG("DSInput", "[mouseMove] button: %d (%d, %d, %d), identifier: %d\n", button, x, y, z, devIdentifier);
DSInputDevice *device = findDevice(devIdentifier, devClass);
- DSInputMouseEvent *ev = new DSInputMouseEvent(std::make_shared<DSInputDevice>(*device), DSInputEvent::MouseMoveEvent, 0, button, x, y, z);
+ DSInputMouseEvent *ev = new DSInputMouseEvent(std::make_shared<DSInputDevice>(*device), DSInputEvent::MouseMoveEvent, timestamp, button, x, y, z);
ecore_event_add(DS_INPUT_EVENT_MOUSE_MOVE, (void *)ev, nullptr, nullptr);
}
-void DSInput::mouseUp(int button, int x, int y, int z, std::string devIdentifier, DSInput::DeviceClass devClass)
+void DSInput::mouseUp(int button, int x, int y, int z, std::string devIdentifier, DSInput::DeviceClass devClass, uint32_t timestamp)
{
DSLOG_DBG("DSInput", "[mouseUp] button: %d (%d, %d, %d), identifier: %d\n", button, x, y, z, devIdentifier);
DSInputDevice *device = findDevice(devIdentifier, devClass);
- DSInputMouseEvent *ev = new DSInputMouseEvent(std::make_shared<DSInputDevice>(*device), DSInputEvent::MouseUpEvent, 0, button, x, y, z);
+ DSInputMouseEvent *ev = new DSInputMouseEvent(std::make_shared<DSInputDevice>(*device), DSInputEvent::MouseUpEvent, timestamp, button, x, y, z);
ecore_event_add(DS_INPUT_EVENT_MOUSE_UP, (void *)ev, nullptr, nullptr);
}
-void DSInput::touchDown(int index, int x, int y, std::string devIdentifier, DSInput::DeviceClass devClass)
+void DSInput::touchDown(int index, int x, int y, std::string devIdentifier, DSInput::DeviceClass devClass, uint32_t timestamp)
{
DSLOG_DBG("DSInput", "[touchDown] index: %d (%d, %d), identifier: %d\n", index, x, y, devIdentifier);
DSInputDevice *device = findDevice(devIdentifier, devClass);
- DSInputTouchEvent *ev = new DSInputTouchEvent(std::make_shared<DSInputDevice>(*device), DSInputEvent::TouchDownEvent, 0, index, x, y);
+ DSInputTouchEvent *ev = new DSInputTouchEvent(std::make_shared<DSInputDevice>(*device), DSInputEvent::TouchDownEvent, timestamp, index, x, y);
ecore_event_add(DS_INPUT_EVENT_TOUCH_DOWN, (void *)ev, nullptr, nullptr);
}
-void DSInput::touchMove(int index, int x, int y, std::string devIdentifier, DSInput::DeviceClass devClass)
+void DSInput::touchMove(int index, int x, int y, std::string devIdentifier, DSInput::DeviceClass devClass, uint32_t timestamp)
{
DSLOG_DBG("DSInput", "[touchMove] index: %d (%d, %d), identifier: %d\n", index, x, y, devIdentifier);
DSInputDevice *device = findDevice(devIdentifier, devClass);
- DSInputTouchEvent *ev = new DSInputTouchEvent(std::make_shared<DSInputDevice>(*device), DSInputEvent::TouchMoveEvent, 0, index, x, y);
+ DSInputTouchEvent *ev = new DSInputTouchEvent(std::make_shared<DSInputDevice>(*device), DSInputEvent::TouchMoveEvent, timestamp, index, x, y);
ecore_event_add(DS_INPUT_EVENT_TOUCH_MOVE, (void *)ev, nullptr, nullptr);
}
-void DSInput::touchUp(int index, int x, int y, std::string devIdentifier, DSInput::DeviceClass devClass)
+void DSInput::touchUp(int index, int x, int y, std::string devIdentifier, DSInput::DeviceClass devClass, uint32_t timestamp)
{
DSLOG_DBG("DSInput", "[touchUp] index: %d (%d, %d), identifier: %d\n", index, x, y, devIdentifier);
DSInputDevice *device = findDevice(devIdentifier, devClass);
- DSInputTouchEvent *ev = new DSInputTouchEvent(std::make_shared<DSInputDevice>(*device), DSInputEvent::TouchUpEvent, 0, index, x, y);
+ DSInputTouchEvent *ev = new DSInputTouchEvent(std::make_shared<DSInputDevice>(*device), DSInputEvent::TouchUpEvent, timestamp, index, x, y);
ecore_event_add(DS_INPUT_EVENT_TOUCH_UP, (void *)ev, nullptr, nullptr);
}
#include <DSCore.h>
#include <DSObject.h>
-#include <iostream>
-#include <string>
-#include <memory>
#include <DSSignal.h>
-#include <functional>
#include <Ecore.h>
void deviceRemove(std::string name, std::string identifier, DSInput::DeviceClass devClass, DSInput::DeviceSubclass devSubclass);
void keyDown(int keycode, std::string devIdentifier, DSInput::DeviceClass devClass, uint32_t timestamp);
void keyUp(int keycode, std::string devIdentifier, DSInput::DeviceClass devClass, uint32_t timestamp);
- void mouseDown(int button, int x, int y, int z, std::string devIdentifier, DSInput::DeviceClass devClass);
- void mouseMove(int button, int x, int y, int z, std::string devIdentifier, DSInput::DeviceClass devClass);
- void mouseUp(int button, int x, int y, int z, std::string devIdentifier, DSInput::DeviceClass devClass);
- void touchDown(int index, int x, int y, std::string devIdentifier, DSInput::DeviceClass devClass);
- void touchMove(int index, int x, int y, std::string devIdentifier, DSInput::DeviceClass devClass);
- void touchUp(int index, int x, int y, std::string devIdentifier, DSInput::DeviceClass devClass);
+ void mouseDown(int button, int x, int y, int z, std::string devIdentifier, DSInput::DeviceClass devClass, uint32_t timestamp);
+ void mouseMove(int button, int x, int y, int z, std::string devIdentifier, DSInput::DeviceClass devClass, uint32_t timestamp);
+ void mouseUp(int button, int x, int y, int z, std::string devIdentifier, DSInput::DeviceClass devClass, uint32_t timestamp);
+ void touchDown(int index, int x, int y, std::string devIdentifier, DSInput::DeviceClass devClass, uint32_t timestamp);
+ void touchMove(int index, int x, int y, std::string devIdentifier, DSInput::DeviceClass devClass, uint32_t timestamp);
+ void touchUp(int index, int x, int y, std::string devIdentifier, DSInput::DeviceClass devClass, uint32_t timestamp);
void registerCallbackDeviceAdd(DSObject *slot, std::function<void(std::shared_ptr<DSInputDevice>)> func);
void registerCallbackDeviceRemove(DSObject *slot, std::function<void(std::shared_ptr<DSInputDevice>)> func);
{
struct:: libinput_event_pointer *pointer_event = libinput_event_get_pointer_event(event);
int dx, dy;
-
+ uint32_t timestamp = libinput_event_pointer_get_time(pointer_event);
struct ::libinput_device *device = libinput_event_get_device(event);
std::string identifier = (std::string)"/dev/input/" + (std::string)libinput_device_get_sysname(device);
dx = libinput_event_pointer_get_dx(pointer_event);
dy = libinput_event_pointer_get_dy(pointer_event);
- inputPrivate->PostPointerEvent(0, dx, dy, 0, DSInputEvent::MouseMoveEvent, identifier, DSInput::PointerClass);
+ inputPrivate->PostPointerEvent(0, dx, dy, 0, DSInputEvent::MouseMoveEvent, identifier, DSInput::PointerClass, timestamp);
}
void DSLibinput::__processPointerMotionAbsoluteEvent(struct ::libinput_event *event)
DSInputEvent::Type eventType;
int button;
int state;
+ uint32_t timestamp = libinput_event_pointer_get_time(pointer_event);
struct ::libinput_device *device = libinput_event_get_device(event);
std::string identifier = (std::string)"/dev/input/" + (std::string)libinput_device_get_sysname(device);
else
eventType = DSInputEvent::MouseUpEvent;
- inputPrivate->PostPointerEvent(button, 0, 0, 0, eventType, identifier, DSInput::PointerClass);
+ inputPrivate->PostPointerEvent(button, 0, 0, 0, eventType, identifier, DSInput::PointerClass, timestamp);
}
void DSLibinput::__processPointerAxisEvent(struct ::libinput_event *event)
{
struct:: libinput_event_touch *touch_event = libinput_event_get_touch_event(event);
int index, x, y;
+ uint32_t timestamp = libinput_event_touch_get_time(touch_event);
struct ::libinput_device *device = libinput_event_get_device(event);
std::string identifier = (std::string)"/dev/input/" + (std::string)libinput_device_get_sysname(device);
x = libinput_event_touch_get_x(touch_event);
y = libinput_event_touch_get_y(touch_event);
- inputPrivate->PostTouchEvent(index, x, y, DSInputEvent::TouchDownEvent, identifier, DSInput::TouchClass);
+ inputPrivate->PostTouchEvent(index, x, y, DSInputEvent::TouchDownEvent, identifier, DSInput::TouchClass, timestamp);
}
void DSLibinput::__processTouchMotionEvent(struct ::libinput_event *event)
{
struct:: libinput_event_touch *touch_event = libinput_event_get_touch_event(event);
int index, x, y;
+ uint32_t timestamp = libinput_event_touch_get_time(touch_event);
struct ::libinput_device *device = libinput_event_get_device(event);
std::string identifier = (std::string)"/dev/input/" + (std::string)libinput_device_get_sysname(device);
x = libinput_event_touch_get_x(touch_event);
y = libinput_event_touch_get_y(touch_event);
- inputPrivate->PostTouchEvent(index, x, y, DSInputEvent::TouchMoveEvent, identifier, DSInput::TouchClass);
+ inputPrivate->PostTouchEvent(index, x, y, DSInputEvent::TouchMoveEvent, identifier, DSInput::TouchClass, timestamp);
}
void DSLibinput::__processTouchUpEvent(struct ::libinput_event *event)
{
struct:: libinput_event_touch *touch_event = libinput_event_get_touch_event(event);
int index, x, y;
+ uint32_t timestamp = libinput_event_touch_get_time(touch_event);
struct ::libinput_device *device = libinput_event_get_device(event);
std::string identifier = (std::string)"/dev/input/" + (std::string)libinput_device_get_sysname(device);
x = 0;
y = 0;
- inputPrivate->PostTouchEvent(index, x, y, DSInputEvent::TouchUpEvent, identifier, DSInput::TouchClass);
+ inputPrivate->PostTouchEvent(index, x, y, DSInputEvent::TouchUpEvent, identifier, DSInput::TouchClass, timestamp);
}
void DSLibinput::__processTouchCancelEvent(struct ::libinput_event *event)