-- (void)updateMenu
-{
- NSUserDefaults *defaults;
- int playlist = [currentRemote currentPlaylistIndex];
- BOOL wasPlayingRadio = isPlayingRadio;
-
- if ( (isAppRunning == ITMTRemotePlayerNotRunning) ) {
- return;
- }
-
- defaults = [NSUserDefaults standardUserDefaults];
-
- isPlayingRadio = ([currentRemote classOfPlaylistAtIndex:playlist] == ITMTRemotePlayerRadioPlaylist);
-
- //
- //
- //rebuild submenus, make them properly enabled for once...
- //
- //
-
- if ( (trackInfoIndex > -1) && (playlist) ) {
- NSString *title, *album, *artist;
- int temp;
-
- lastSongIdentifier = [[currentRemote currentSongUniqueIdentifier] retain];
-
- if ( (temp = [menu indexOfItemWithTitle:@"No Song"]) && (temp > -1) ) {
- [menu removeItemAtIndex:temp];
- [menu insertItemWithTitle:@"Now Playing" action:NULL keyEquivalent:@"" atIndex:temp];
- } else {
- if ([defaults boolForKey:@"showName"]) {
- [menu removeItemAtIndex:trackInfoIndex + 1];
- }
- }
-
- title = [currentRemote currentSongTitle];
-
- if (!wasPlayingRadio && (temp == -1)) {
- if (didHaveAlbumName && [defaults boolForKey:@"showAlbum"]) {
- [menu removeItemAtIndex:trackInfoIndex + 1];
- }
- if (didHaveArtistName && [defaults boolForKey:@"showArtist"]) {
- [menu removeItemAtIndex:trackInfoIndex + 1];
- }
- if ([defaults boolForKey:@"showTime"]) {
- [menu removeItemAtIndex:trackInfoIndex + 1];
- }
- }
-
- if (!isPlayingRadio) {
- ([defaults boolForKey:@"showAlbum"]) ? (album = [currentRemote currentSongAlbum]) :
- (album = @"");
- ([defaults boolForKey:@"showArtist"]) ? (artist = [currentRemote currentSongArtist]) :
- (artist = @"");
- if ([defaults boolForKey:@"showTime"]) {
- [menu insertItemWithTitle:[NSString stringWithFormat:@" %@", [currentRemote currentSongLength]] action:nil keyEquivalent:@"" atIndex:trackInfoIndex + 1];
- }
-
- if ([artist length] > 0) {
- [menu insertItemWithTitle:[NSString stringWithFormat:@" %@", artist] action:nil keyEquivalent:@"" atIndex:trackInfoIndex + 1];
- }
-
- if ([album length] > 0) {
- [menu insertItemWithTitle:[NSString stringWithFormat:@" %@", album] action:nil keyEquivalent:@"" atIndex:trackInfoIndex + 1];
- }
-
- if ([defaults boolForKey:@"showArtist"]) {
- didHaveArtistName = (([artist length] > 0) ? YES : NO);
- }
-
- if ([defaults boolForKey:@"showAlbum"]) {
- didHaveAlbumName = (([album length] > 0) ? YES : NO);
- }
- }
-
- if ([title length] > 0) {
- [menu insertItemWithTitle:[NSString stringWithFormat:@" %@", title] action:nil keyEquivalent:@"" atIndex:trackInfoIndex + 1];
- }
- }
-}
-
-