channels/rdpei: make use of callback interface for Suspend/Resume touch events

This commit is contained in:
Marc-André Moreau 2014-03-11 11:55:38 -04:00
parent 1daea0d0dc
commit b245dea4a8
3 changed files with 12 additions and 58 deletions

View File

@ -35,7 +35,6 @@
#include <winpr/collections.h>
#include <freerdp/addin.h>
#include <freerdp/utils/svc_plugin.h>
#include "rdpei_common.h"
@ -119,20 +118,6 @@ const char* RDPEI_EVENTID_STRINGS[] =
"EVENTID_DISMISS_HOVERING_CONTACT"
};
BOOL rdpei_push_event(RDPEI_CHANNEL_CALLBACK* callback, wMessage* event)
{
int status;
status = callback->channel_mgr->PushEvent(callback->channel_mgr, event);
if (status)
{
DEBUG_WARN("response error %d", status);
return FALSE;
}
return TRUE;
}
int rdpei_add_frame(RdpeiClientContext* context)
{
int i;
@ -394,34 +379,20 @@ int rdpei_recv_sc_ready_pdu(RDPEI_CHANNEL_CALLBACK* callback, wStream* s)
int rdpei_recv_suspend_touch_pdu(RDPEI_CHANNEL_CALLBACK* callback, wStream* s)
{
wMessage* event;
BOOL status;
RdpeiClientContext* rdpei = (RdpeiClientContext*) callback->plugin->pInterface;
event = freerdp_event_new(RdpeiChannel_Class, RdpeiChannel_SuspendTouch, NULL, NULL);
status = rdpei_push_event(callback, event);
if (!status)
{
return -1;
}
if (rdpei->SuspendTouch)
rdpei->SuspendTouch(rdpei);
return 0;
}
int rdpei_recv_resume_touch_pdu(RDPEI_CHANNEL_CALLBACK* callback, wStream* s)
{
wMessage* event;
BOOL status;
RdpeiClientContext* rdpei = (RdpeiClientContext*) callback->plugin->pInterface;
event = freerdp_event_new(RdpeiChannel_Class, RdpeiChannel_ResumeTouch, NULL, NULL);
status = rdpei_push_event(callback, event);
if (!status)
{
return -1;
}
if (rdpei->ResumeTouch)
rdpei->ResumeTouch(rdpei);
return 0;
}

View File

@ -70,6 +70,9 @@ typedef int (*pcRdpeiTouchBegin)(RdpeiClientContext* context, int externalId, in
typedef int (*pcRdpeiTouchUpdate)(RdpeiClientContext* context, int externalId, int x, int y);
typedef int (*pcRdpeiTouchEnd)(RdpeiClientContext* context, int externalId, int x, int y);
typedef int (*pcRdpeiSuspendTouch)(RdpeiClientContext* context);
typedef int (*pcRdpeiResumeTouch)(RdpeiClientContext* context);
struct _rdpei_client_context
{
void* handle;
@ -82,6 +85,9 @@ struct _rdpei_client_context
pcRdpeiTouchBegin TouchBegin;
pcRdpeiTouchUpdate TouchUpdate;
pcRdpeiTouchEnd TouchEnd;
pcRdpeiSuspendTouch SuspendTouch;
pcRdpeiResumeTouch ResumeTouch;
};
#endif /* FREERDP_CHANNEL_CLIENT_RDPEI_H */

View File

@ -146,16 +146,6 @@ static wMessage* freerdp_rail_event_new(UINT16 event_type)
return event;
}
static wMessage* freerdp_rdpei_event_new(UINT16 event_type)
{
wMessage* event;
event = (wMessage*) malloc(sizeof(wMessage));
ZeroMemory(event, sizeof(wMessage));
return event;
}
wMessage* freerdp_event_new(UINT16 event_class, UINT16 event_type,
MESSAGE_FREE_FN on_event_free_callback, void* user_data)
{
@ -179,10 +169,6 @@ wMessage* freerdp_event_new(UINT16 event_class, UINT16 event_type,
case RailChannel_Class:
event = freerdp_rail_event_new(event_type);
break;
case RdpeiChannel_Class:
event = freerdp_rdpei_event_new(event_type);
break;
}
if (event)
@ -235,11 +221,6 @@ static void freerdp_rail_event_free(wMessage* event)
}
static void freerdp_rdpei_event_free(wMessage* event)
{
}
void freerdp_event_free(wMessage* event)
{
if (event)
@ -260,10 +241,6 @@ void freerdp_event_free(wMessage* event)
case RailChannel_Class:
freerdp_rail_event_free(event);
break;
case RdpeiChannel_Class:
freerdp_rdpei_event_free(event);
break;
}
free(event);