Lots of code cleanup, bug fixes.
authorKent Sutherland <ksuther@ithinksw.com>
Wed, 26 Feb 2003 00:44:54 +0000 (00:44 +0000)
committerKent Sutherland <ksuther@ithinksw.com>
Wed, 26 Feb 2003 00:44:54 +0000 (00:44 +0000)
MenuTunes.h
MenuTunes.m
iTunesRemote.m

index dd79366..466c4e4 100755 (executable)
@@ -31,7 +31,7 @@
     
     //Used in updating the menu automatically
     NSTimer *refreshTimer;
-    int trackInfoIndex, lastSongIndex;
+    int trackInfoIndex, lastSongIndex, lastPlaylistIndex;
     BOOL isPlayingRadio;
     
     BOOL isAppRunning;
@@ -55,6 +55,9 @@
     StatusWindow *statusWindow; //Shows track info and upcoming songs.
 }
 
+- (void)iTunesLaunched:(NSNotification *)note;
+- (void)iTunesTerminated:(NSNotification *)note;
+
 - (void)registerDefaultsIfNeeded;
 - (void)rebuildMenu;
 - (void)clearHotKeys;
index d03da70..a1121d7 100755 (executable)
@@ -53,22 +53,12 @@ Things to do:
     
     menu = [[NSMenu alloc] initWithTitle:@""];
     
-    isAppRunning = [currentRemote isAppRunning];
-    if (isAppRunning) {
-        [self rebuildMenu];
-        refreshTimer = [NSTimer scheduledTimerWithTimeInterval:3.5
-                            target:self
-                            selector:@selector(timerUpdate)
-                            userInfo:nil
-                            repeats:YES];
+    if ([currentRemote isAppRunning]) {
+        [self iTunesLaunched:nil];
     } else {
-        menu = [[NSMenu alloc] initWithTitle:@""];
-        [[menu addItemWithTitle:@"Open iTunes" action:@selector(openiTunes:) keyEquivalent:@""] setTarget:self];
-        [[menu addItemWithTitle:@"Preferences" action:@selector(showPreferences:) keyEquivalent:@""] setTarget:self];
-        [[menu addItemWithTitle:@"Quit" action:@selector(quitMenuTunes:) keyEquivalent:@""] setTarget:self];
-        refreshTimer = nil;
+        [self iTunesTerminated:nil];
     }
-
+    
     statusItem = [[ITStatusItem alloc] initWithStatusBar:[NSStatusBar systemStatusBar]
                                               withLength:NSSquareStatusItemLength];
     
@@ -82,7 +72,7 @@ Things to do:
 - (ITMTRemote *)loadRemote
 {
     NSString *folderPath = [[NSBundle mainBundle] builtInPlugInsPath];
-
+    
     if (folderPath) {
         NSArray      *bundlePathList = [NSBundle pathsForResourcesOfType:@"remote" inDirectory:folderPath];
         NSEnumerator *enumerator     = [bundlePathList objectEnumerator];
@@ -209,6 +199,7 @@ Things to do:
     
     trackInfoIndex = -1;
     lastSongIndex = -1;
+    lastPlaylistIndex = -1;
     didHaveAlbumName = ([[currentRemote currentSongAlbum] length] > 0);
     didHaveArtistName = ([[currentRemote currentSongArtist] length] > 0);
     
@@ -265,37 +256,37 @@ Things to do:
             }
         } else if ([item isEqualToString:@"Fast Forward"]) {
             [[menu addItemWithTitle:@"Fast Forward"
-                             action:@selector(fastForward:)
-                      keyEquivalent:@""] setTarget:self];
+                    action:@selector(fastForward:)
+                    keyEquivalent:@""] setTarget:self];
         } else if ([item isEqualToString:@"Rewind"]) {
             [[menu addItemWithTitle:@"Rewind"
-                             action:@selector(rewind:)
-                      keyEquivalent:@""] setTarget:self];
+                    action:@selector(rewind:)
+                    keyEquivalent:@""] setTarget:self];
         } else if ([item isEqualToString:@"Upcoming Songs"]) {
             upcomingSongsItem = [menu addItemWithTitle:@"Upcoming Songs"
-                                                action:nil
-                                         keyEquivalent:@""];
+                    action:nil
+                    keyEquivalent:@""];
         } else if ([item isEqualToString:@"Playlists"]) {
             playlistItem = [menu addItemWithTitle:@"Playlists"
-                                           action:nil
-                                    keyEquivalent:@""];
+                    action:nil
+                    keyEquivalent:@""];
         } else if ([item isEqualToString:@"EQ Presets"]) {
             eqItem = [menu addItemWithTitle:@"EQ Presets"
-                                     action:nil
-                              keyEquivalent:@""];
+                    action:nil
+                    keyEquivalent:@""];
         } else if ([item isEqualToString:@"PreferencesÉ"]) {
             [[menu addItemWithTitle:@"PreferencesÉ"
-                             action:@selector(showPreferences:)
-                      keyEquivalent:@""] setTarget:self];
+                    action:@selector(showPreferences:)
+                    keyEquivalent:@""] setTarget:self];
         } else if ([item isEqualToString:@"Quit"]) {
             [[menu addItemWithTitle:@"Quit"
-                             action:@selector(quitMenuTunes:)
-                      keyEquivalent:@""] setTarget:self];
+                    action:@selector(quitMenuTunes:)
+                    keyEquivalent:@""] setTarget:self];
         } else if ([item isEqualToString:@"Current Track Info"]) {
             trackInfoIndex = [menu numberOfItems];
             [menu addItemWithTitle:@"No Song"
-                            action:nil
-                     keyEquivalent:@""];
+                    action:nil
+                    keyEquivalent:@""];
         } else if ([item isEqualToString:@"<separator>"]) {
             [menu addItem:[NSMenuItem separatorItem]];
         }
