-
Notifications
You must be signed in to change notification settings - Fork 9
/
ShairPreferencesController.m
89 lines (71 loc) · 2.65 KB
/
ShairPreferencesController.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
//
// ShairPreferencesController.m
// This file is part of ShairPortMenu.
//
// A Simple OS X GUI wrapper for ShairPort / HairTunes
//
// Copyright 2011 Robert Carlsen.
//
// ShairPortMenu is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ShairPortMenu is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with ShairPortMenu. If not, see <http://www.gnu.org/licenses/>.
//
#import "ShairPreferencesController.h"
#import "ShairPortMenuAppDelegate.h"
#import "ShairPortModel.h"
@implementation ShairPreferencesController
@synthesize model;
- (id)initWithWindow:(NSWindow *)window
{
self = [super initWithWindow:window];
if (self) {
model = (ShairPortModel*)[(ShairPortMenuAppDelegate*)[NSApp delegate] shairportModel];
}
return self;
}
- (void)dealloc
{
[super dealloc];
}
- (void)windowDidLoad
{
[super windowDidLoad];
[serverNameField.cell setPlaceholderString:[[NSProcessInfo processInfo] hostName]];
[serverNameField setStringValue:[model serverName]];
[serverPasswordField setStringValue:[model serverPassword]];
[serverUsePasswordButton setState:[model usePassword]];
}
-(IBAction)savePreferences:(id)sender;
{
NSLog(@"saving prefs");
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
// the values for the prefs have bindings to the defaults...
// do we have to manually read them back in?
[model setServerPassword:serverPasswordField.stringValue];
[model setServerName:serverNameField.stringValue];
[model setUsePassword:(BOOL)serverUsePasswordButton.state];
[defaults setValue:[model serverName] forKey:@"SPServerName"];
[defaults setValue:[model serverPassword] forKey:@"SPServerPassword"];
[defaults setValue:[NSNumber numberWithBool:[model usePassword]] forKey:@"SPUsePassword"];
[defaults synchronize];
[self.window performClose:nil];
// have to restart the server if the values have changed.
// if ([shairportTask isRunning]) {
// [self setServerRunning:NO];
//
// dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^(void) {
// sleep(1);
// [self setServerRunning:YES];
// });
// }
}
@end