|
Packit Service |
fa4841 |
/*
|
|
Packit Service |
b1ea74 |
RDP Session object
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
fa4841 |
Copyright 2013 Thincast Technologies GmbH, Authors: Martin Fleisz, Dorian Johnson
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
|
|
Packit Service |
b1ea74 |
If a copy of the MPL was not distributed with this file, You can obtain one at
|
|
Packit Service |
b1ea74 |
http://mozilla.org/MPL/2.0/.
|
|
Packit Service |
fa4841 |
*/
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#import <Foundation/Foundation.h>
|
|
Packit Service |
fa4841 |
#import <UIKit/UIKit.h>
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#include <freerdp/freerdp.h>
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
// forward declaration
|
|
Packit Service |
fa4841 |
@class RDPSession;
|
|
Packit Service |
fa4841 |
@class ComputerBookmark;
|
|
Packit Service |
fa4841 |
@class ConnectionParams;
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
// notification handler for session disconnect
|
|
Packit Service |
b1ea74 |
extern NSString *TSXSessionDidDisconnectNotification;
|
|
Packit Service |
b1ea74 |
extern NSString *TSXSessionDidFailToConnectNotification;
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
// protocol for session notifications
|
|
Packit Service |
fa4841 |
@protocol RDPSessionDelegate <NSObject>
|
|
Packit Service |
fa4841 |
@optional
|
|
Packit Service |
b1ea74 |
- (void)session:(RDPSession *)session didFailToConnect:(int)reason;
|
|
Packit Service |
b1ea74 |
- (void)sessionWillConnect:(RDPSession *)session;
|
|
Packit Service |
b1ea74 |
- (void)sessionDidConnect:(RDPSession *)session;
|
|
Packit Service |
b1ea74 |
- (void)sessionWillDisconnect:(RDPSession *)session;
|
|
Packit Service |
b1ea74 |
- (void)sessionDidDisconnect:(RDPSession *)session;
|
|
Packit Service |
b1ea74 |
- (void)sessionBitmapContextWillChange:(RDPSession *)session;
|
|
Packit Service |
b1ea74 |
- (void)sessionBitmapContextDidChange:(RDPSession *)session;
|
|
Packit Service |
b1ea74 |
- (void)session:(RDPSession *)session needsRedrawInRect:(CGRect)rect;
|
|
Packit Service |
b1ea74 |
- (CGSize)sizeForFitScreenForSession:(RDPSession *)session;
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
- (void)session:(RDPSession *)session
|
|
Packit Service |
b1ea74 |
requestsAuthenticationWithParams:(NSMutableDictionary *)params;
|
|
Packit Service |
b1ea74 |
- (void)session:(RDPSession *)session verifyCertificateWithParams:(NSMutableDictionary *)params;
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
@end
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
// rdp session
|
|
Packit Service |
b1ea74 |
@interface RDPSession : NSObject
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
b1ea74 |
@private
|
|
Packit Service |
b1ea74 |
freerdp *_freerdp;
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
ComputerBookmark *_bookmark;
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
ConnectionParams *_params;
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
NSObject<RDPSessionDelegate> *_delegate;
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
NSCondition *_ui_request_completed;
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
NSString *_name;
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
b1ea74 |
// flag if the session is suspended
|
|
Packit Service |
b1ea74 |
BOOL _suspended;
|
|
Packit Service |
b1ea74 |
|
|
Packit Service |
fa4841 |
// flag that specifies whether the RDP toolbar is visible
|
|
Packit Service |
b1ea74 |
BOOL _toolbar_visible;
|
|
Packit Service |
fa4841 |
}
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
b1ea74 |
@property(readonly) ConnectionParams *params;
|
|
Packit Service |
b1ea74 |
@property(readonly) ComputerBookmark *bookmark;
|
|
Packit Service |
b1ea74 |
@property(assign) id<RDPSessionDelegate> delegate;
|
|
Packit Service |
b1ea74 |
@property(assign) BOOL toolbarVisible;
|
|
Packit Service |
b1ea74 |
@property(readonly) CGContextRef bitmapContext;
|
|
Packit Service |
b1ea74 |
@property(readonly) NSCondition *uiRequestCompleted;
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
// initialize a new session with the given bookmark
|
|
Packit Service |
b1ea74 |
- (id)initWithBookmark:(ComputerBookmark *)bookmark;
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#pragma mark - session control functions
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
// connect the session
|
|
Packit Service |
b1ea74 |
- (void)connect;
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
// disconnect session
|
|
Packit Service |
b1ea74 |
- (void)disconnect;
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
// suspends the session
|
|
Packit Service |
b1ea74 |
- (void)suspend;
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
// resumes a previously suspended session
|
|
Packit Service |
b1ea74 |
- (void)resume;
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
// returns YES if the session is started
|
|
Packit Service |
b1ea74 |
- (BOOL)isSuspended;
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
// send input event to the server
|
|
Packit Service |
b1ea74 |
- (void)sendInputEvent:(NSDictionary *)event;
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
// session needs a refresh of its view
|
|
Packit Service |
b1ea74 |
- (void)setNeedsDisplayInRectAsValue:(NSValue *)rect_value;
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
// get a small session screenshot
|
|
Packit Service |
b1ea74 |
- (UIImage *)getScreenshotWithSize:(CGSize)size;
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
// returns the session's current paramters
|
|
Packit Service |
b1ea74 |
- (rdpSettings *)getSessionParams;
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
// returns the session's name (usually the label of the bookmark the session was created with)
|
|
Packit Service |
b1ea74 |
- (NSString *)sessionName;
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
@end
|