Positioning Fixes. The window might still do some weirdness if you change its positi...
[MenuTunes.git] / MainController.m
index bffb59c..67ce65d 100755 (executable)
@@ -14,7 +14,6 @@
 - (ITMTRemote *)loadRemote;
 - (void)timerUpdate;
 - (void)setLatestSongIdentifier:(NSString *)newIdentifier;
 - (ITMTRemote *)loadRemote;
 - (void)timerUpdate;
 - (void)setLatestSongIdentifier:(NSString *)newIdentifier;
-- (void)showCurrentTrackInfo;
 - (void)applicationLaunched:(NSNotification *)note;
 - (void)applicationTerminated:(NSNotification *)note;
 @end
 - (void)applicationLaunched:(NSNotification *)note;
 - (void)applicationTerminated:(NSNotification *)note;
 @end
@@ -39,10 +38,10 @@ static MainController *sharedController;
         sharedController = self;
         
         remoteArray = [[NSMutableArray alloc] initWithCapacity:1];
         sharedController = self;
         
         remoteArray = [[NSMutableArray alloc] initWithCapacity:1];
+        [[PreferencesController sharedPrefs] setController:self];
         statusWindowController = [StatusWindowController sharedController];
         menuController = [[MenuController alloc] init];
         df = [[NSUserDefaults standardUserDefaults] retain];
         statusWindowController = [StatusWindowController sharedController];
         menuController = [[MenuController alloc] init];
         df = [[NSUserDefaults standardUserDefaults] retain];
-        [[PreferencesController sharedPrefs] setController:self];
         timerUpdating = NO;
         blinged = NO;
     }
         timerUpdating = NO;
         blinged = NO;
     }
@@ -960,6 +959,12 @@ static MainController *sharedController;
     if (result == 1) {
         [[PreferencesController sharedPrefs] resetRemotePlayerTextFields];
         currentRemote = [[[networkController networkObject] remote] retain];
     if (result == 1) {
         [[PreferencesController sharedPrefs] resetRemotePlayerTextFields];
         currentRemote = [[[networkController networkObject] remote] retain];
+        [refreshTimer invalidate];
+        refreshTimer = [[NSTimer scheduledTimerWithTimeInterval:([networkController isConnectedToServer] ? 10.0 : 0.5)
+                                target:self
+                                selector:@selector(timerUpdate)
+                                userInfo:nil
+                                repeats:YES] retain];
         [self timerUpdate];
         ITDebugLog(@"Connection successful.");
         return 1;
         [self timerUpdate];
         ITDebugLog(@"Connection successful.");
         return 1;
@@ -1070,6 +1075,17 @@ static MainController *sharedController;
             refreshTimer = nil;
             [self clearHotKeys];
             playerRunningState = ITMTRemotePlayerNotRunning;
             refreshTimer = nil;
             [self clearHotKeys];
             playerRunningState = ITMTRemotePlayerNotRunning;
+            
+            if ([df objectForKey:@"ShowPlayer"] != nil) {
+                ITHotKey *hotKey;
+                ITDebugLog(@"Setting up show player hot key.");
+                hotKey = [[ITHotKey alloc] init];
+                [hotKey setName:@"ShowPlayer"];
+                [hotKey setKeyCombo:[ITKeyCombo keyComboWithPlistRepresentation:[df objectForKey:@"ShowPlayer"]]];
+                [hotKey setTarget:self];
+                [hotKey setAction:@selector(showPlayer)];
+                [[ITHotKeyCenter sharedCenter] registerHotKey:[hotKey autorelease]];
+            }
         }
     NS_HANDLER
         [self networkError:localException];
         }
     NS_HANDLER
         [self networkError:localException];