channels/rdpei: define message interface ids
This commit is contained in:
parent
335d13d65f
commit
16186ac487
@ -205,47 +205,8 @@ void xf_input_detect_pinch(xfInfo* xfi)
|
||||
|
||||
#endif
|
||||
|
||||
int xf_input_handle_event(xfInfo* xfi, XEvent* event)
|
||||
{
|
||||
#ifdef WITH_XI
|
||||
XGenericEventCookie* cookie = &event->xcookie;
|
||||
|
||||
XGetEventData(xfi->display, cookie);
|
||||
|
||||
if ((cookie->type == GenericEvent) && (cookie->extension == xfi->XInputOpcode))
|
||||
{
|
||||
switch(cookie->evtype)
|
||||
{
|
||||
case XI_TouchBegin:
|
||||
if (xf_input_is_duplicate(cookie->data) == FALSE)
|
||||
xf_input_touch_begin(xfi, cookie->data);
|
||||
xf_input_save_last_event(cookie->data);
|
||||
break;
|
||||
|
||||
case XI_TouchUpdate:
|
||||
if (xf_input_is_duplicate(cookie->data) == FALSE)
|
||||
xf_input_touch_update(xfi, cookie->data);
|
||||
xf_input_save_last_event(cookie->data);
|
||||
break;
|
||||
|
||||
case XI_TouchEnd:
|
||||
if (xf_input_is_duplicate(cookie->data) == FALSE)
|
||||
xf_input_touch_end(xfi, cookie->data);
|
||||
xf_input_save_last_event(cookie->data);
|
||||
break;
|
||||
|
||||
default:
|
||||
printf("unhandled xi type= %d\n", cookie->evtype);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
XFreeEventData(xfi->display,cookie);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef WITH_XI
|
||||
void xf_input_touch_begin(xfInfo* xfi, XIDeviceEvent* event)
|
||||
{
|
||||
int i;
|
||||
@ -306,3 +267,120 @@ void xf_input_touch_end(xfInfo* xfi, XIDeviceEvent* event)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
int xf_input_handle_event_local(xfInfo* xfi, XEvent* event)
|
||||
{
|
||||
#ifdef WITH_XI
|
||||
XGenericEventCookie* cookie = &event->xcookie;
|
||||
|
||||
XGetEventData(xfi->display, cookie);
|
||||
|
||||
if ((cookie->type == GenericEvent) && (cookie->extension == xfi->XInputOpcode))
|
||||
{
|
||||
switch (cookie->evtype)
|
||||
{
|
||||
case XI_TouchBegin:
|
||||
if (xf_input_is_duplicate(cookie->data) == FALSE)
|
||||
xf_input_touch_begin(xfi, cookie->data);
|
||||
xf_input_save_last_event(cookie->data);
|
||||
break;
|
||||
|
||||
case XI_TouchUpdate:
|
||||
if (xf_input_is_duplicate(cookie->data) == FALSE)
|
||||
xf_input_touch_update(xfi, cookie->data);
|
||||
xf_input_save_last_event(cookie->data);
|
||||
break;
|
||||
|
||||
case XI_TouchEnd:
|
||||
if (xf_input_is_duplicate(cookie->data) == FALSE)
|
||||
xf_input_touch_end(xfi, cookie->data);
|
||||
xf_input_save_last_event(cookie->data);
|
||||
break;
|
||||
|
||||
default:
|
||||
printf("unhandled xi type= %d\n", cookie->evtype);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
XFreeEventData(xfi->display,cookie);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef WITH_XI
|
||||
|
||||
int xf_input_touch_begin_remote(xfInfo* xfi, XIDeviceEvent* event)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int xf_input_touch_update_remote(xfInfo* xfi, XIDeviceEvent* event)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int xf_input_touch_end_remote(xfInfo* xfi, XIDeviceEvent* event)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
int xf_input_handle_event_remote(xfInfo* xfi, XEvent* event)
|
||||
{
|
||||
#ifdef WITH_XI
|
||||
XGenericEventCookie* cookie = &event->xcookie;
|
||||
|
||||
XGetEventData(xfi->display, cookie);
|
||||
|
||||
if ((cookie->type == GenericEvent) && (cookie->extension == xfi->XInputOpcode))
|
||||
{
|
||||
switch (cookie->evtype)
|
||||
{
|
||||
case XI_TouchBegin:
|
||||
xf_input_touch_begin_remote(xfi, cookie->data);
|
||||
break;
|
||||
|
||||
case XI_TouchUpdate:
|
||||
xf_input_touch_update_remote(xfi, cookie->data);
|
||||
break;
|
||||
|
||||
case XI_TouchEnd:
|
||||
xf_input_touch_end_remote(xfi, cookie->data);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
XFreeEventData(xfi->display,cookie);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
void xf_process_rdpei_event(xfInfo* xfi, wMessage* event)
|
||||
{
|
||||
switch (GetMessageType(event->id))
|
||||
{
|
||||
case RdpeiChannel_ServerReady:
|
||||
break;
|
||||
|
||||
case RdpeiChannel_SuspendTouch:
|
||||
break;
|
||||
|
||||
case RdpeiChannel_ResumeTouch:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
int xf_input_handle_event(xfInfo* xfi, XEvent* event)
|
||||
{
|
||||
if (xfi->settings->MultiTouchInput)
|
||||
{
|
||||
return xf_input_handle_event_remote(xfi, event);
|
||||
}
|
||||
|
||||
return xf_input_handle_event_local(xfi, event);
|
||||
}
|
||||
|
@ -29,13 +29,6 @@
|
||||
|
||||
int xf_input_init(xfInfo* xfi, Window win);
|
||||
int xf_input_handle_event(xfInfo* xfi, XEvent* event);
|
||||
|
||||
#ifdef WITH_XI
|
||||
|
||||
void xf_input_touch_begin(xfInfo* xfi, XIDeviceEvent* event);
|
||||
void xf_input_touch_update(xfInfo* xfi, XIDeviceEvent* event);
|
||||
void xf_input_touch_end(xfInfo* xfi, XIDeviceEvent* event);
|
||||
|
||||
#endif
|
||||
void xf_process_rdpei_event(xfInfo* xfi, wMessage* event);
|
||||
|
||||
#endif
|
||||
|
@ -77,6 +77,7 @@
|
||||
#include "xf_rail.h"
|
||||
#include "xf_tsmf.h"
|
||||
#include "xf_event.h"
|
||||
#include "xf_input.h"
|
||||
#include "xf_cliprdr.h"
|
||||
#include "xf_monitor.h"
|
||||
#include "xf_graphics.h"
|
||||
@ -1024,6 +1025,10 @@ void xf_process_channel_event(rdpChannels* channels, freerdp* instance)
|
||||
xf_process_cliprdr_event(xfi, event);
|
||||
break;
|
||||
|
||||
case RdpeiChannel_Class:
|
||||
xf_process_rdpei_event(xfi, event);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -324,5 +324,25 @@
|
||||
#define FREERDP_RAIL_CHANNEL_CLIENT_GET_APP_ID_REQUEST MakeMessageId(RailChannel, ClientGetAppIdRequest)
|
||||
#define FREERDP_RAIL_CHANNEL_SERVER_GET_APP_ID_RESPONSE MakeMessageId(RailChannel, ServerGetAppIdResponse)
|
||||
|
||||
/**
|
||||
* MultiTouch Input Channel Extension (MS-RDPEDI)
|
||||
*/
|
||||
|
||||
#define RdpeiChannel_Class (Channel_Base + 5)
|
||||
|
||||
#define RdpeiChannel_ServerReady 1
|
||||
#define RdpeiChannel_ClientReady 2
|
||||
#define RdpeiChannel_TouchEvent 3
|
||||
#define RdpeiChannel_SuspendTouch 4
|
||||
#define RdpeiChannel_ResumeTouch 5
|
||||
#define RdpeiChannel_DismissHoveringContact 6
|
||||
|
||||
#define FREERDP_RDPEI_CHANNEL_SERVER_READY MakeMessageId(RdpeiChannel, ServerReady)
|
||||
#define FREERDP_RDPEI_CHANNEL_CLIENT_READY MakeMessageId(RdpeiChannel, ClientReady)
|
||||
#define FREERDP_RDPEI_CHANNEL_TOUCH_EVENT MakeMessageId(RdpeiChannel, TouchEvent)
|
||||
#define FREERDP_RDPEI_CHANNEL_SUSPEND_TOUCH MakeMessageId(RdpeiChannel, SuspendTouch)
|
||||
#define FREERDP_RDPEI_CHANNEL_RESUME_TOUCH MakeMessageId(RdpeiChannel, ResumeTouch)
|
||||
#define FREERDP_RDPEI_CHANNEL_DISMISS_HOVERING_CONTACT MakeMessageId(RdpeiChannel, DismissHoveringContact)
|
||||
|
||||
#endif /* FREERDP_CORE_MESSAGE_H */
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user