Blame libfreerdp/core/message.h

Packit Service fa4841
/**
Packit Service fa4841
 * FreeRDP: A Remote Desktop Protocol Implementation
Packit Service fa4841
 * Asynchronous Message Queue
Packit Service fa4841
 *
Packit Service fa4841
 * Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
Packit Service fa4841
 *
Packit Service fa4841
 * Licensed under the Apache License, Version 2.0 (the "License");
Packit Service fa4841
 * you may not use this file except in compliance with the License.
Packit Service fa4841
 * You may obtain a copy of the License at
Packit Service fa4841
 *
Packit Service fa4841
 *     http://www.apache.org/licenses/LICENSE-2.0
Packit Service fa4841
 *
Packit Service fa4841
 * Unless required by applicable law or agreed to in writing, software
Packit Service fa4841
 * distributed under the License is distributed on an "AS IS" BASIS,
Packit Service fa4841
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Packit Service fa4841
 * See the License for the specific language governing permissions and
Packit Service fa4841
 * limitations under the License.
Packit Service fa4841
 */
Packit Service fa4841
Packit Service fa4841
#ifndef FREERDP_LIB_CORE_MESSAGE_H
Packit Service fa4841
#define FREERDP_LIB_CORE_MESSAGE_H
Packit Service fa4841
Packit Service fa4841
#include <freerdp/freerdp.h>
Packit Service fa4841
#include <freerdp/message.h>
Packit Service fa4841
#include <freerdp/api.h>
Packit Service fa4841
Packit Service fa4841
/**
Packit Service fa4841
 * Update Message Queue
Packit Service fa4841
 */
Packit Service fa4841
Packit Service fa4841
/* Update Proxy Interface */
Packit Service fa4841
Packit Service fa4841
struct rdp_update_proxy
Packit Service fa4841
{
Packit Service fa4841
	rdpUpdate* update;
Packit Service fa4841
Packit Service fa4841
	/* Update */
Packit Service fa4841
Packit Service fa4841
	pBeginPaint BeginPaint;
Packit Service fa4841
	pEndPaint EndPaint;
Packit Service fa4841
	pSetBounds SetBounds;
Packit Service fa4841
	pSynchronize Synchronize;
Packit Service fa4841
	pDesktopResize DesktopResize;
Packit Service fa4841
	pBitmapUpdate BitmapUpdate;
Packit Service fa4841
	pPalette Palette;
Packit Service fa4841
	pPlaySound PlaySound;
Packit Service fa4841
	pSetKeyboardIndicators SetKeyboardIndicators;
Packit Service fa4841
	pSetKeyboardImeStatus SetKeyboardImeStatus;
Packit Service fa4841
	pRefreshRect RefreshRect;
Packit Service fa4841
	pSuppressOutput SuppressOutput;
Packit Service fa4841
	pSurfaceCommand SurfaceCommand;
Packit Service fa4841
	pSurfaceBits SurfaceBits;
Packit Service fa4841
	pSurfaceFrameMarker SurfaceFrameMarker;
Packit Service fa4841
	pSurfaceFrameAcknowledge SurfaceFrameAcknowledge;
Packit Service fa4841
Packit Service fa4841
	/* Primary Update */
Packit Service fa4841
Packit Service fa4841
	pDstBlt DstBlt;
Packit Service fa4841
	pPatBlt PatBlt;
Packit Service fa4841
	pScrBlt ScrBlt;
Packit Service fa4841
	pOpaqueRect OpaqueRect;
Packit Service fa4841
	pDrawNineGrid DrawNineGrid;
Packit Service fa4841
	pMultiDstBlt MultiDstBlt;
Packit Service fa4841
	pMultiPatBlt MultiPatBlt;
Packit Service fa4841
	pMultiScrBlt MultiScrBlt;
Packit Service fa4841
	pMultiOpaqueRect MultiOpaqueRect;
Packit Service fa4841
	pMultiDrawNineGrid MultiDrawNineGrid;
Packit Service fa4841
	pLineTo LineTo;
Packit Service fa4841
	pPolyline Polyline;
Packit Service fa4841
	pMemBlt MemBlt;
Packit Service fa4841
	pMem3Blt Mem3Blt;
Packit Service fa4841
	pSaveBitmap SaveBitmap;
Packit Service fa4841
	pGlyphIndex GlyphIndex;
Packit Service fa4841
	pFastIndex FastIndex;
Packit Service fa4841
	pFastGlyph FastGlyph;
Packit Service fa4841
	pPolygonSC PolygonSC;
Packit Service fa4841
	pPolygonCB PolygonCB;
Packit Service fa4841
	pEllipseSC EllipseSC;
Packit Service fa4841
	pEllipseCB EllipseCB;
Packit Service fa4841
Packit Service fa4841
	/* Secondary Update */
Packit Service fa4841
Packit Service fa4841
	pCacheBitmap CacheBitmap;
Packit Service fa4841
	pCacheBitmapV2 CacheBitmapV2;
Packit Service fa4841
	pCacheBitmapV3 CacheBitmapV3;
Packit Service fa4841
	pCacheColorTable CacheColorTable;
Packit Service fa4841
	pCacheGlyph CacheGlyph;
Packit Service fa4841
	pCacheGlyphV2 CacheGlyphV2;
Packit Service fa4841
	pCacheBrush CacheBrush;
Packit Service fa4841
Packit Service fa4841
	/* Alternate Secondary Update */
Packit Service fa4841
Packit Service fa4841
	pCreateOffscreenBitmap CreateOffscreenBitmap;
Packit Service fa4841
	pSwitchSurface SwitchSurface;
Packit Service fa4841
	pCreateNineGridBitmap CreateNineGridBitmap;
Packit Service fa4841
	pFrameMarker FrameMarker;
Packit Service fa4841
	pStreamBitmapFirst StreamBitmapFirst;
Packit Service fa4841
	pStreamBitmapNext StreamBitmapNext;
Packit Service fa4841
	pDrawGdiPlusFirst DrawGdiPlusFirst;
Packit Service fa4841
	pDrawGdiPlusNext DrawGdiPlusNext;
Packit Service fa4841
	pDrawGdiPlusEnd DrawGdiPlusEnd;
Packit Service fa4841
	pDrawGdiPlusCacheFirst DrawGdiPlusCacheFirst;
Packit Service fa4841
	pDrawGdiPlusCacheNext DrawGdiPlusCacheNext;
Packit Service fa4841
	pDrawGdiPlusCacheEnd DrawGdiPlusCacheEnd;
Packit Service fa4841
Packit Service fa4841
	/* Window Update */
Packit Service fa4841
Packit Service fa4841
	pWindowCreate WindowCreate;
Packit Service fa4841
	pWindowUpdate WindowUpdate;
Packit Service fa4841
	pWindowIcon WindowIcon;
Packit Service fa4841
	pWindowCachedIcon WindowCachedIcon;
Packit Service fa4841
	pWindowDelete WindowDelete;
Packit Service fa4841
	pNotifyIconCreate NotifyIconCreate;
Packit Service fa4841
	pNotifyIconUpdate NotifyIconUpdate;
Packit Service fa4841
	pNotifyIconDelete NotifyIconDelete;
Packit Service fa4841
	pMonitoredDesktop MonitoredDesktop;
Packit Service fa4841
	pNonMonitoredDesktop NonMonitoredDesktop;
Packit Service fa4841
Packit Service fa4841
	/* Pointer Update */
Packit Service fa4841
Packit Service fa4841
	pPointerPosition PointerPosition;
Packit Service fa4841
	pPointerSystem PointerSystem;
Packit Service fa4841
	pPointerColor PointerColor;
Packit Service fa4841
	pPointerNew PointerNew;
Packit Service fa4841
	pPointerCached PointerCached;
Packit Service fa4841
	pPointerLarge PointerLarge;
Packit Service fa4841
Packit Service fa4841
	HANDLE thread;
Packit Service fa4841
};
Packit Service fa4841
Packit Service fa4841
FREERDP_LOCAL int update_message_queue_process_message(rdpUpdate* update, wMessage* message);
Packit Service fa4841
FREERDP_LOCAL int update_message_queue_free_message(wMessage* message);
Packit Service fa4841
Packit Service fa4841
FREERDP_LOCAL int update_message_queue_process_pending_messages(rdpUpdate* update);
Packit Service fa4841
Packit Service fa4841
FREERDP_LOCAL rdpUpdateProxy* update_message_proxy_new(rdpUpdate* update);
Packit Service fa4841
FREERDP_LOCAL void update_message_proxy_free(rdpUpdateProxy* message);
Packit Service fa4841
Packit Service fa4841
/**
Packit Service fa4841
 * Input Message Queue
Packit Service fa4841
 */
