Blame server/Windows/wf_interface.h

Packit Service fa4841
/**
Packit Service fa4841
 * FreeRDP: A Remote Desktop Protocol Client
Packit Service fa4841
 * FreeRDP Windows Server
Packit Service fa4841
 *
Packit Service fa4841
 * Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
Packit Service fa4841
 * Copyright 2012 Corey Clayton <can.of.tuna@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_SERVER_WIN_INTERFACE_H
Packit Service fa4841
#define FREERDP_SERVER_WIN_INTERFACE_H
Packit Service fa4841
Packit Service fa4841
#include <winpr/windows.h>
Packit Service fa4841
Packit Service fa4841
#include <freerdp/api.h>
Packit Service fa4841
#include <freerdp/freerdp.h>
Packit Service fa4841
#include <freerdp/listener.h>
Packit Service fa4841
Packit Service fa4841
#include <freerdp/freerdp.h>
Packit Service fa4841
#include <freerdp/codec/rfx.h>
Packit Service fa4841
Packit Service fa4841
#include <freerdp/server/rdpsnd.h>
Packit Service fa4841
Packit Service fa4841
#if _WIN32_WINNT >= 0x0602
Packit Service fa4841
#define WITH_DXGI_1_2 1
Packit Service fa4841
#endif
Packit Service fa4841
Packit Service fa4841
#define FREERDP_SERVER_WIN_SRV_CALLBACK_EVENT_CONNECT 1
Packit Service fa4841
#define FREERDP_SERVER_WIN_SRV_CALLBACK_EVENT_DISCONNECT 2
Packit Service fa4841
#define FREERDP_SERVER_WIN_SRV_CALLBACK_EVENT_ACTIVATE 4
Packit Service fa4841
#define FREERDP_SERVER_WIN_SRV_CALLBACK_EVENT_AUTH 8
Packit Service fa4841
Packit Service fa4841
typedef struct wf_info wfInfo;
Packit Service fa4841
typedef struct wf_peer_context wfPeerContext;
Packit Service fa4841
Packit Service fa4841
struct wf_info
Packit Service fa4841
{
Packit Service fa4841
	wStream* s;
Packit Service fa4841
Packit Service fa4841
	// screen and monitor info
Packit Service fa4841
	int screenID;
Packit Service fa4841
	int virtscreen_width;
Packit Service fa4841
	int virtscreen_height;
Packit Service fa4841
	int servscreen_width;
Packit Service fa4841
	int servscreen_height;
Packit Service fa4841
	int servscreen_xoffset;
Packit Service fa4841
	int servscreen_yoffset;
Packit Service fa4841
Packit Service fa4841
	int frame_idx;
Packit Service fa4841
	int bitsPerPixel;
Packit Service fa4841
	HDC driverDC;
Packit Service fa4841
	int peerCount;
Packit Service fa4841
	int activePeerCount;
Packit Service fa4841
	void* changeBuffer;
Packit Service fa4841
	int framesPerSecond;
Packit Service fa4841
	LPTSTR deviceKey;
Packit Service fa4841
	TCHAR deviceName[32];
Packit Service fa4841
	freerdp_peer** peers;
Packit Service fa4841
	BOOL mirrorDriverActive;
Packit Service fa4841
	UINT framesWaiting;
Packit Service fa4841
Packit Service fa4841
	HANDLE snd_mutex;
Packit Service fa4841
	BOOL snd_stop;
Packit Service fa4841
	AUDIO_FORMAT* agreed_format;
Packit Service fa4841
Packit Service fa4841
	RECT invalid;
Packit Service fa4841
	HANDLE mutex;
Packit Service fa4841
	BOOL updatePending;
Packit Service fa4841
	HANDLE updateEvent;
Packit Service fa4841
	HANDLE updateThread;
Packit Service fa4841
	HANDLE updateSemaphore;
Packit Service fa4841
	RFX_CONTEXT* rfx_context;
Packit Service fa4841
	unsigned long lastUpdate;
Packit Service fa4841
	unsigned long nextUpdate;
Packit Service fa4841
	SURFACE_BITS_COMMAND cmd;
Packit Service fa4841
Packit Service fa4841
	BOOL input_disabled;
Packit Service fa4841
	BOOL force_all_disconnect;
Packit Service fa4841
};
Packit Service fa4841
Packit Service fa4841
struct wf_peer_context
Packit Service fa4841
{
Packit Service fa4841
	rdpContext _p;
Packit Service fa4841
Packit Service fa4841
	wfInfo* info;
Packit Service fa4841
	int frame_idx;
Packit Service fa4841
	HANDLE updateEvent;
Packit Service fa4841
	BOOL socketClose;
Packit Service fa4841
	HANDLE socketEvent;
Packit Service fa4841
	HANDLE socketThread;
Packit Service fa4841
	HANDLE socketSemaphore;
Packit Service fa4841
Packit Service fa4841
	HANDLE vcm;
Packit Service fa4841
	RdpsndServerContext* rdpsnd;
Packit Service fa4841
};
Packit Service fa4841
Packit Service fa4841
struct wf_server
Packit Service fa4841
{
Packit Service fa4841
	DWORD port;
Packit Service fa4841
	HANDLE thread;
Packit Service fa4841
	freerdp_listener* instance;
Packit Service fa4841
};
Packit Service fa4841
typedef struct wf_server wfServer;
Packit Service fa4841
Packit Service fa4841
typedef void(__stdcall* cbCallback)(int, UINT32);
Packit Service fa4841
Packit Service fa4841
FREERDP_API int get_screen_info(int id, _TCHAR* name, int* w, int* h, int* b);
Packit Service fa4841
FREERDP_API void set_screen_id(int id);
Packit Service fa4841
Packit Service fa4841
FREERDP_API BOOL wfreerdp_server_start(wfServer* server);
Packit Service fa4841
FREERDP_API BOOL wfreerdp_server_stop(wfServer* server);
Packit Service fa4841
Packit Service fa4841
FREERDP_API wfServer* wfreerdp_server_new(void);
Packit Service fa4841
FREERDP_API void wfreerdp_server_free(wfServer* server);
Packit Service fa4841
Packit Service fa4841
FREERDP_API BOOL wfreerdp_server_is_running(wfServer* server);
Packit Service fa4841
Packit Service fa4841
FREERDP_API UINT32 wfreerdp_server_num_peers(void);
Packit Service fa4841
FREERDP_API UINT32 wfreerdp_server_get_peer_hostname(int pId, wchar_t* dstStr);
Packit Service fa4841
FREERDP_API BOOL wfreerdp_server_peer_is_local(int pId);
Packit Service fa4841
FREERDP_API BOOL wfreerdp_server_peer_is_connected(int pId);
Packit Service fa4841
FREERDP_API BOOL wfreerdp_server_peer_is_activated(int pId);
Packit Service fa4841
FREERDP_API BOOL wfreerdp_server_peer_is_authenticated(int pId);
Packit Service fa4841
Packit Service fa4841
FREERDP_API void wfreerdp_server_register_callback_event(cbCallback cb);
Packit Service fa4841
Packit Service fa4841
void wfreerdp_server_peer_callback_event(int pId, UINT32 eType);
Packit Service fa4841
Packit Service fa4841
#endif /* FREERDP_SERVER_WIN_INTERFACE_H */