|
Packit |
1fb8d4 |
/*
|
|
Packit |
1fb8d4 |
RDP run-loop
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
Copyright 2013 Thincast Technologies GmbH, Authors: Martin Fleisz, Dorian Johnson
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
|
|
Packit |
1fb8d4 |
If a copy of the MPL was not distributed with this file, You can obtain one at 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 |
|
|
Packit |
1fb8d4 |
typedef struct mf_context
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
rdpContext _p;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
mfInfo* mfi;
|
|
Packit |
1fb8d4 |
rdpSettings* settings;
|
|
Packit |
1fb8d4 |
} mfContext;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
struct mf_info
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
// RDP
|
|
Packit |
1fb8d4 |
freerdp* instance;
|
|
Packit |
1fb8d4 |
mfContext* context;
|
|
Packit |
1fb8d4 |
rdpContext* _context;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
// UI
|
|
Packit |
1fb8d4 |
RDPSession* session;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
// Graphics
|
|
Packit |
1fb8d4 |
CGContextRef bitmap_context;
|
|
Packit |
1fb8d4 |
|
|
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 |
1fb8d4 |
volatile BOOL unwanted; // set when controlling Session no longer wants the connection to continue
|
|
Packit |
1fb8d4 |
};
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#define MFI_FROM_INSTANCE(inst) (((mfContext*)((inst)->context))->mfi)
|
|
Packit |
1fb8d4 |
|
|
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 |
1fb8d4 |
MF_EXIT_LOGON_TIMEOUT = 130,
|
|
Packit |
1fb8d4 |
|
|
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 |
1fb8d4 |
freerdp* ios_freerdp_new(void);
|
|
Packit |
1fb8d4 |
int ios_run_freerdp(freerdp* instance);
|
|
Packit |
1fb8d4 |
void ios_freerdp_free(freerdp* instance);
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
|