@@ -361,24 +352,24 @@ Things to do:
             if (!isPlayingRadio) {
                 if ([defaults boolForKey:@"showTime"]) {
                     menuItem = [[NSMenuItem alloc] initWithTitle:[NSString stringWithFormat:@"  %@", [currentRemote currentSongLength]]
-                                                        action:nil
-                                                        keyEquivalent:@""];
+                            action:nil
+                            keyEquivalent:@""];
                     [menu insertItem:menuItem atIndex:trackInfoIndex + 1];
                     [menuItem release];
                 }
                 
                 if ([curArtistName length] > 0) {
                     menuItem = [[NSMenuItem alloc] initWithTitle:[NSString stringWithFormat:@"  %@", curArtistName]
-                                                        action:nil
-                                                        keyEquivalent:@""];
+                            action:nil
+                            keyEquivalent:@""];
                     [menu insertItem:menuItem atIndex:trackInfoIndex + 1];
                     [menuItem release];
                 }
                 
                 if ([curAlbumName length] > 0) {
                     menuItem = [[NSMenuItem alloc] initWithTitle:[NSString stringWithFormat:@"  %@", curAlbumName]
-                                                        action:nil
-                                                        keyEquivalent:@""];
+                            action:nil
+                            keyEquivalent:@""];
                     [menu insertItem:menuItem atIndex:trackInfoIndex + 1];
                     [menuItem release];
                 }
@@ -386,8 +377,8 @@ Things to do:
             
             if ([defaults boolForKey:@"showName"]) {
                 menuItem = [[NSMenuItem alloc] initWithTitle:[NSString stringWithFormat:@"  %@", curSongName]
-                                                    action:nil
-                                                    keyEquivalent:@""];
+                            action:nil
+                            keyEquivalent:@""];
                 [menu insertItem:menuItem atIndex:trackInfoIndex + 1];
                 [menuItem release];
             }
@@ -455,7 +446,7 @@ Things to do:
                     NSMenuItem *songItem;
                     songItem = [[NSMenuItem alloc] initWithTitle:curSong action:@selector(playTrack:) keyEquivalent:@""];
                     [songItem setTarget:self];
-                    [songItem setRepresentedObject:[NSNumber numberWithInt:i + 1]];
+                    [songItem setRepresentedObject:[NSNumber numberWithInt:i]];
                     [upcomingSongsMenu addItem:songItem];
                     [songItem release];
                 } else {
@@ -493,6 +484,7 @@ Things to do:
         [tempItem release];
     }
     [playlistItem setSubmenu:playlistMenu];
