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