Added checking to prevent cascading threads and server checks.
[MenuTunes.git] / MenuController.m
index f1e96fb..998cf20 100755 (executable)
@@ -47,7 +47,7 @@
     NSEnumerator *itemEnum;
     ITHotKey *hotKey;
     NSArray *hotKeys = [[ITHotKeyCenter sharedCenter] allHotKeys];
     NSEnumerator *itemEnum;
     ITHotKey *hotKey;
     NSArray *hotKeys = [[ITHotKeyCenter sharedCenter] allHotKeys];
-    int currentSongRating;
+    int currentSongRating = 0;
     
     //Get the information
     NS_DURING
     
     //Get the information
     NS_DURING
             ITDebugLog(@"Check to see if a Track is playing...");
             //Handle playing radio too
             if (_currentPlaylist) {
             ITDebugLog(@"Check to see if a Track is playing...");
             //Handle playing radio too
             if (_currentPlaylist) {
-                NSString *title;
+                NSString *title = nil;
                 NS_DURING
                     title = [[[MainController sharedController] currentRemote] currentSongTitle];
                 NS_HANDLER
                 NS_DURING
                     title = [[[MainController sharedController] currentRemote] currentSongTitle];
                 NS_HANDLER
                 
                 if (!_playingRadio) {
                     if ([defaults boolForKey:@"showAlbum"]) {
                 
                 if (!_playingRadio) {
                     if ([defaults boolForKey:@"showAlbum"]) {
-                        NSString *curAlbum;
+                        NSString *curAlbum = nil;
                         NS_DURING
                             curAlbum = [[[MainController sharedController] currentRemote] currentSongAlbum];
                         NS_HANDLER
                         NS_DURING
                             curAlbum = [[[MainController sharedController] currentRemote] currentSongAlbum];
                         NS_HANDLER
                     }
                     
                     if ([defaults boolForKey:@"showArtist"]) {
                     }
                     
                     if ([defaults boolForKey:@"showArtist"]) {
-                        NSString *curArtist;
+                        NSString *curArtist = nil;
                         NS_DURING
                             curArtist = [[[MainController sharedController] currentRemote] currentSongArtist];
                         NS_HANDLER
                         NS_DURING
                             curArtist = [[[MainController sharedController] currentRemote] currentSongArtist];
                         NS_HANDLER
                     }
                     
                     if ([defaults boolForKey:@"showComposer"]) {
                     }
                     
                     if ([defaults boolForKey:@"showComposer"]) {
-                        NSString *curComposer;
+                        NSString *curComposer = nil;
                         NS_DURING
                             curComposer = [[[MainController sharedController] currentRemote] currentSongComposer];
                         NS_HANDLER
                         NS_DURING
                             curComposer = [[[MainController sharedController] currentRemote] currentSongComposer];
                         NS_HANDLER
                     }
                     
                     if ([defaults boolForKey:@"showTrackNumber"]) {
                     }
                     
                     if ([defaults boolForKey:@"showTrackNumber"]) {
-                        int track;
+                        int track = 0;
                         NS_DURING
                             track = [[[MainController sharedController] currentRemote] currentSongTrack];
                         NS_HANDLER
                         NS_DURING
                             track = [[[MainController sharedController] currentRemote] currentSongTrack];
                         NS_HANDLER
                         [[MainController sharedController] networkError:localException];
                     NS_ENDHANDLER
                     
                         [[MainController sharedController] networkError:localException];
                     NS_ENDHANDLER
                     
-                    if ([tempItem respondsToSelector:@selector(setAttributedTitle:)] && [defaults boolForKey:@"showAlbumArtwork"] && ![[NetworkController sharedController] isConnectedToServer]) {
+                    /*if ([tempItem respondsToSelector:@selector(setAttributedTitle:)] && [defaults boolForKey:@"showAlbumArtwork"] && ![[NetworkController sharedController] isConnectedToServer]) {
                         NSImage *image = [[[MainController sharedController] currentRemote] currentSongAlbumArt];
                         if (image) {
                             NSSize oldSize, newSize;
                         NSImage *image = [[[MainController sharedController] currentRemote] currentSongAlbumArt];
                         if (image) {
                             NSSize oldSize, newSize;
                             NSAttributedString *attrString = [NSAttributedString attributedStringWithAttachment:attachment];
                             [tempItem setAttributedTitle:attrString];
                         }
                             NSAttributedString *attrString = [NSAttributedString attributedStringWithAttachment:attachment];
                             [tempItem setAttributedTitle:attrString];
                         }
-                    }
+                    }*/
                 }
             } else {
                 ITDebugLog(@"No Track is Playing, Add \"No Song\" menu item.");
                 }
             } else {
                 ITDebugLog(@"No Track is Playing, Add \"No Song\" menu item.");
 - (NSMenu *)menuForNoPlayer
 {
     NSMenu *menu = [[NSMenu alloc] initWithTitle:@""];
 - (NSMenu *)menuForNoPlayer
 {
     NSMenu *menu = [[NSMenu alloc] initWithTitle:@""];
-    id <NSMenuItem> tempItem;
+    id <NSMenuItem> tempItem = nil;
     ITDebugLog(@"Creating menu for when player isn't running.");
     NS_DURING
         ITDebugLog(@"Add \"Open %@\" menu item.", [[[MainController sharedController] currentRemote] playerSimpleName]);
     ITDebugLog(@"Creating menu for when player isn't running.");
     NS_DURING
         ITDebugLog(@"Add \"Open %@\" menu item.", [[[MainController sharedController] currentRemote] playerSimpleName]);
         [[MainController sharedController] networkError:localException];
     NS_ENDHANDLER
     ITDebugLog(@"Releasing old submenus.");
         [[MainController sharedController] networkError:localException];
     NS_ENDHANDLER
     ITDebugLog(@"Releasing old submenus.");
+    ITDebugLog(@" - Rating menu");
     [_ratingMenu release];
     [_ratingMenu release];
+    ITDebugLog(@" - Upcoming songs menu");
     [_upcomingSongsMenu release];
     [_upcomingSongsMenu release];
+    ITDebugLog(@" - Playlists menu");
     [_playlistsMenu release];
     [_playlistsMenu release];
+    ITDebugLog(@" - EQ menu");
     [_eqMenu release];
     ITDebugLog(@"Beginning Rebuild of \"Song Rating\" submenu.");
     _ratingMenu = [self ratingMenu];
     [_eqMenu release];
     ITDebugLog(@"Beginning Rebuild of \"Song Rating\" submenu.");
     _ratingMenu = [self ratingMenu];
 - (NSMenu *)upcomingSongsMenu
 {
     NSMenu *upcomingSongsMenu = [[NSMenu alloc] initWithTitle:@""];
 - (NSMenu *)upcomingSongsMenu
 {
     NSMenu *upcomingSongsMenu = [[NSMenu alloc] initWithTitle:@""];
-    int numSongs, numSongsInAdvance = [[NSUserDefaults standardUserDefaults] integerForKey:@"SongsInAdvance"];
+    int numSongs = 0, numSongsInAdvance = [[NSUserDefaults standardUserDefaults] integerForKey:@"SongsInAdvance"];
     
     NS_DURING
         numSongs = [[[MainController sharedController] currentRemote] numberOfSongsInPlaylistAtIndex:_currentPlaylist];
     
     NS_DURING
         numSongs = [[[MainController sharedController] currentRemote] numberOfSongsInPlaylistAtIndex:_currentPlaylist];
             int i;
             for (i = _currentTrack + 1; i <= _currentTrack + numSongsInAdvance; i++) {
                 if (i <= numSongs) {
             int i;
             for (i = _currentTrack + 1; i <= _currentTrack + numSongsInAdvance; i++) {
                 if (i <= numSongs) {
-                    NSString *curSong;
+                    NSString *curSong = nil;
                     NS_DURING
                         curSong = [[[MainController sharedController] currentRemote] songTitleAtIndex:i];
                     NS_HANDLER
                     NS_DURING
                         curSong = [[[MainController sharedController] currentRemote] songTitleAtIndex:i];
                     NS_HANDLER
 - (NSMenu *)playlistsMenu
 {
     NSMenu *playlistsMenu = [[NSMenu alloc] initWithTitle:@""];
 - (NSMenu *)playlistsMenu
 {
     NSMenu *playlistsMenu = [[NSMenu alloc] initWithTitle:@""];
-    NSArray *playlists;
+    NSArray *playlists = nil;
     id <NSMenuItem> tempItem;
     ITMTRemotePlayerSource source = [[[MainController sharedController] currentRemote] currentSource];
     int i, j;
     id <NSMenuItem> tempItem;
     ITMTRemotePlayerSource source = [[[MainController sharedController] currentRemote] currentSource];
     int i, j;
 - (NSMenu *)eqMenu
 {
     NSMenu *eqMenu = [[NSMenu alloc] initWithTitle:@""];
 - (NSMenu *)eqMenu
 {
     NSMenu *eqMenu = [[NSMenu alloc] initWithTitle:@""];
-    NSArray *eqPresets;
+    NSArray *eqPresets = nil;
     id <NSMenuItem> tempItem;
     int i;
     
     id <NSMenuItem> tempItem;
     int i;