+ ITDebugLog(@"Add Track Title (\"%@\") menu item.", title);
+ [menu indentItem:
+ [menu addItemWithTitle:title action:nil keyEquivalent:@""]];
+ }
+
+ if (!_playingRadio) {
+ if ([defaults boolForKey:@"showAlbum"]) {
+ NSString *curAlbum;
+ NS_DURING
+ curAlbum = [[[MainController sharedController] currentRemote] currentSongAlbum];
+ NS_HANDLER
+ [[MainController sharedController] networkError:localException];
+ NS_ENDHANDLER
+ ITDebugLog(@"Add Track Album (\"%@\") menu item.", curAlbum);
+ if ( curAlbum ) {
+ [menu indentItem:
+ [menu addItemWithTitle:curAlbum action:nil keyEquivalent:@""]];
+ }
+ }
+
+ if ([defaults boolForKey:@"showArtist"]) {
+ NSString *curArtist;
+ NS_DURING
+ curArtist = [[[MainController sharedController] currentRemote] currentSongArtist];
+ NS_HANDLER
+ [[MainController sharedController] networkError:localException];
+ NS_ENDHANDLER
+ ITDebugLog(@"Add Track Artist (\"%@\") menu item.", curArtist);
+ if ( curArtist ) {
+ [menu indentItem:
+ [menu addItemWithTitle:curArtist action:nil keyEquivalent:@""]];
+ }
+ }
+
+ if ([defaults boolForKey:@"showTrackNumber"]) {
+ int track;
+ NS_DURING
+ track = [[[MainController sharedController] currentRemote] currentSongTrack];
+ NS_HANDLER
+ [[MainController sharedController] networkError:localException];
+ NS_ENDHANDLER
+ ITDebugLog(@"Add Track Number (\"Track %i\") menu item.", track);
+ if ( track > 0 ) {
+ [menu indentItem:
+ [menu addItemWithTitle:[NSString stringWithFormat:@"%@ %i", NSLocalizedString(@"track", @"Track"), track] action:nil keyEquivalent:@""]];
+ }
+ }
+ }
+
+ NS_DURING
+ if ([defaults boolForKey:@"showTime"] && ( ([[[MainController sharedController] currentRemote] currentSongElapsed] != nil) || ([[[MainController sharedController] currentRemote] currentSongLength] != nil) )) {
+ ITDebugLog(@"Add Track Elapsed (\"%@/%@\") menu item.", [[[MainController sharedController] currentRemote] currentSongElapsed], [[[MainController sharedController] currentRemote] currentSongLength]);
+ [menu indentItem:[menu addItemWithTitle:[NSString stringWithFormat:@"%@/%@", [[[MainController sharedController] currentRemote] currentSongElapsed], [[[MainController sharedController] currentRemote] currentSongLength]] action:nil keyEquivalent:@""]];
+ }
+ NS_HANDLER
+ [[MainController sharedController] networkError:localException];
+ NS_ENDHANDLER
+
+ if (!_playingRadio) {
+ NS_DURING
+ if ([defaults boolForKey:@"showTrackRating"] && ( [[[MainController sharedController] currentRemote] currentSongRating] != -1.0 )) {
+ NSString *string = nil;
+ switch ((int)([[[MainController sharedController] currentRemote] currentSongRating] * 5)) {
+ case 0:
+ string = [NSString stringWithUTF8String:"☆☆☆☆☆"];
+ break;
+ case 1:
+ string = [NSString stringWithUTF8String:"★☆☆☆☆"];
+ break;
+ case 2:
+ string = [NSString stringWithUTF8String:"★★☆☆☆"];
+ break;
+ case 3:
+ string = [NSString stringWithUTF8String:"★★★☆☆"];
+ break;
+ case 4:
+ string = [NSString stringWithUTF8String:"★★★★☆"];
+ break;
+ case 5:
+ string = [NSString stringWithUTF8String:"★★★★★"];
+ break;
+ }
+ ITDebugLog(@"Add Track Rating (\"%@\") menu item.", string);
+ [menu indentItem:[menu addItemWithTitle:string action:nil keyEquivalent:@""]];
+ }
+ NS_HANDLER
+ [[MainController sharedController] networkError:localException];
+ NS_ENDHANDLER