Blame client/iOS/FreeRDP/ios_freerdp.h

Packit 1fb8d4
/*
Packit 1fb8d4
 RDP run-loop
Packit Service 5a9772
Packit 1fb8d4
 Copyright 2013 Thincast Technologies GmbH, Authors: Martin Fleisz, Dorian Johnson
Packit Service 5a9772
Packit 1fb8d4
 This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
Packit Service 5a9772
 If a copy of the MPL was not distributed with this file, You can obtain one at
Packit Service 5a9772
 http://mozilla.org/MPL/2.0/.
Packit 1fb8d4
 */
Packit 1fb8d4
Packit 1fb8d4
#import <CoreGraphics/CoreGraphics.h>
Packit 1fb8d4
Packit 1fb8d4
#import <freerdp/freerdp.h>
Packit 1fb8d4
#import <freerdp/channels/channels.h>
Packit 1fb8d4
#import "TSXTypes.h"
Packit 1fb8d4
Packit 1fb8d4
@class RDPSession, RDPSessionView;
Packit 1fb8d4
Packit 1fb8d4
// FreeRDP extended structs
Packit 1fb8d4
typedef struct mf_info mfInfo;
Packit 1fb8d4
Packit 1fb8d4
typedef struct mf_context
Packit 1fb8d4
{
Packit 1fb8d4
	rdpContext _p;
Packit 1fb8d4
Packit Service 5a9772
	mfInfo *mfi;
Packit Service 5a9772
	rdpSettings *settings;
Packit Service 5a9772
} mfContext;
Packit 1fb8d4
Packit 1fb8d4
struct mf_info
Packit 1fb8d4
{
Packit 1fb8d4
	// RDP
Packit Service 5a9772
	freerdp *instance;
Packit Service 5a9772
	mfContext *context;
Packit Service 5a9772
	rdpContext *_context;
Packit Service 5a9772
Packit 1fb8d4
	// UI
Packit Service 5a9772
	RDPSession *session;
Packit Service 5a9772
Packit 1fb8d4
	// Graphics
Packit 1fb8d4
	CGContextRef bitmap_context;
Packit Service 5a9772
Packit 1fb8d4
	// Events
Packit 1fb8d4
	int event_pipe_producer, event_pipe_consumer;
Packit 1fb8d4
Packit 1fb8d4
	// Tracking connection state
Packit 1fb8d4
	volatile TSXConnectionState connection_state;
Packit Service 5a9772
	volatile BOOL
Packit Service 5a9772
	    unwanted; // set when controlling Session no longer wants the connection to continue
Packit 1fb8d4
};
Packit 1fb8d4
Packit Service 5a9772
#define MFI_FROM_INSTANCE(inst) (((mfContext *)((inst)->context))->mfi)
Packit 1fb8d4
Packit 1fb8d4
enum MF_EXIT_CODE
Packit 1fb8d4
{
Packit 1fb8d4
	MF_EXIT_SUCCESS = 0,
Packit 1fb8d4
Packit 1fb8d4
	MF_EXIT_CONN_FAILED = 128,
Packit 1fb8d4
	MF_EXIT_CONN_CANCELED = 129,
Packit Service 5a9772
	MF_EXIT_LOGON_TIMEOUT = 130,
Packit Service 5a9772
Packit 1fb8d4
	MF_EXIT_UNKNOWN = 255
Packit 1fb8d4
};
Packit 1fb8d4
Packit 1fb8d4
void ios_init_freerdp(void);
Packit 1fb8d4
void ios_uninit_freerdp(void);
Packit Service 5a9772
freerdp *ios_freerdp_new(void);
Packit Service 5a9772
int ios_run_freerdp(freerdp *instance);
Packit Service 5a9772
void ios_freerdp_free(freerdp *instance);