X-Git-Url: http://git.ithinksw.org/MenuTunes.git/blobdiff_plain/a250162c5267a1b528a0309f20b4ceccd1363701..82086d6a95408227f929ca149591c6fc3962f043:/MainController.m diff --git a/MainController.m b/MainController.m index a8c28d0..ad6f2e1 100755 --- a/MainController.m +++ b/MainController.m @@ -334,10 +334,6 @@ static MainController *sharedController; - (void)timerUpdate { - if ([networkController isConnectedToServer]) { - [statusItem setMenu:[menuController menu]]; - } - if ( [self songChanged] && (timerUpdating != YES) && (playerRunningState == ITMTRemotePlayerRunning) ) { ITDebugLog(@"The song changed."); @@ -358,7 +354,7 @@ static MainController *sharedController; } timerUpdating = YES; - [_statusItem setEnabled:NO]; + [statusItem setEnabled:NO]; NS_DURING latestPlaylistClass = [[self currentRemote] currentPlaylistClass]; @@ -392,7 +388,11 @@ static MainController *sharedController; NS_ENDHANDLER timerUpdating = NO; - [_statusItem setEnabled:YES]; + [statusItem setEnabled:YES]; + } + + if ([networkController isConnectedToServer]) { + [statusItem setMenu:[menuController menu]]; } } @@ -1091,6 +1091,11 @@ static MainController *sharedController; if (result == 1) { [[PreferencesController sharedPrefs] resetRemotePlayerTextFields]; currentRemote = [[[networkController networkObject] remote] retain]; + + [self setupHotKeys]; + //playerRunningState = ITMTRemotePlayerRunning; + playerRunningState = [[self currentRemote] playerRunningState]; + [refreshTimer invalidate]; refreshTimer = [[NSTimer scheduledTimerWithTimeInterval:([networkController isConnectedToServer] ? 10.0 : 0.5) target:self @@ -1119,6 +1124,12 @@ static MainController *sharedController; [currentRemote release]; currentRemote = [remoteArray objectAtIndex:0]; [networkController disconnect]; + + if ([[self currentRemote] playerRunningState] == ITMTRemotePlayerRunning) { + [self applicationLaunched:nil]; + } else { + [self applicationTerminated:nil]; + } [self timerUpdate]; return YES; } @@ -1176,7 +1187,7 @@ static MainController *sharedController; - (void)applicationLaunched:(NSNotification *)note { NS_DURING - if (!note || [[[note userInfo] objectForKey:@"NSApplicationName"] isEqualToString:[[self currentRemote] playerFullName]]) { + if (!note || ([[[note userInfo] objectForKey:@"NSApplicationName"] isEqualToString:[[self currentRemote] playerFullName]] && ![[NetworkController sharedController] isConnectedToServer])) { ITDebugLog(@"Remote application launched."); playerRunningState = ITMTRemotePlayerRunning; [[self currentRemote] begin];