+    [playlistItem setEnabled:YES];
     
     if (curPlaylist) {
         [[playlistMenu itemAtIndex:curPlaylist - 1] setState:NSOnState];
@@ -574,21 +566,26 @@ Things to do:
 //Called when the timer fires.
 - (void)timerUpdate
 {
-    NSLog(@"%i", [currentRemote playerState]);
-    if ([currentRemote playerState] != stopped) {
+    int playlist = [currentRemote currentPlaylistIndex];
+    PlayerState playerState = [currentRemote playerState];
+    
+    if ((playlist > 0) || playerState != stopped) {
         int trackPlayingIndex = [currentRemote currentSongIndex];
-        int playlist = [currentRemote currentPlaylistIndex];
         
         if (trackPlayingIndex != lastSongIndex) {
             BOOL wasPlayingRadio = isPlayingRadio;
             isPlayingRadio = [[currentRemote classOfPlaylistAtIndex:playlist] isEqualToString:@"radio tuner playlist"];
+            
             if (isPlayingRadio && !wasPlayingRadio) {
                 int i;
                 for (i = 0; i < [playlistMenu numberOfItems]; i++)
                 {
                     [[playlistMenu itemAtIndex:i] setState:NSOffState];
                 }
+            } else {
+                [[playlistMenu itemAtIndex:playlist - 1] setState:NSOnState];
             }
+            
             if (wasPlayingRadio) {
                 NSMenuItem *temp = [[NSMenuItem alloc] initWithTitle:@"" action:NULL keyEquivalent:@""];
                 [menu insertItem:temp atIndex:trackInfoIndex + 1];
@@ -598,27 +595,40 @@ Things to do:
             [self updateMenu];
             lastSongIndex = trackPlayingIndex;
         } else {
-            if (playlist != [currentRemote currentPlaylistIndex]) {
+            if (playlist != lastPlaylistIndex) {
                 BOOL wasPlayingRadio = isPlayingRadio;
                 isPlayingRadio = [[currentRemote classOfPlaylistAtIndex:playlist] isEqualToString:@"radio tuner playlist"];
+                
                 if (isPlayingRadio && !wasPlayingRadio) {
                     int i;
                     for (i = 0; i < [playlistMenu numberOfItems]; i++) {
                         [[playlistMenu itemAtIndex:i] setState:NSOffState];
                     }
                 }
+                
                 if (wasPlayingRadio) {
                     NSMenuItem *temp = [[NSMenuItem alloc] initWithTitle:@"" action:NULL keyEquivalent:@""];
                     [menu insertItem:temp atIndex:trackInfoIndex + 1];
                     [temp release];
                 }
+                
+                if (!isPlayingRadio) {
+                    int i;
+                    for (i = 0; i < [playlistMenu numberOfItems]; i++)
+                    {
+                        [[playlistMenu itemAtIndex:i] setState:NSOffState];
+                    }
+                    [[playlistMenu itemAtIndex:playlist - 1] setState:NSOnState];
+                }
+                
                 [self updateMenu];
                 lastSongIndex = trackPlayingIndex;
+                lastPlaylistIndex = playlist;
             }
         }
         //Update Play/Pause menu item
         if (playPauseMenuItem){
-            if ([currentRemote playerState] == playing) {
+            if (playerState == playing) {
                 [playPauseMenuItem setTitle:@"Pause"];
             } else {
                 [playPauseMenuItem setTitle:@"Play"];
@@ -632,9 +642,10 @@ Things to do:
     isAppRunning = YES;
     
     //Restart the timer
-    refreshTimer = [NSTimer scheduledTimerWithTimeInterval:3.5 target:self selector:@selector(timerUpdate) userInfo:nil repeats:YES]; 
+    refreshTimer = [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(timerUpdate) userInfo:nil repeats:YES]; 
     
     [self rebuildMenu]; //Rebuild the menu since no songs will be playing
+    [self rebuildPlaylistMenu];
     [statusItem setMenu:menu]; //Set the menu back to the main one
 }
 
@@ -644,7 +655,9 @@ Things to do:
     
     [menu release];
     menu = [[NSMenu alloc] initWithTitle:@""];
-    [[menu addItemWithTitle:@"Open iTunes" action:@selector(openiTunes:) keyEquivalent:@""] setTarget:self];
+    [menu addItemWithTitle:@"Audio Player" action:NULL keyEquivalent:@""];
+    [menu addItemWithTitle:@"Not Running" action:NULL keyEquivalent:@""];
+    [menu addItem:[NSMenuItem separatorItem]];
     [[menu addItemWithTitle:@"Preferences" action:@selector(showPreferences:) keyEquivalent:@""] setTarget:self];
     [[menu addItemWithTitle:@"Quit" action:@selector(quitMenuTunes:) keyEquivalent:@""] setTarget:self];
     [statusItem setMenu:menu];
@@ -692,6 +705,7 @@ Things to do:
 - (void)playPause:(id)sender
 {
     PlayerState state = [currentRemote playerState];
+    
     if (state == playing) {
         [currentRemote pause];
         [playPauseMenuItem setTitle:@"Play"];
@@ -736,12 +750,6 @@ Things to do:
     [NSApp terminate:self];
 }
 
-//How is this going to work, now that we're pluginized?
-- (void)openiTunes:(id)sender
-{
-    [[NSWorkspace sharedWorkspace] launchApplication:@"iTunes"];
-}
-
 - (void)showPreferences:(id)sender
 {
     if (!prefsController) {
@@ -750,7 +758,6 @@ Things to do:
     }
 }
 
-
 - (void)closePreferences
 {
     if (isAppRunning) {
@@ -811,10 +818,10 @@ Things to do:
         
         [statusWindow setText:stringToShow];
         [NSTimer scheduledTimerWithTimeInterval:3.0
-                                    target:self
-                                    selector:@selector(fadeAndCloseStatusWindow)
-                                    userInfo:nil
-                                    repeats:NO];
+                    target:self
+                    selector:@selector(fadeAndCloseStatusWindow)
+                    userInfo:nil
+                    repeats:NO];
     }
 }
 
index 6976935..c4079df 100755 (executable)
@@ -59,7 +59,7 @@
 
 - (PlayerState)playerState
 {
-    long result = [[ITAppleEventCenter sharedCenter] sendAEWithSendStringForNumber:@"'----':obj { form:'prop', want:type('prop'), seld:type('pPlS'), from:'null'() }" eventClass:@"core" eventID:@"getd" appPSN:[self iTunesPSN]];
+    long result = [[ITAppleEventCenter sharedCenter] sendAEWithSendStringForNumber:@"'----':obj { form:'prop', want:type('prop'), seld:type('pPlS'), from:'null'() }" eventClass:@"core" eventID:@"getd" appPSN:iTunesPSN];
     
     switch (result)
     {
@@ -67,9 +67,9 @@
         case 'kPSS':
             return stopped;
         case 'kPSP':
-            return paused;
-        case 'kPSp':
             return playing;
+        case 'kPSp':
+            return paused;
         case 'kPSR':
             return rewinding;
         case 'kPSF':
 - (NSArray *)playlists
 {
     long i = 0;
-    const signed long numPlaylists = [[ITAppleEventCenter sharedCenter] sendAEWithSendStringForNumber:@"kocl:type('cPly'), '----':(), &subj:()" eventClass:@"core" eventID:@"cnte" appPSN:[self iTunesPSN]];
+    const signed long numPlaylists = [[ITAppleEventCenter sharedCenter] sendAEWithSendStringForNumber:@"kocl:type('cPly'), '----':(), &subj:()" eventClass:@"core" eventID:@"cnte" appPSN:iTunesPSN];
     NSMutableArray *playlists = [[NSMutableArray alloc] initWithCapacity:numPlaylists];
-    NSLog(@"entered playlist");
-
-          for (i = 1; i <= numPlaylists; i++) {
-                 const long j = i;
-                 NSString *sendStr = [NSString stringWithFormat:@"'----':obj { form:'prop', want:type('prop'), seld:type('pnam'), from:obj { form:'indx', want:type('cPly'), seld:long(%lu), from:'null'() } }",(unsigned long)j];
-                 NSString *theObj = [[ITAppleEventCenter sharedCenter] sendAEWithSendString:sendStr eventClass:@"core" eventID:@"getd" appPSN:[self iTunesPSN] fixForAECrappiness:i];
-                 NSLog(@"sent event cur %d max %d",i,numPlaylists);
-                 [playlists addObject:theObj];
-          }
-          NSLog(@"playlists end");
-          return [playlists autorelease];
+    
+    for (i = 1; i <= numPlaylists; i++) {
+        const long j = i;
+        NSString *sendStr = [NSString stringWithFormat:@"'----':obj { form:'prop', want:type('prop'), seld:type('pnam'), from:obj { form:'indx', want:type('cPly'), seld:long(%lu), from:'null'() } }",(unsigned long)j];
+        NSString *theObj = [[ITAppleEventCenter sharedCenter] sendAEWithSendString:sendStr eventClass:@"core" eventID:@"getd" appPSN:iTunesPSN fixForAECrappiness:i];
+        [playlists addObject:theObj];
+    }
+    return [playlists autorelease];
 }
 
 - (int)numberOfSongsInPlaylistAtIndex:(int)index
 {
-    return [[ITAppleEventCenter sharedCenter] sendAEWithSendStringForNumber:[NSString stringWithFormat:@"kocl:type('cTrk'), '----':obj { form:'indx', want:type('cPly'), seld:long(%lu), from:'null'() }",index] eventClass:@"core" eventID:@"cnte" appPSN:[self iTunesPSN]]
+    return [[ITAppleEventCenter sharedCenter] sendAEWithSendStringForNumber:[NSString stringWithFormat:@"kocl:type('cTrk'), '----':obj { form:'indx', want:type('cPly'), seld:long(%lu), from:'null'() }",index] eventClass:@"core" eventID:@"cnte" appPSN:iTunesPSN]
 
 ;
 }
 - (NSString *)classOfPlaylistAtIndex:(int)index
 {
     int realResult = [[ITAppleEventCenter sharedCenter]
-                sendTwoTierAEWithRequestedKeyForNumber:@"pcls" fromObjectByKey:@"pPla" eventClass:@"core" eventID:@"getd" appPSN:[self iTunesPSN]];
+                sendTwoTierAEWithRequestedKeyForNumber:@"pcls" fromObjectByKey:@"pPla" eventClass:@"core" eventID:@"getd" appPSN:iTunesPSN];
 
     if (realResult == 'cRTP') return @"radio tuner playlist";
     else return @"playlist";
 {
     int result;
     result = [[ITAppleEventCenter sharedCenter]
-                sendTwoTierAEWithRequestedKeyForNumber:@"pidx" fromObjectByKey:@"pPla" eventClass:@"core" eventID:@"getd" appPSN:[self iTunesPSN]];
+                sendTwoTierAEWithRequestedKeyForNumber:@"pidx" fromObjectByKey:@"pPla" eventClass:@"core" eventID:@"getd" appPSN:iTunesPSN];
     return result;
 }
 
 - (NSString *)songTitleAtIndex:(int)index
 {
-    return [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"'----':obj { form:'prop', want:type('prop'), seld:type('pnam'), from:obj { form:'indx', want:type('cTrk'), seld:long(%lu), from:obj { form:'prop', want:type('prop'), seld:type('pPla'), from:'null'() } } }",index] eventClass:@"core" eventID:@"getd" appPSN:[self iTunesPSN]];
+    return [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"'----':obj { form:'prop', want:type('prop'), seld:type('pnam'), from:obj { form:'indx', want:type('cTrk'), seld:long(%lu), from:obj { form:'prop', want:type('prop'), seld:type('pPla'), from:'null'() } } }",index] eventClass:@"core" eventID:@"getd" appPSN:iTunesPSN];
 }
 
 - (int)currentSongIndex
 {
     int result;
-    result = [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKeyForNumber:@"pidx" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:[self iTunesPSN]];
+    result = [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKeyForNumber:@"pidx" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:iTunesPSN];
     return result;
 }
 
 - (NSString *)currentSongTitle
 {
-    return [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pnam" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:[self iTunesPSN]];
+    return [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pnam" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:iTunesPSN];
 }
 
 - (NSString *)currentSongArtist
 {
-    return [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pArt" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:[self iTunesPSN]];
+    return [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pArt" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:iTunesPSN];
 }
 
 - (NSString *)currentSongAlbum
 {
-    return [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pAlb" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:[self iTunesPSN]];
+    return [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pAlb" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:iTunesPSN];
 }
 
 - (NSString *)currentSongGenre
 {
-    return [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pGen" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:[self iTunesPSN]];
+    return [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pGen" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:iTunesPSN];
 }
 
 - (NSString *)currentSongLength
 {
-    return [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pTim" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:[self iTunesPSN]];
+    return [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pTim" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:iTunesPSN];
 }
 
 - (NSString *)currentSongRemaining
 {
     long duration = [[ITAppleEventCenter sharedCenter]
-                        sendTwoTierAEWithRequestedKeyForNumber:@"pDur" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:[self iTunesPSN]];
+                        sendTwoTierAEWithRequestedKeyForNumber:@"pDur" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:iTunesPSN];
     long current = [[ITAppleEventCenter sharedCenter]
-                        sendAEWithRequestedKeyForNumber:@"pPos" eventClass:@"core" eventID:@"getd" appPSN:[self iTunesPSN]];
+                        sendAEWithRequestedKeyForNumber:@"pPos" eventClass:@"core" eventID:@"getd" appPSN:iTunesPSN];
 
     return [[NSNumber numberWithLong:duration - current] stringValue];
 }
 - (NSArray *)eqPresets;
 {
     int i;
-    long numPresets = [[ITAppleEventCenter sharedCenter] sendAEWithSendStringForNumber:@"kocl:type('cEQP'), '----':(), &subj:()" eventClass:@"core" eventID:@"cnte" appPSN:[self iTunesPSN]];
+    long numPresets = [[ITAppleEventCenter sharedCenter] sendAEWithSendStringForNumber:@"kocl:type('cEQP'), '----':(), &subj:()" eventClass:@"core" eventID:@"cnte" appPSN:iTunesPSN];
     NSMutableArray *presets = [[NSMutableArray alloc] initWithCapacity:numPresets];
-
-          for (i = 1; i <= numPresets; i++) {
-                 NSString *theObj = [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"'----':obj { form:'prop', want:type('prop'), seld:type('pnam'), from:obj { form:'indx', want:type('cEQP'), seld:long(%lu), from:'null'() } }",i] eventClass:@"core" eventID:@"getd" appPSN:[self iTunesPSN] fixForAECrappiness:i];
-                 if (theObj) [presets addObject:theObj];
-          }
-          return [presets autorelease];
+    
+    for (i = 1; i <= numPresets; i++) {
+        NSString *theObj = [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"'----':obj { form:'prop', want:type('prop'), seld:type('pnam'), from:obj { form:'indx', want:type('cEQP'), seld:long(%lu), from:'null'() } }",i] eventClass:@"core" eventID:@"getd" appPSN:iTunesPSN fixForAECrappiness:i];
+        if (theObj) {
+            [presets addObject:theObj];
+        }
+    }
+    return [presets autorelease];
 }
 
 - (int)currentEQPresetIndex
 {
     int result;
     result = [[ITAppleEventCenter sharedCenter]
-                sendTwoTierAEWithRequestedKeyForNumber:@"pidx"fromObjectByKey:@"pEQP" eventClass:@"core" eventID:@"getd"appPSN:[self iTunesPSN]];
+                sendTwoTierAEWithRequestedKeyForNumber:@"pidx"fromObjectByKey:@"pEQP" eventClass:@"core" eventID:@"getd"appPSN:iTunesPSN];
     return result;
 }
 
 - (BOOL)play
 {
-    [[ITAppleEventCenter sharedCenter] sendAEWithEventClass:@"hook" eventID:@"Play" appPSN:[self iTunesPSN]];
+    [[ITAppleEventCenter sharedCenter] sendAEWithEventClass:@"hook" eventID:@"Play" appPSN:iTunesPSN];
     return YES;
 }
 
 - (BOOL)pause
 {
-    [[ITAppleEventCenter sharedCenter] sendAEWithEventClass:@"hook" eventID:@"Paus" appPSN:[self iTunesPSN]];
+    [[ITAppleEventCenter sharedCenter] sendAEWithEventClass:@"hook" eventID:@"Paus" appPSN:iTunesPSN];
     return YES;
 }
 
 - (BOOL)goToNextSong
 {
-    [[ITAppleEventCenter sharedCenter] sendAEWithEventClass:@"hook" eventID:@"Next" appPSN:[self iTunesPSN]];
+    [[ITAppleEventCenter sharedCenter] sendAEWithEventClass:@"hook" eventID:@"Next" appPSN:iTunesPSN];
     return YES;
 }
 
 - (BOOL)goToPreviousSong
 {
-    [[ITAppleEventCenter sharedCenter] sendAEWithEventClass:@"hook" eventID:@"Prev" appPSN:[self iTunesPSN]];
+    [[ITAppleEventCenter sharedCenter] sendAEWithEventClass:@"hook" eventID:@"Prev" appPSN:iTunesPSN];
     return YES;
 }
 
 - (BOOL)fastForward
 {
-    [[ITAppleEventCenter sharedCenter] sendAEWithEventClass:@"hook" eventID:@"Fast" appPSN:[self iTunesPSN]];
+    [[ITAppleEventCenter sharedCenter] sendAEWithEventClass:@"hook" eventID:@"Fast" appPSN:iTunesPSN];
     return YES;
 }
 
 - (BOOL)rewind
 {
-    [[ITAppleEventCenter sharedCenter] sendAEWithEventClass:@"hook" eventID:@"Rwnd" appPSN:[self iTunesPSN]];
+    [[ITAppleEventCenter sharedCenter] sendAEWithEventClass:@"hook" eventID:@"Rwnd" appPSN:iTunesPSN];
     return YES;
 }
 
 
 - (BOOL)switchToPlaylistAtIndex:(int)index
 {
-    [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"'----':obj { form:'name', want:type('cPly'), seld:long(%lu), from:'null'() }",index] eventClass:@"hook" eventID:@"Play" appPSN:[self iTunesPSN]];
+    [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"'----':obj { form:'name', want:type('cPly'), seld:long(%lu), from:'null'() }",index] eventClass:@"hook" eventID:@"Play" appPSN:iTunesPSN];
     return NO;
 }
 
 - (BOOL)switchToSongAtIndex:(int)index
 {
-    [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"'----':obj { form:'indx', want:type('cTrk'), seld:long(%lu), from:obj { form:'prop', want:type('prop'), seld:type('pPla'), from:'null'() } }",index] eventClass:@"hook" eventID:@"Play" appPSN:[self iTunesPSN]];
+    [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"'----':obj { form:'indx', want:type('cTrk'), seld:long(%lu), from:obj { form:'prop', want:type('prop'), seld:type('pPla'), from:'null'() } }",index] eventClass:@"hook" eventID:@"Play" appPSN:iTunesPSN];
     return NO;
 }
 
 - (BOOL)switchToEQAtIndex:(int)index
 {
-    [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"data:obj { form:'name', want:type('cEQP'), seld:long(%lu), from:'null'() }, '----':obj { form:'prop', want:type('prop'), seld:type('pEQP'), from:'null'() }",index] eventClass:@"core" eventID:@"setd" appPSN:[self iTunesPSN]];
-    [[ITAppleEventCenter sharedCenter] sendAEWithSendString:@"data:1, '----':obj { form:'prop', want:type('prop'), seld:type('pEQ '), from:'null'() }" eventClass:@"core" eventID:@"setd" appPSN:[self iTunesPSN]];
+    [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"data:obj { form:'name', want:type('cEQP'), seld:long(%lu), from:'null'() }, '----':obj { form:'prop', want:type('prop'), seld:type('pEQP'), from:'null'() }",index] eventClass:@"core" eventID:@"setd" appPSN:iTunesPSN];
+    [[ITAppleEventCenter sharedCenter] sendAEWithSendString:@"data:1, '----':obj { form:'prop', want:type('prop'), seld:type('pEQ '), from:'null'() }" eventClass:@"core" eventID:@"setd" appPSN:iTunesPSN];
     return NO;
 }
 
     NSArray *apps = [[NSWorkspace sharedWorkspace] launchedApplications];
     ProcessSerialNumber number;
     int i, count = [apps count];
-
-              number.highLongOfPSN = kNoProcess;
-
-              for (i = 0; i < count; i++)
-                     {
-                         NSDictionary *curApp = [apps objectAtIndex:i];
-                        
-                                if ([[curApp objectForKey:@"NSApplicationName"] isEqualToString:@"iTunes"])
-                                    {
-                                               number.highLongOfPSN = [[curApp objectForKey:@"NSApplicationProcessSerialNumberHigh"] intValue];
-                                               number.lowLongOfPSN = [[curApp objectForKey:@"NSApplicationProcessSerialNumberLow"] intValue];
-                                           }
-                            }
-    return number;}
+    
+    number.highLongOfPSN = kNoProcess;
+    
+    for (i = 0; i < count; i++)
+    {
+        NSDictionary *curApp = [apps objectAtIndex:i];
+        
+        if ([[curApp objectForKey:@"NSApplicationName"] isEqualToString:@"iTunes"])
+        {
+            number.highLongOfPSN = [[curApp objectForKey:
+                @"NSApplicationProcessSerialNumberHigh"] intValue];
+            number.lowLongOfPSN = [[curApp objectForKey:
+                @"NSApplicationProcessSerialNumberLow"] intValue];
+        }
+    }
+    return number;
+}
 
 - (void)applicationLaunched:(NSNotification *)note
 {