-//
-// MenuController.m
-// MenuTunes
-//
-// Created by Joseph Spiros on Wed Apr 30 2003.
-// Copyright (c) 2003 iThink Software. All rights reserved.
-//
-
#import "MenuController.h"
#import "MainController.h"
#import "NetworkController.h"
NS_HANDLER
[[MainController sharedController] networkError:localException];
NS_ENDHANDLER
-
+
ITDebugLog(@"Reset menu if required.");
//Kill the old submenu items
[tempItem setTag:MTMenuAboutItem];
[tempItem setTarget:self];
} else if ([nextObject isEqualToString:@"quit"]) {
- if ([[MainController sharedController] blingBling] == NO) {
- ITDebugLog(@"Add \"Register MenuTunes...\" menu item.");
- tempItem = [menu addItemWithTitle:NSLocalizedString(@"register", @"Register MenuTunes...") action:@selector(performMainMenuAction:) keyEquivalent:@""];
- [tempItem setTag:MTMenuRegisterItem];
- [tempItem setTarget:self];
- }
ITDebugLog(@"Add \"Quit\" menu item.");
tempItem = [menu addItemWithTitle:NSLocalizedString(@"quit", @"Quit")
action:@selector(performMainMenuAction:)
keyEquivalent:@""];
[tempItem setSubmenu:_upcomingSongsMenu];
[tempItem setTag:2];
- if (_playingRadio || !_currentPlaylist) {
+ if (_playingRadio || _currentPlaylist < 1) {
[tempItem setEnabled:NO];
}
} else if ([nextObject isEqualToString:@"artists"]) {
tempItem = [menu addItemWithTitle:NSLocalizedString(@"preferences", @"Preferences...") action:@selector(performMainMenuAction:) keyEquivalent:@""];
[tempItem setTag:MTMenuPreferencesItem];
[tempItem setTarget:self];
- if ([[MainController sharedController] blingBling] == NO) {
- ITDebugLog(@"Add \"Register MenuTunes...\" menu item.");
- tempItem = [menu addItemWithTitle:NSLocalizedString(@"register", @"Register MenuTunes...") action:@selector(performMainMenuAction:) keyEquivalent:@""];
- [tempItem setTag:MTMenuRegisterItem];
- [tempItem setTarget:self];
- }
ITDebugLog(@"Add \"Quit\" menu item.");
tempItem = [menu addItemWithTitle:NSLocalizedString(@"quit", @"Quit") action:@selector(performMainMenuAction:) keyEquivalent:@""];
[tempItem setTag:MTMenuQuitItem];
if (_currentPlaylist && !_playingRadio) {
if (numSongs > 0) {
int i;
- for (i = _currentTrack + 1; i <= _currentTrack + numSongsInAdvance; i++) {
- if (i <= numSongs) {
+ for (i = _currentTrack + 1; i <= _currentTrack + numSongsInAdvance && i <= numSongs; i++) {
+ BOOL enabled = YES;
+
+ //Check if the song at this index is enabled for playback. If it isn't, skip over it
+ NS_DURING
+ enabled = [[[MainController sharedController] currentRemote] songEnabledAtIndex:i];
+ NS_HANDLER
+ [[MainController sharedController] networkError:localException];
+ NS_ENDHANDLER
+
+ if (enabled) {
NSString *curSong = nil;
NS_DURING
curSong = [[[MainController sharedController] currentRemote] songTitleAtIndex:i];
[songItem setTag:i];
[songItem setTarget:self];
} else {
- break;
- }
+ numSongsInAdvance++;
+ }
}
}
ITDebugLog(@"Performing Menu Action: Quit");
[[MainController sharedController] quitMenuTunes];
break;
- case MTMenuRegisterItem:
- ITDebugLog(@"Performing Menu Action: Register");
- [[MainController sharedController] blingNow];
- break;
default:
ITDebugLog(@"Performing Menu Action: Unimplemented Menu Item OR Child-bearing Menu Item");
break;