From 92cf4bdca5f1a76e6feec10a0d9ea32b51f286e8 Mon Sep 17 00:00:00 2001 From: Kent Sutherland Date: Sat, 25 Oct 2003 20:54:04 +0000 Subject: [PATCH] Added more stuff to network things. --- English.lproj/Preferences.nib/classes.nib | 5 +- English.lproj/Preferences.nib/info.nib | 6 +-- .../Preferences.nib/keyedobjects.nib | Bin 39541 -> 39686 bytes MainController.m | 16 +++---- NetworkController.m | 19 +++++--- PreferencesController.h | 5 +- PreferencesController.m | 45 ++++++++++++------ libValidate.a | Bin 8032 -> 8032 bytes 8 files changed, 60 insertions(+), 36 deletions(-) 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 5e523bd632ca93a8cd0182667a6675467b101273..9cae2d6c838d6048a5ff4634f1d543c704845a1d 100755 GIT binary patch literal 39686 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

r)*H!&@x7uuuM{xR#sG| zE2}F*%J8zqWgE+S$_|xXF1uRxciGdjZ{?ol#PWc0LAkhGUal$6F3&5UQ9iqTZux@p z#pRvl>&nlUUn>8-{CfGl@_))d7(I*>qn|Or7-&p3rW)18EMu;*#ON}%7~72Njc1JK zjaQ7G#r}$G6^|>PnFgB3CaNja6mF84 zVojN*9Fx&xHd#$orsbwprZuMZrf$<_(^k_jre94LOjk{}O@EvIHGMICHxD)YnElKF z=0J0>ImFC0^UP`H40EQr(%fclH+Pzkn2(!Jna`U4wumibERhzeMQ%}AGA%8Z$ri*i z%hF+)Z&_>UvGiH?S`JtqTb@~7T0U0#RQgr=S28PEmD0+F%BD(JB~;l~xv{dRvbS=3 z>oDs`tEZJ<4YNjA1y-fiVzpUO>lAC7wbOdUdfa;3`olKBHrO`IHqyqjrPx|* zlWm9%x3$`)+veF8+BVoW+4^kfZO?75>_hAUc7a`Nm)kY=Y<8_K?Z@mV?U(F-*zegN+P_pWt5{W`RpC|fRpu&dm7}VzYDU$%s>4;ss!mp& zsd`xTxawKe%c?ik!>h&B3DwEf#Mt~k5*r;{-gTu>VK=h zI7T@D2g@0Gvm53%oNPEVVekac#=J&dQ+<=$Iomncxxl&Dxy-rJ+38&8+~C~g+~VBk+~M5m z+~eHu{LOj9dE9x*dDeNsdD(f@`G@mQ=N;!g=R@aX=QHO^=Nsoc=SSyf=Qrnn;6QK) zI2;@W0w4+W27N$3FaQh$gTWAx3-UlAC;`WUQJ@Tr1>?aaFa=Bp)nFEw3yuf1Uo0+)g-z}4VdunXJ>_JF6SkTmxK#UBg@> zU7jwYi|nGhd|m!7riuYu;acU|;@ayv?z-Z7;`-7& zqM6YEEe$-(1mbZ*FXcn-?^%ZQkB|s`*Ou{pMHhfo{O<;|_Fl-BIooceY#a zu60jzx4P%Km%3NGd)@oom)sBBZ(4@6P+GVxF)cYQ6)iO_V9Vr|)|Oc`VBe)9fwXqXQ2zwW#}sO2lOX&2f7D6gdRiBpqJ1a=pFPC`V4)8{(}d? zL*U`?C>VfAus7@j`@sQlARG*bz+9LI3tUYcSumi4xC%{g)8J^g$NTcu+xD9THXTcr)9`qu3DZBz+-7k%H^}C}za4)ljhzn^!CL;)fBdy4EWF|5PnTISymLSWKRmd7-J<^SAMz$iqAipBJ zkiEzOly=cA)doMd%WAIl2m6gRVz6pqtPw=r(ja z+K28&_n`;T!{{;eBzgutk6uKtpx4kF=q>avdLMm+K0%+OFVQ#XJM<&^8U2R-K!0Kb zu_4%SY!v2+5iv4G#e6Y;jES)@4i<`qV|+}ANwBe46eh#um;y`0lvo<3!ZcVmmWPeU z3bA5LkCkB+m<6+8)mSaofHh$t=Ef#rFot1Mu{Nw7n}u~?^Rb245^OoP3R{D%$GWl2 z*jDTp>{o0Twii2q9m0-cC$Q7lIqV{K1-pjbz;0o8vHRFV>@oHXdx^cl-eDiGPuN%N z2j1Vn#fRY|aZj9pd*KwEhSPBd9)z>;P&^#x;X+)3kHw>K87{{acp|RE)9?&D6VJi( z@j|>9*W+cl5jW$NxE*)kb@&9l33uTw_+%Wxal93uj?cvB;Pdc>_!4|Mz6xK1ufsRs foA51oFTNW;&_BZ8AN{vv{x>{;|I7dX;^+PcfpI3X literal 39541 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 efl+~!fH)uzQ$poc1mN 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 4e6d8dfeec58a1dec4b8043dfce3316744bb9187..83fbaf1f558d4342896a8ba64271988f9c257e11 100755 GIT binary patch delta 17 YcmaE0_rPv~44a{Wk&%(bMkPCW06546P5=M^ delta 17 YcmaE0_rPv~44Z+8sfDS*MkPCW067i?RR910 -- 2.20.1