+ ITDebugLog(@"Done Building \"Playlists\" menu");
+ return playlistsMenu;
+}*/
+
+
+- (NSMenu *)playlistsMenu
+{
+ NSMenu *playlistsMenu = [[NSMenu alloc] initWithTitle:@""];
+ NSArray *playlists;
+ NSMenuItem *tempItem;
+ ITMTRemotePlayerSource source = [[[MainController sharedController] currentRemote] currentSource];
+ int i, j;
+ NS_DURING
+ playlists = [[[MainController sharedController] currentRemote] playlists];
+ NS_HANDLER
+ [[MainController sharedController] networkError:localException];
+ NS_ENDHANDLER
+ ITDebugLog(@"Building \"Playlists\" menu.");
+ {
+ NSArray *curPlaylist = [playlists objectAtIndex:0];
+ NSString *name = [curPlaylist objectAtIndex:0];
+ ITDebugLog(@"Adding main source: %@", name);
+ for (i = 2; i < [curPlaylist count]; i++) {
+ ITDebugLog(@"Adding playlist: %@", [curPlaylist objectAtIndex:i]);
+ tempItem = [playlistsMenu addItemWithTitle:[curPlaylist objectAtIndex:i] action:@selector(performPlaylistMenuAction:) keyEquivalent:@""];
+ [tempItem setTag:i];
+ [tempItem setTarget:self];
+ }
+ }
+
+ if ( (source == ITMTRemoteRadioSource) || ([playlists count] - 2 > 0) ) {
+ [playlistsMenu addItem:[NSMenuItem separatorItem]];
+ }
+
+ if (source == ITMTRemoteRadioSource) {
+ [[playlistsMenu addItemWithTitle:NSLocalizedString(@"radio", @"Radio") action:@selector(performPlaylistMenuAction:) keyEquivalent:@""] setState:NSOnState];
+ }
+
+ for (i = 2; i < [playlists count]; i++) {
+ NSArray *curPlaylist = [playlists objectAtIndex:i];
+ NSString *name = [curPlaylist objectAtIndex:0];
+ NSMenu *submenu = [[NSMenu alloc] init];
+ ITDebugLog(@"Adding source: %@", name);
+ for (j = 2; j < [curPlaylist count]; j++) {
+ ITDebugLog(@"Adding playlist: %@", [curPlaylist objectAtIndex:j]);
+ tempItem = [submenu addItemWithTitle:[curPlaylist objectAtIndex:j] action:@selector(performPlaylistMenuAction:) keyEquivalent:@""];
+ [tempItem setTag:(i * 1000) + j];
+ [tempItem setTarget:self];
+ if ([[curPlaylist objectAtIndex:i] intValue] == ITMTRemoteiPodSource) {
+ [tempItem setEnabled:NO];
+ }
+ }
+ [[playlistsMenu addItemWithTitle:name action:NULL keyEquivalent:@""] setSubmenu:[submenu autorelease]];
+ }
+
+ if ( (source == ITMTRemoteSharedLibrarySource) || (source == ITMTRemoteiPodSource) || (source == ITMTRemoteGenericDeviceSource) || (source == ITMTRemoteCDSource) ){
+ tempItem = [playlistsMenu itemAtIndex:(int)[[[MainController sharedController] currentRemote] currentSourceIndex] + [playlistsMenu numberOfItems] - 5];
+ [tempItem setState:NSOnState];
+ [[[tempItem submenu] itemAtIndex:_currentPlaylist - 1] setState:NSOnState];
+ } else if (source == ITMTRemoteLibrarySource && _currentPlaylist) {
+ [[playlistsMenu itemAtIndex:_currentPlaylist - 1] setState:NSOnState];
+ }
+ ITDebugLog(@"Done Building \"Playlists\" menu");