FreeRDP
Loading...
Searching...
No Matches
mf_event.h
1
20#ifndef FREERDP_SERVER_MAC_EVENT_H
21#define FREERDP_SERVER_MAC_EVENT_H
22
23typedef struct mf_event mfEvent;
24typedef struct mf_event_queue mfEventQueue;
25typedef struct mf_event_region mfEventRegion;
26
27#include <pthread.h>
28#include "mfreerdp.h"
29
30//#include "mf_peer.h"
31
32enum mf_event_type
33{
34 FREERDP_SERVER_MAC_EVENT_TYPE_REGION,
35 FREERDP_SERVER_MAC_EVENT_TYPE_FRAME_TICK
36};
37
39{
40 int type;
41};
42
44{
45 int size;
46 int count;
47 int pipe_fd[2];
48 mfEvent** events;
49 pthread_mutex_t mutex;
50};
51
53{
54 int type;
55
56 int x;
57 int y;
58 int width;
59 int height;
60};
61
62void mf_event_push(mfEventQueue* event_queue, mfEvent* event);
63WINPR_ATTR_NODISCARD mfEvent* mf_event_peek(mfEventQueue* event_queue);
64WINPR_ATTR_NODISCARD mfEvent* mf_event_pop(mfEventQueue* event_queue);
65
66void mf_event_region_free(mfEventRegion* event_region);
67
68WINPR_ATTR_MALLOC(mf_event_region_free, 1)
69WINPR_ATTR_NODISCARD mfEventRegion* mf_event_region_new(int x, int y, int width, int height);
70
71void mf_event_free(mfEvent* event);
72
73WINPR_ATTR_MALLOC(mf_event_free, 1)
74WINPR_ATTR_NODISCARD mfEvent* mf_event_new(int type);
75
76void mf_event_queue_free(mfEventQueue* event_queue);
77
78WINPR_ATTR_MALLOC(mf_event_queue_free, 1)
79WINPR_ATTR_NODISCARD mfEventQueue* mf_event_queue_new(void);
80
81#endif /* FREERDP_SERVER_MAC_EVENT_H */