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