1//
2//  OCUserDefaults.m
3//  LDView
4//
5//  Created by Travis Cobbs on 7/8/06.
6//  Copyright 2006 __MyCompanyName__. All rights reserved.
7//
8
9#import "OCUserDefaults.h"
10#import "LDViewCategories.h"
11#include <TCFoundation/TCUserDefaults.h>
12#include <LDLib/LDUserDefaultsKeys.h>
13
14@implementation OCUserDefaults
15
16+ (void)setAppName:(NSString *)value
17{
18	TCUserDefaults::setAppName([value UTF8String]);
19	setDebugLevel((int)TCUserDefaults::longForKey(DEBUG_LEVEL_KEY));
20}
21
22+ (void)setCommandLine:(argvArray)argv
23{
24	TCUserDefaults::setCommandLine(argv);
25}
26
27+ (NSString *)stringForKey:(NSString *)key
28{
29	return [self stringForKey:key defaultValue:nil sessionSpecific:YES];
30}
31
32+ (NSString *)stringForKey:(NSString *)key
33			  defaultValue:(NSString *)defaultValue
34		   sessionSpecific:(BOOL)sessionSpecific
35{
36	char *string = TCUserDefaults::stringForKey([key UTF8String], defaultValue ? [defaultValue UTF8String] : NULL, sessionSpecific ? true : false);
37
38	if (string)
39	{
40		NSString *retValue = [NSString stringWithUTF8String:string];
41
42		delete[] string;
43		return retValue;
44	}
45	else
46	{
47		return nil;
48	}
49}
50
51+ (void)setString:(NSString *)value forKey:(NSString *)key
52{
53	return [self setString:value forKey:key sessionSpecific:YES];
54}
55
56+ (void)setString:(NSString *)value
57		   forKey:(NSString *)key
58  sessionSpecific:(BOOL)sessionSpecific
59{
60	TCUserDefaults::setStringForKey([value UTF8String], [key UTF8String], sessionSpecific);
61}
62
63+ (long)longForKey:(NSString *)key
64{
65	return [self longForKey:key defaultValue:0 sessionSpecific:YES];
66}
67
68+ (long)longForKey:(NSString *)key
69	  defaultValue:(long)defaultValue
70   sessionSpecific:(BOOL)sessionSpecific
71{
72	return TCUserDefaults::longForKey([key UTF8String], defaultValue, sessionSpecific ? true : false);
73}
74
75+ (void)setLong:(long)value forKey:(NSString *)key
76{
77	return [self setLong:value forKey:key sessionSpecific:YES];
78}
79
80+ (void)setLong:(long)value
81		 forKey:(NSString *)key
82sessionSpecific:(BOOL)sessionSpecific
83{
84	TCUserDefaults::setLongForKey(value,
85	 [key UTF8String], sessionSpecific);
86}
87
88+ (float)floatForKey:(NSString *)key
89{
90	return [self floatForKey:key defaultValue:0 sessionSpecific:YES];
91}
92
93+ (float)floatForKey:(NSString *)key
94	  defaultValue:(float)defaultValue
95   sessionSpecific:(BOOL)sessionSpecific
96{
97	return TCUserDefaults::floatForKey([key UTF8String], defaultValue, sessionSpecific ? true : false);
98}
99
100+ (void)setFloat:(float)value forKey:(NSString *)key
101{
102	return [self setFloat:value forKey:key sessionSpecific:YES];
103}
104
105+ (void)setFloat:(float)value
106		 forKey:(NSString *)key
107sessionSpecific:(BOOL)sessionSpecific
108{
109	TCUserDefaults::setFloatForKey(value, [key UTF8String], sessionSpecific);
110}
111
112+ (void)removeValueForKey:(NSString *)key
113		  sessionSpecific:(BOOL)sessionSpecific
114{
115	TCUserDefaults::removeValue([key UTF8String], sessionSpecific);
116}
117
118+ (void)initSession
119{
120	char *sessionName = TCUserDefaults::getSavedSessionNameFromKey(PREFERENCE_SET_KEY);
121	if (sessionName && sessionName[0])
122	{
123		TCUserDefaults::setSessionName(sessionName, NULL, false);
124	}
125	delete[] sessionName;
126}
127
128@end
129