* init, load, persist, sync, clear * clean up frequent disk syncs which impacted iOS performance * insert disk sync into various iOS/OS X lifecycle events * implement clear * implement save on iOS * cleaner dictionary syntax
44 lines
1.7 KiB
Plaintext
44 lines
1.7 KiB
Plaintext
#import <Foundation/Foundation.h>
|
|
|
|
#include "settings.hpp"
|
|
|
|
using namespace llmr;
|
|
|
|
Settings_MacOSX::Settings_MacOSX()
|
|
{
|
|
[[NSUserDefaults standardUserDefaults] registerDefaults:@{ @"longitude" : @(longitude),
|
|
@"latitude" : @(latitude),
|
|
@"scale" : @(scale),
|
|
@"angle" : @(angle),
|
|
@"debug" : @(debug) }];
|
|
}
|
|
|
|
void Settings_MacOSX::load()
|
|
{
|
|
NSDictionary *settings = [[NSUserDefaults standardUserDefaults] dictionaryRepresentation];
|
|
|
|
longitude = [settings[@"longitude"] doubleValue];
|
|
latitude = [settings[@"latitude"] doubleValue];
|
|
scale = [settings[@"scale"] doubleValue];
|
|
angle = [settings[@"angle"] doubleValue];
|
|
debug = [settings[@"debug"] boolValue];
|
|
}
|
|
|
|
void Settings_MacOSX::persist()
|
|
{
|
|
[[NSUserDefaults standardUserDefaults] setValuesForKeysWithDictionary:@{ @"longitude" : @(longitude),
|
|
@"latitude" : @(latitude),
|
|
@"scale" : @(scale),
|
|
@"angle" : @(angle),
|
|
@"debug" : @(debug) }];
|
|
}
|
|
|
|
void Settings_MacOSX::sync()
|
|
{
|
|
[[NSUserDefaults standardUserDefaults] synchronize];
|
|
}
|
|
|
|
void Settings_MacOSX::clear()
|
|
{
|
|
[NSUserDefaults resetStandardUserDefaults];
|
|
} |