From 3d264b03e4c01c0f2165888dc402cb0f16509768 Mon Sep 17 00:00:00 2001 From: Kent Sutherland Date: Thu, 13 Mar 2003 02:32:38 +0000 Subject: [PATCH] Readded the stupid ratings menu to the nib, since it went poof. Added some more song rating stuff, that might hopefully come close to working when the plugin side does. --- English.lproj/MainMenu.nib/info.nib | 2 +- MenuTunes.h | 1 + MenuTunes.m | 82 ++++++++++++++++++----------- 3 files changed, 54 insertions(+), 31 deletions(-) diff --git a/English.lproj/MainMenu.nib/info.nib b/English.lproj/MainMenu.nib/info.nib index 987f1de..2d71d80 100755 --- a/English.lproj/MainMenu.nib/info.nib +++ b/English.lproj/MainMenu.nib/info.nib @@ -5,7 +5,7 @@ IBEditorPositions 198 - 110 274 101 138 0 0 1152 746 + 106 271 72 120 0 0 1152 746 IBFramework Version 291.0 diff --git a/MenuTunes.h b/MenuTunes.h index 3c5fede..89223ed 100755 --- a/MenuTunes.h +++ b/MenuTunes.h @@ -54,6 +54,7 @@ NSMenuItem *eqItem; NSMenu *eqMenu; + NSMenuItem *songRatingMenuItem; //Song Rating submenu item NSMenuItem *playPauseMenuItem; //Toggle between 'Play' and 'Pause' PreferencesController *prefsController; diff --git a/MenuTunes.m b/MenuTunes.m index 4b8ac85..ccb4b5a 100755 --- a/MenuTunes.m +++ b/MenuTunes.m @@ -201,6 +201,7 @@ playPauseMenuItem = nil; upcomingSongsItem = nil; + songRatingMenuItem = nil; playlistItem = nil; [playlistMenu release]; playlistMenu = nil; @@ -280,35 +281,9 @@ action:nil keyEquivalent:@""]; } else if ([item isEqualToString:@"Song Rating"]) { - /*NSMenu *ratingSubmenu = [[NSMenu alloc] initWithTitle:@""]; - unichar whiteStarChar = 2606; - unichar blackStarChar = 2605; - NSString *whiteStar = [NSString stringWithCharacters:&whiteStarChar - length:1]; - NSString *blackStar = [NSString stringWithCharacters:&blackStarChar - length:1]; - NSData *whiteStarData = [whiteStar dataUsingEncoding:NSUTF8StringEncoding]; - NSData *blackStarData = [blackStar dataUsingEncoding:NSUTF8StringEncoding]; - NSString *string = @""; - int i; - - whiteStar = [[NSString alloc] initWithData:whiteStarData encoding:NSUTF8StringEncoding]; - - for (i = 0; i < 5; i++) { - string = [string stringByAppendingString:whiteStar]; - } - for (i = 0; i < 6; i++) { - NSMenuItem *ratingItem; - ratingItem = [ratingSubmenu addItemWithTitle:string action:@selector(setSongRating:) keyEquivalent:@""]; - [ratingItem setTarget:self]; - [ratingItem setTag:i * 20]; - string = [string substringToIndex:4]; - string = [blackStar stringByAppendingString:string]; - } - [ratingSubmenu autorelease];*/ - [[menu addItemWithTitle:@"Song Rating" + songRatingMenuItem = [menu addItemWithTitle:@"Song Rating" action:nil - keyEquivalent:@""] setSubmenu:ratingMenu]; + keyEquivalent:@""]; } else if ([item isEqualToString:@""]) { [menu addItem:[NSMenuItem separatorItem]]; } @@ -394,6 +369,36 @@ [menu insertItem:menuItem atIndex:trackInfoIndex + 1]; [menuItem release]; } + + if (songRatingMenuItem) { + int rating = (int)[currentRemote currentSongRating] * 10; + int i; + + for (i = 0; i < 5; i++) { + [[ratingMenu itemAtIndex:i] setState:NSOffState]; + } + + switch (rating) { + case 0: + [[ratingMenu itemAtIndex:5] setState:NSOnState]; + break; + case 2: + [[ratingMenu itemAtIndex:4] setState:NSOnState]; + break; + case 4: + [[ratingMenu itemAtIndex:3] setState:NSOnState]; + break; + case 6: + [[ratingMenu itemAtIndex:2] setState:NSOnState]; + break; + case 8: + [[ratingMenu itemAtIndex:1] setState:NSOnState]; + break; + case 10: + [[ratingMenu itemAtIndex:0] setState:NSOnState]; + break; + } + } } if ([defaults boolForKey:@"showName"]) { @@ -409,6 +414,9 @@ [menu removeItemAtIndex:[menu indexOfItemWithTitle:@"No Song"]]; [menu insertItem:menuItem atIndex:trackInfoIndex]; [menuItem release]; + + [songRatingMenuItem setSubmenu:ratingMenu]; + [songRatingMenuItem setEnabled:YES]; } } else if ([menu indexOfItemWithTitle:@"No Song"] == -1) { [menu removeItemAtIndex:trackInfoIndex]; @@ -525,9 +533,14 @@ [eqMenu release]; eqMenu = [[NSMenu alloc] initWithTitle:@""]; - enabledItem = [eqMenu addItemWithTitle:@"EQ Enabled" - action:NULL + enabledItem = [eqMenu addItemWithTitle:@"Disabled" + action:@selector(toggleEqualizer) keyEquivalent:@""]; + + if ([currentRemote equalizerEnabled] == NO) { + [enabledItem setState:NSOnState]; + } + [eqMenu addItem:[NSMenuItem separatorItem]]; for (i = 0; i < [eqPresets count]; i++) { @@ -693,6 +706,9 @@ [upcomingSongsItem setSubmenu:nil]; [upcomingSongsItem setEnabled:NO]; + [songRatingMenuItem setSubmenu:nil]; + [songRatingMenuItem setEnabled:NO]; + menuItem = [[NSMenuItem alloc] initWithTitle:@"No Song" action:nil keyEquivalent:@""]; [menu insertItem:menuItem atIndex:trackInfoIndex]; [menuItem release]; @@ -819,8 +835,14 @@ [playPauseMenuItem setTitle:@"Play"]; } +- (void)toggleEqualizer +{ + [currentRemote setEqualizerEnabled:![currentRemote equalizerEnabled]]; +} + - (IBAction)setSongRating:(id)sender { + NSLog(@"%f", [currentRemote currentSongRating]); NSLog(@"%f", (float)[sender tag] / 100.0); [currentRemote setCurrentSongRating:(float)[sender tag] / 100.0]; } -- 2.20.1