From: Kent Sutherland Date: Sat, 25 Oct 2003 20:54:04 +0000 (+0000) Subject: Added more stuff to network things. X-Git-Tag: v1.2~46 X-Git-Url: http://git.ithinksw.org/MenuTunes.git/commitdiff_plain/92cf4bdca5f1a76e6feec10a0d9ea32b51f286e8 Added more stuff to network things. --- diff --git a/English.lproj/Preferences.nib/classes.nib b/English.lproj/Preferences.nib/classes.nib index ee754cf..ccf6333 100755 --- a/English.lproj/Preferences.nib/classes.nib +++ b/English.lproj/Preferences.nib/classes.nib @@ -27,18 +27,19 @@ manualView = NSView; menuTableView = CustomMenuTableView; nameCheckbox = NSButton; + nameTextField = NSTextField; + passwordTextField = NSTextField; ratingCheckbox = NSButton; selectPlayerBox = NSBox; selectPlayerSheet = NSPanel; selectSharedPlayerButton = NSButton; shareMenuTunesCheckbox = NSButton; - sharePasswordCheckbox = NSButton; - sharePasswordTextField = NSTextField; sharingTableView = NSTableView; showOnChangeCheckbox = NSButton; songsInAdvance = NSTextField; trackNumberCheckbox = NSButton; trackTimeCheckbox = NSButton; + usePasswordCheckbox = NSButton; useSharedMenuTunesCheckbox = NSButton; vanishDelaySlider = NSSlider; vanishEffectPopup = NSPopUpButton; diff --git a/English.lproj/Preferences.nib/info.nib b/English.lproj/Preferences.nib/info.nib index e4eec3e..4695b7b 100755 --- a/English.lproj/Preferences.nib/info.nib +++ b/English.lproj/Preferences.nib/info.nib @@ -9,7 +9,7 @@ 634 386 421 380 180 0 0 1152 746 639 - 386 450 380 122 0 0 1152 746 + 412 313 380 122 0 0 1152 746 IBFramework Version 349.0 @@ -19,9 +19,9 @@ IBOpenObjects - 6 - 634 639 + 634 + 6 IBSystem Version 7B85 diff --git a/English.lproj/Preferences.nib/keyedobjects.nib b/English.lproj/Preferences.nib/keyedobjects.nib index 5e523bd..9cae2d6 100755 Binary files a/English.lproj/Preferences.nib/keyedobjects.nib and b/English.lproj/Preferences.nib/keyedobjects.nib differ diff --git a/MainController.m b/MainController.m index bbb0cec..f47c01b 100755 --- a/MainController.m +++ b/MainController.m @@ -294,14 +294,14 @@ static MainController *sharedController; timerUpdating = YES; NS_DURING - latestPlaylistClass = [[self currentRemote] currentPlaylistClass]; - [menuController rebuildSubmenus]; - - if ( [df boolForKey:@"showSongInfoOnChange"] ) { - [self performSelector:@selector(showCurrentTrackInfo) withObject:nil afterDelay:0.0]; - } - - [self setLatestSongIdentifier:[[self currentRemote] playerStateUniqueIdentifier]]; + latestPlaylistClass = [[self currentRemote] currentPlaylistClass]; + [menuController rebuildSubmenus]; + + if ( [df boolForKey:@"showSongInfoOnChange"] ) { + [self performSelector:@selector(showCurrentTrackInfo) withObject:nil afterDelay:0.0]; + } + + [self setLatestSongIdentifier:[[self currentRemote] playerStateUniqueIdentifier]]; NS_HANDLER [self networkError:localException]; NS_ENDHANDLER diff --git a/NetworkController.m b/NetworkController.m index 3ac6250..d6bfca0 100755 --- a/NetworkController.m +++ b/NetworkController.m @@ -13,8 +13,6 @@ #import "NetworkController.h" #import "MainController.h" -#import "netinet/in.h" -#import "arpa/inet.h" #import #import #import @@ -159,9 +157,19 @@ static NetworkController *sharedController; - (void)netServiceBrowser:(NSNetServiceBrowser *)aNetServiceBrowser didFindService:(NSNetService *)aNetService moreComing:(BOOL)moreComing { + ITDebugLog(@"Found service named %@.", [aNetService name]); + [remoteServices addObject:aNetService]; [aNetService setDelegate:self]; [aNetService resolve]; - ITDebugLog(@"Found service named %@.", [aNetService name]); + if (!moreComing) { + [[NSNotificationCenter defaultCenter] postNotificationName:@"ITMTFoundNetService" object:nil]; + } +} + +- (void)netServiceBrowser:(NSNetServiceBrowser *)aNetServiceBrowser didRemoveService:(NSNetService*)aNetService moreComing:(BOOL)moreComing +{ + ITDebugLog(@"Removed service named %@.", [aNetService name]); + [remoteServices removeObject:aNetService]; if (!moreComing) { [[NSNotificationCenter defaultCenter] postNotificationName:@"ITMTFoundNetService" object:nil]; } @@ -169,11 +177,8 @@ static NetworkController *sharedController; - (void)netServiceDidResolveAddress:(NSNetService *)sender { - [remoteServices addObject:[NSDictionary dictionaryWithObjectsAndKeys:[sender name], @"name", - [NSString stringWithCString:inet_ntoa((*(struct sockaddr_in*)[[[sender addresses] objectAtIndex:0] bytes]).sin_addr)], @"ip", - nil, nil]]; ITDebugLog(@"Resolved service named %@.", [sender name]); - NSLog(@"found!"); + NSLog(@"Resolved service named %@.", [sender name]); [[NSNotificationCenter defaultCenter] postNotificationName:@"ITMTFoundNetService" object:nil]; } diff --git a/PreferencesController.h b/PreferencesController.h index b49b1d7..e8dcb81 100755 --- a/PreferencesController.h +++ b/PreferencesController.h @@ -30,18 +30,19 @@ IBOutlet NSView *manualView; IBOutlet CustomMenuTableView *menuTableView; IBOutlet NSButton *nameCheckbox; + IBOutlet NSTextField *nameTextField; + IBOutlet NSTextField *passwordTextField; IBOutlet NSButton *ratingCheckbox; IBOutlet NSBox *selectPlayerBox; IBOutlet NSPanel *selectPlayerSheet; IBOutlet NSButton *selectSharedPlayerButton; IBOutlet NSButton *shareMenuTunesCheckbox; - IBOutlet NSButton *sharePasswordCheckbox; - IBOutlet NSTextField *sharePasswordTextField; IBOutlet NSTableView *sharingTableView; IBOutlet NSButton *showOnChangeCheckbox; IBOutlet NSTextField *songsInAdvance; IBOutlet NSButton *trackNumberCheckbox; IBOutlet NSButton *trackTimeCheckbox; + IBOutlet NSButton *usePasswordCheckbox; IBOutlet NSButton *useSharedMenuTunesCheckbox; IBOutlet NSSlider *vanishDelaySlider; IBOutlet NSPopUpButton *vanishEffectPopup; diff --git a/PreferencesController.m b/PreferencesController.m index 372cce7..85370d9 100755 --- a/PreferencesController.m +++ b/PreferencesController.m @@ -4,6 +4,8 @@ #import "StatusWindow.h" #import "StatusWindowController.h" #import "CustomMenuTableView.h" +#import "netinet/in.h" +#import "arpa/inet.h" #import #import @@ -181,20 +183,26 @@ static PreferencesController *prefs = nil; [df setBool:state forKey:@"enableSharing"]; //Disable/enable the use of shared player options [useSharedMenuTunesCheckbox setEnabled:!state]; - [sharePasswordCheckbox setEnabled:!state]; - [sharePasswordTextField setEnabled:!state]; + [usePasswordCheckbox setEnabled:state]; + [passwordTextField setEnabled:state]; + [nameTextField setEnabled:state]; + [selectSharedPlayerButton setEnabled:NO]; [controller setServerStatus:state]; //Set server status + } else if ( [sender tag] == 5015 ) { + [df setObject:[sender stringValue] forKey:@"sharedPlayerName"]; } else if ( [sender tag] == 5020 ) { [df setBool:SENDER_STATE forKey:@"enableSharingPassword"]; } else if ( [sender tag] == 5030 ) { - [df setObject:[sender stringValue] forKey:@"sharingPassword"]; + [df setObject:[sender stringValue] forKey:@"sharedPlayerPassword"]; } else if ( [sender tag] == 5040 ) { BOOL state = SENDER_STATE; [df setBool:state forKey:@"useSharedPlayer"]; //Disable/enable the use of sharing options [shareMenuTunesCheckbox setEnabled:!state]; - [sharePasswordCheckbox setEnabled:!state]; - [sharePasswordTextField setEnabled:!state]; + [usePasswordCheckbox setEnabled:NO]; + [passwordTextField setEnabled:NO]; + [nameTextField setEnabled:NO]; + [selectSharedPlayerButton setEnabled:state]; if (state) { [controller connectToServer]; @@ -215,14 +223,14 @@ static PreferencesController *prefs = nil; NSRect frame = [selectPlayerSheet frame]; frame.origin.y -= 58; frame.size.height = 273; - [selectPlayerSheet setFrame:frame display:YES animate:YES]; [selectPlayerBox setContentView:zeroConfView]; + [selectPlayerSheet setFrame:frame display:YES animate:YES]; } else if ([selectPlayerBox contentView] != manualView) { NSRect frame = [selectPlayerSheet frame]; frame.origin.y += 58; frame.size.height = 215; - [selectPlayerSheet setFrame:frame display:YES animate:YES]; [selectPlayerBox setContentView:manualView]; + [selectPlayerSheet setFrame:frame display:YES animate:YES]; } } else if ( [sender tag] == 5110 ) { //Cancel @@ -241,7 +249,7 @@ static PreferencesController *prefs = nil; [df setObject:[hostTextField stringValue] forKey:@"sharedPlayerHost"]; } else { if ([sharingTableView selectedRow] > -1) { - [df setObject:[[[[NetworkController sharedController] remoteServices] objectAtIndex:[sharingTableView selectedRow]] objectForKey:@"ip"] forKey:@"sharedPlayerHost"]; + [df setObject:[NSString stringWithCString:inet_ntoa((*(struct sockaddr_in*)[[[[NetworkController sharedController] remoteServices] objectAtIndex:[sharingTableView selectedRow]] bytes]).sin_addr)] forKey:@"sharedPlayerHost"]; } } @@ -552,6 +560,7 @@ static PreferencesController *prefs = nil; NSMutableDictionary *loginwindow; NSMutableArray *loginarray; NSEnumerator *loginEnum, *keyArrayEnum; + NSString *serverName; id anItem; ITDebugLog(@"Setting up preferences UI."); @@ -612,19 +621,27 @@ static PreferencesController *prefs = nil; [shareMenuTunesCheckbox setState:NSOnState]; [useSharedMenuTunesCheckbox setEnabled:NO]; [selectSharedPlayerButton setEnabled:NO]; - [hostTextField setEnabled:NO]; + [passwordTextField setEnabled:YES]; + [usePasswordCheckbox setEnabled:YES]; + [nameTextField setEnabled:YES]; } else if ([df boolForKey:@"useSharedPlayer"]) { [useSharedMenuTunesCheckbox setState:NSOnState]; [shareMenuTunesCheckbox setEnabled:NO]; - [sharePasswordCheckbox setEnabled:NO]; - [sharePasswordTextField setEnabled:NO]; } [[NSNotificationCenter defaultCenter] addObserver:sharingTableView selector:@selector(reloadData) name:@"ITMTFoundNetService" object:nil]; + serverName = [df stringForKey:@"sharedPlayerName"]; + if (!serverName || [serverName length] == 0) { + serverName = @"MenuTunes Shared Player"; + } + [nameTextField setStringValue:serverName]; + [selectPlayerBox setContentView:zeroConfView]; - [sharePasswordCheckbox setState:([df boolForKey:@"enableSharingPassword"] ? NSOnState : NSOffState)]; - //[sharePasswordTextField setStringValue:@""]; //DO THIS LATER + [usePasswordCheckbox setState:([df boolForKey:@"enableSharingPassword"] ? NSOnState : NSOffState)]; + if ([df stringForKey:@"sharedPlayerPassword"]) { + [passwordTextField setStringValue:@"*************"]; + } if ([df stringForKey:@"sharedPlayerHost"]) { [hostTextField setStringValue:[df stringForKey:@"sharedPlayerHost"]]; } @@ -748,7 +765,7 @@ static PreferencesController *prefs = nil; } } else { if ([[aTableColumn identifier] isEqualToString:@"name"]) { - return [[[[NetworkController sharedController] remoteServices] objectAtIndex:rowIndex] objectForKey:@"name"]; + return [[[[NetworkController sharedController] remoteServices] objectAtIndex:rowIndex] name]; } else { return @"X"; } diff --git a/libValidate.a b/libValidate.a index 4e6d8df..83fbaf1 100755 Binary files a/libValidate.a and b/libValidate.a differ