-}
-
-
-/*************************************************************************/
-#pragma mark -
-#pragma mark MENU BUILDING METHODS
-/*************************************************************************/
-
-- (NSMenu *)menu
-{
- NSMenu *theMenu = [[[NSMenu alloc] initWithTitle:@""] autorelease];
-
- [theMenu addItem:[self playlistMenuItem]];
- [theMenu addItem:[self upcomingSongsMenuItem]];
- [theMenu addItem:[self ratingMenuItem]];
-
- return theMenu;
-}
-
-- (NSMenu *)menuForNoPlayer
-{
- return nil;
-}
-
-- (NSMenuItem *)playlistMenuItem
-{
- NSMenuItem *item = [[[NSMenuItem alloc] initWithTitle:@"Playlists"
- action:nil
- keyEquivalent:@""] autorelease];
- NSMenu *submenu = [[[NSMenu alloc] initWithTitle:@""] autorelease];
-
- int currentPlaylist = [currentRemote currentPlaylistIndex];
- NSArray *playlists = [currentRemote playlists];
- NSEnumerator *playlistEnum = [playlists objectEnumerator];
- int playlistTag = 1;
- id aPlaylist;
-
- [item setSubmenu:submenu];
- [submenu setAutoenablesItems:NO];
-
- while ( (aPlaylist = [playlistEnum nextObject]) ) {
- NSMenuItem *playlistItem = [[[NSMenuItem alloc] initWithTitle:aPlaylist
- action:@selector(selectPlaylist:)
- keyEquivalent:@""] autorelease];
- [playlistItem setTag:playlistTag];
- [playlistItem setTarget:self];
- playlistTag++;
- [submenu addItem:playlistItem];
- }
-
- if ( (! [self radioIsPlaying]) && currentPlaylist) {
- [[submenu itemAtIndex:(currentPlaylist - 1)] setState:NSOnState];
- }
-
- return item;
-}
-
-- (NSMenuItem *)upcomingSongsMenuItem
-{
- NSMenuItem *item = [[[NSMenuItem alloc] initWithTitle:@"Upcoming Songs"
- action:nil
- keyEquivalent:@""] autorelease];
- NSMenu *submenu = [[[NSMenu alloc] initWithTitle:@""] autorelease];
-
- int curIndex = [currentRemote currentPlaylistIndex];
- int numSongs = [currentRemote numberOfSongsInPlaylistAtIndex:curIndex];
- int numSongsInAdvance = [df integerForKey:@"SongsInAdvance"];
-
- [item setSubmenu:submenu];
-
- if ( [self radioIsPlaying] ) {
- [submenu addItemWithTitle:@"No Upcoming Songs..." action:nil keyEquivalent:@""];
- [submenu addItemWithTitle:@"Playing Radio Stream" action:nil keyEquivalent:@""];
- } else {
- if ( ! (numSongs > 0) ) {
- [submenu addItemWithTitle:@"No Songs in Playlist" action:nil keyEquivalent:@""];
- } else {
- int curTrack = [currentRemote currentSongIndex];
- int i;
-
- for (i = curTrack + 1; ( (i <= curTrack + numSongsInAdvance) && (i <= numSongs) ); i++) {
-
- NSString *curSong = [currentRemote songTitleAtIndex:i];
- NSMenuItem *songItem = [[[NSMenuItem alloc] initWithTitle:curSong
- action:@selector(selectSong:)
- keyEquivalent:@""] autorelease];
- [songItem setRepresentedObject:[NSNumber numberWithInt:i]];
- [submenu addItem:songItem];
- }
- }
- }
-
- return item;
-}
-
-- (NSMenuItem *)ratingMenuItem
-{
- NSMenuItem *item = [[[NSMenuItem alloc] initWithTitle:@"Rating"
- action:nil
- keyEquivalent:@""] autorelease];
- NSMenu *submenu = [[[NSMenu alloc] initWithTitle:@""] autorelease];
-
- [item setSubmenu:submenu];
-
- [submenu addItemWithTitle:[NSString stringWithUTF8String:"☆☆☆☆☆"] action:nil keyEquivalent:@""];
- [submenu addItemWithTitle:[NSString stringWithUTF8String:"★☆☆☆☆"] action:nil keyEquivalent:@""];
- [submenu addItemWithTitle:[NSString stringWithUTF8String:"★★☆☆☆"] action:nil keyEquivalent:@""];
- [submenu addItemWithTitle:[NSString stringWithUTF8String:"★★★☆☆"] action:nil keyEquivalent:@""];
- [submenu addItemWithTitle:[NSString stringWithUTF8String:"★★★★☆"] action:nil keyEquivalent:@""];
- [submenu addItemWithTitle:[NSString stringWithUTF8String:"★★★★★"] action:nil keyEquivalent:@""];
-
- if ( ! ( [self radioIsPlaying] || [self songIsPlaying] ) ) {
-
- NSEnumerator *itemEnum;
- id anItem;
- int itemTag = 0;
- SEL itemSelector = @selector(selectSongRating:);
-
- itemEnum = [[submenu itemArray] objectEnumerator];
- while ( (anItem = [itemEnum nextObject]) ) {
- [anItem setAction:itemSelector];
- [anItem setTag:itemTag];
- itemTag += 20;
- }
- }
-
- return item;
-}
-
-- (NSMenuItem *)eqMenuItem
-{
- NSMenuItem *item = [[[NSMenuItem alloc] initWithTitle:@"Equalizer"
- action:nil
- keyEquivalent:@""] autorelease];
- NSMenu *submenu = [[[NSMenu alloc] initWithTitle:@""] autorelease];
-
- NSArray *eqPresets = [currentRemote eqPresets];
- NSEnumerator *eqEnum = [eqPresets objectEnumerator];
- int eqTag = 0;
- id anEq;
-
- [item setSubmenu:submenu];
-
- while ( ( anEq = [eqEnum nextObject]) ) {
- NSMenuItem *eqItem = [[[NSMenuItem alloc] initWithTitle:anEq
- action:@selector(selectEQPreset:)
- keyEquivalent:@""] autorelease];
- [eqItem setTag:eqTag];
- eqTag++;
- [submenu addItem:eqItem];
- }
-
- [[submenu itemAtIndex:([currentRemote currentEQPresetIndex] - 1)] setState:NSOnState];
-}