Blame client/iOS/Models/GlobalDefaults.m

Packit 1fb8d4
/*
Packit 1fb8d4
 Global default bookmark settings
Packit 1fb8d4
Packit 1fb8d4
 Copyright 2013 Thincast Technologies GmbH, Author: Dorian Johnson
Packit 1fb8d4
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 "GlobalDefaults.h"
Packit 1fb8d4
#import "Bookmark.h"
Packit 1fb8d4
#import "ConnectionParams.h"
Packit 1fb8d4
Packit 1fb8d4
@implementation GlobalDefaults
Packit 1fb8d4
Packit Service 5a9772
+ (GlobalDefaults *)sharedGlobalDefaults
Packit 1fb8d4
{
Packit Service 5a9772
	static GlobalDefaults *_shared_global_defaults = nil;
Packit 1fb8d4
Packit 1fb8d4
	if (_shared_global_defaults == nil)
Packit 1fb8d4
	{
Packit 1fb8d4
		@synchronized(self)
Packit 1fb8d4
		{
Packit 1fb8d4
			if (_shared_global_defaults == nil)
Packit 1fb8d4
				_shared_global_defaults = [[GlobalDefaults alloc] init];
Packit 1fb8d4
		}
Packit 1fb8d4
	}
Packit 1fb8d4
Packit 1fb8d4
	return _shared_global_defaults;
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
- (id)init
Packit 1fb8d4
{
Packit 1fb8d4
	if (!(self = [super init]))
Packit 1fb8d4
		return nil;
Packit 1fb8d4
Packit Service 5a9772
	ComputerBookmark *bookmark = nil;
Packit Service 5a9772
	NSData *bookmark_data =
Packit Service 5a9772
	    [[NSUserDefaults standardUserDefaults] objectForKey:@"TSXSharedGlobalDefaultBookmark"];
Packit 1fb8d4
Packit 1fb8d4
	if (bookmark_data && [bookmark_data length])
Packit 1fb8d4
		bookmark = [NSKeyedUnarchiver unarchiveObjectWithData:bookmark_data];
Packit 1fb8d4
Packit 1fb8d4
	if (!bookmark)
Packit Service 5a9772
		bookmark = [[[ComputerBookmark alloc] initWithBaseDefaultParameters] autorelease];
Packit 1fb8d4
Packit 1fb8d4
	_default_bookmark = [bookmark retain];
Packit 1fb8d4
	return self;
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
- (void)dealloc
Packit 1fb8d4
{
Packit 1fb8d4
	[_default_bookmark release];
Packit 1fb8d4
	[super dealloc];
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
#pragma mark -
Packit 1fb8d4
Packit 1fb8d4
@synthesize bookmark = _default_bookmark;
Packit 1fb8d4
Packit Service 5a9772
- (ComputerBookmark *)newBookmark
Packit 1fb8d4
{
Packit Service 5a9772
	return [[ComputerBookmark alloc] initWithConnectionParameters:[[self newParams] autorelease]];
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
- (ConnectionParams *)newParams
Packit 1fb8d4
{
Packit Service 5a9772
	ConnectionParams *param_copy = [[[self bookmark] params] copy];
Packit 1fb8d4
	return param_copy;
Packit 1fb8d4
}
Packit 1fb8d4
Packit Service 5a9772
- (ComputerBookmark *)newTestServerBookmark
Packit 1fb8d4
{
Packit Service 5a9772
	ComputerBookmark *bm = [self newBookmark];
Packit 1fb8d4
	[bm setLabel:@"Test Server"];
Packit 1fb8d4
	[[bm params] setValue:@"testservice.ifreerdp.com" forKey:@"hostname"];
Packit 1fb8d4
	[[bm params] setInt:0 forKey:@"screen_resolution_type"];
Packit 1fb8d4
	[[bm params] setInt:1024 forKey:@"width"];
Packit 1fb8d4
	[[bm params] setInt:768 forKey:@"height"];
Packit 1fb8d4
	[[bm params] setInt:32 forKey:@"colors"];
Packit 1fb8d4
	[[bm params] setBool:YES forKey:@"perf_remotefx"];
Packit 1fb8d4
	[[bm params] setBool:YES forKey:@"perf_gfx"];
Packit 1fb8d4
	[[bm params] setBool:YES forKey:@"perf_h264"];
Packit 1fb8d4
	return bm;
Packit 1fb8d4
}
Packit 1fb8d4
Packit 1fb8d4
@end