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