sfizz/plugins/common/plugin/SfizzSettings.mm

39 lines
1.2 KiB
Text
Raw Normal View History

2020-12-09 08:58:04 +01:00
// SPDX-License-Identifier: BSD-2-Clause
// This code is part of the sfizz library and is licensed under a BSD 2-clause
// license. You should have receive a LICENSE.md file along with the code.
// If not, contact the sfizz maintainers at https://github.com/sfztools/sfizz
#include "SfizzSettings.h"
#if defined(__APPLE__)
#import <Foundation/Foundation.h>
#if !__has_feature(objc_arc)
#error This source file requires ARC
#endif
static NSUserDefaults* getUserDefaults()
{
return [[NSUserDefaults alloc] initWithSuiteName:@"tools.sfz.sfizz"];;
}
absl::optional<std::string> SfizzSettings::load(const char* key)
{
NSUserDefaults* ud = getUserDefaults();
NSString* value = [ud stringForKey:[NSString stringWithUTF8String:key]];
if (!value)
return {};
return std::string(value.UTF8String);
}
bool SfizzSettings::store(const char* key, absl::string_view value)
{
NSUserDefaults* ud = getUserDefaults();
NSString* object =
[[NSString alloc] initWithBytes:value.data()
length:(NSUInteger)value.size() encoding:NSUTF8StringEncoding];
[ud setObject:object forKey:[NSString stringWithUTF8String:key]];
return true;
}
#endif