mfreerdp-server: getfd and checkfd
This commit is contained in:
parent
4a010f6328
commit
7692c908b7
@ -31,8 +31,8 @@ typedef struct mf_event_region mfEventRegion;
|
|||||||
|
|
||||||
enum mf_event_type
|
enum mf_event_type
|
||||||
{
|
{
|
||||||
mf_EVENT_TYPE_REGION,
|
MF_EVENT_TYPE_REGION,
|
||||||
mf_EVENT_TYPE_FRAME_TICK
|
MF_EVENT_TYPE_FRAME_TICK
|
||||||
};
|
};
|
||||||
|
|
||||||
struct mf_event
|
struct mf_event
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
* FreeRDP Mac OS X Server
|
* FreeRDP Mac OS X Server
|
||||||
*
|
*
|
||||||
* Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
|
* Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
|
||||||
|
* Copyright 2012 Corey Clayton <can.of.tuna@gmail.com>
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@ -48,6 +49,8 @@
|
|||||||
|
|
||||||
#include "mfreerdp.h"
|
#include "mfreerdp.h"
|
||||||
|
|
||||||
|
#include "mf_event.h"
|
||||||
|
|
||||||
#include <mach/clock.h>
|
#include <mach/clock.h>
|
||||||
#include <mach/mach.h>
|
#include <mach/mach.h>
|
||||||
|
|
||||||
@ -55,6 +58,65 @@
|
|||||||
int info_last_sec = 0;
|
int info_last_sec = 0;
|
||||||
int info_last_nsec = 0;
|
int info_last_nsec = 0;
|
||||||
|
|
||||||
|
mfEventQueue* info_event_queue;
|
||||||
|
|
||||||
|
BOOL mf_peer_get_fds(freerdp_peer* client, void** rfds, int* rcount)
|
||||||
|
{
|
||||||
|
if (info_event_queue->pipe_fd[0] == -1)
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
rfds[*rcount] = (void *)(long) info_event_queue->pipe_fd[0];
|
||||||
|
(*rcount)++;
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL mf_peer_check_fds(freerdp_peer* client)
|
||||||
|
{
|
||||||
|
mfPeerContext* context = (mfPeerContext*) client->context;
|
||||||
|
mfEvent* event;
|
||||||
|
//HGDI_RGN invalid_region;
|
||||||
|
|
||||||
|
if (context->activated == FALSE)
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
event = mf_event_peek(info_event_queue);
|
||||||
|
|
||||||
|
if (event != NULL)
|
||||||
|
{
|
||||||
|
if (event->type == MF_EVENT_TYPE_REGION)
|
||||||
|
{
|
||||||
|
printf("unhandled event\n");
|
||||||
|
/*mfEventRegion* region = (mfEventRegion*) mf_event_pop(info_event_queue);
|
||||||
|
gdi_InvalidateRegion(xfp->hdc, region->x, region->y, region->width, region->height);
|
||||||
|
xf_event_region_free(region);*/
|
||||||
|
}
|
||||||
|
else if (event->type == MF_EVENT_TYPE_FRAME_TICK)
|
||||||
|
{
|
||||||
|
event = mf_event_pop(info_event_queue);
|
||||||
|
|
||||||
|
printf("Tick\n");
|
||||||
|
|
||||||
|
/*invalid_region = xfp->hdc->hwnd->invalid;
|
||||||
|
|
||||||
|
if (invalid_region->null == FALSE)
|
||||||
|
{
|
||||||
|
xf_peer_rfx_update(client, invalid_region->x, invalid_region->y,
|
||||||
|
invalid_region->w, invalid_region->h);
|
||||||
|
}
|
||||||
|
|
||||||
|
invalid_region->null = 1;
|
||||||
|
xfp->hdc->hwnd->ninvalid = 0;
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
mf_event_free(event);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
void mf_peer_rfx_update(freerdp_peer* client)
|
void mf_peer_rfx_update(freerdp_peer* client)
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -129,6 +191,8 @@ static void mf_peer_init(freerdp_peer* client)
|
|||||||
client->ContextNew = (psPeerContextNew) mf_peer_context_new;
|
client->ContextNew = (psPeerContextNew) mf_peer_context_new;
|
||||||
client->ContextFree = (psPeerContextFree) mf_peer_context_free;
|
client->ContextFree = (psPeerContextFree) mf_peer_context_free;
|
||||||
freerdp_peer_context_new(client);
|
freerdp_peer_context_new(client);
|
||||||
|
|
||||||
|
info_event_queue = mf_event_queue_new();
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL mf_peer_post_connect(freerdp_peer* client)
|
BOOL mf_peer_post_connect(freerdp_peer* client)
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
* FreeRDP Mac OS X Server
|
* FreeRDP Mac OS X Server
|
||||||
*
|
*
|
||||||
* Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
|
* Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
|
||||||
|
* Copyright 2012 Corey Clayton <can.of.tuna@gmail.com>
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
Loading…
Reference in New Issue
Block a user