Packit Service fa4841
Packit Service fa4841
/* Input Proxy Interface */
Packit Service fa4841
Packit Service fa4841
struct rdp_input_proxy
Packit Service fa4841
{
Packit Service fa4841
	rdpInput* input;
Packit Service fa4841
Packit Service fa4841
	/* Input */
Packit Service fa4841
Packit Service fa4841
	pSynchronizeEvent SynchronizeEvent;
Packit Service fa4841
	pKeyboardEvent KeyboardEvent;
Packit Service fa4841
	pUnicodeKeyboardEvent UnicodeKeyboardEvent;
Packit Service fa4841
	pMouseEvent MouseEvent;
Packit Service fa4841
	pExtendedMouseEvent ExtendedMouseEvent;
Packit Service fa4841
	pFocusInEvent FocusInEvent;
Packit Service fa4841
	pKeyboardPauseEvent KeyboardPauseEvent;
Packit Service fa4841
};
Packit Service fa4841
Packit Service fa4841
FREERDP_LOCAL int input_message_queue_process_message(rdpInput* input, wMessage* message);
Packit Service fa4841
FREERDP_LOCAL int input_message_queue_free_message(wMessage* message);
Packit Service fa4841
FREERDP_LOCAL int input_message_queue_process_pending_messages(rdpInput* input);
Packit Service fa4841
Packit Service fa4841
FREERDP_LOCAL rdpInputProxy* input_message_proxy_new(rdpInput* input);
Packit Service fa4841
FREERDP_LOCAL void input_message_proxy_free(rdpInputProxy* proxy);
Packit Service fa4841
Packit Service fa4841
#endif /* FREERDP_LIB_CORE_MESSAGE_H */