X-Git-Url: http://git.ithinksw.org/MenuTunes.git/blobdiff_plain/35486a7ded93b3e89a6b03ec1dbe801f3dfe0edc..74d6135e4db4cf9a70994d5bc2062be30311d0f3:/MenuTunes.m diff --git a/MenuTunes.m b/MenuTunes.m index a1121d7..7fa1d43 100755 --- a/MenuTunes.m +++ b/MenuTunes.m @@ -46,17 +46,17 @@ Things to do: currentRemote = [self loadRemote]; [currentRemote begin]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(iTunesTerminated:) name:@"ITMTRemoteAppDidTerminateNotification" object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(iTunesLaunched:) name:@"ITMTRemoteAppDidLaunchNotification" object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(remotePlayerTerminated:) name:@"ITMTRemoteAppDidTerminateNotification" object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(remotePlayerLaunched:) name:@"ITMTRemoteAppDidLaunchNotification" object:nil]; [self registerDefaultsIfNeeded]; menu = [[NSMenu alloc] initWithTitle:@""]; if ([currentRemote isAppRunning]) { - [self iTunesLaunched:nil]; + [self remotePlayerLaunched:nil]; } else { - [self iTunesTerminated:nil]; + [self remotePlayerTerminated:nil]; } statusItem = [[ITStatusItem alloc] initWithStatusBar:[NSStatusBar systemStatusBar] @@ -93,14 +93,14 @@ Things to do: } } -// if ( [remoteArray count] > 0 ) { +// if ( [remoteArray count] > 0 ) { // UNCOMMENT WHEN WE HAVE > 1 PLUGIN // if ( [remoteArray count] > 1 ) { // [remoteArray sortUsingSelector:@selector(sortAlpha:)]; // } // [self loadModuleAccessUI]; //Comment out this line to disable remote visibility // } } - NSLog(@"%@", [remoteArray objectAtIndex:0]); +// NSLog(@"%@", [remoteArray objectAtIndex:0]); //DEBUG return [remoteArray objectAtIndex:0]; } @@ -129,6 +129,7 @@ Things to do: @"", @"Upcoming Songs", @"Playlists", + @"Song Rating", @"", @"PreferencesÉ", @"Quit", @@ -287,6 +288,32 @@ Things to do: [menu addItemWithTitle:@"No Song" action:nil keyEquivalent:@""]; + } else if ([item isEqualToString:@"Song Rating"]) { + NSMenu *ratingSubmenu = [[NSMenu alloc] initWithTitle:@""]; + unichar whiteStar = 'o';//2606; + unichar blackStar = 'x';//2605; + NSString *whiteStarString = [NSString stringWithCharacters:&whiteStar + length:1]; + NSString *blackStarString = [NSString stringWithCharacters:&blackStar + length:1]; + NSString *string = @""; + int i; + + for (i = 0; i < 5; i++) { + string = [string stringByAppendingString:whiteStarString]; + } + 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 = [blackStarString stringByAppendingString:string]; + } + [[menu addItemWithTitle:@"Song Rating" + action:nil + keyEquivalent:@""] setSubmenu:ratingSubmenu]; + [ratingSubmenu autorelease]; } else if ([item isEqualToString:@""]) { [menu addItem:[NSMenuItem separatorItem]]; } @@ -567,7 +594,7 @@ Things to do: - (void)timerUpdate { int playlist = [currentRemote currentPlaylistIndex]; - PlayerState playerState = [currentRemote playerState]; + ITMTRemotePlayerState playerState = [currentRemote playerState]; if ((playlist > 0) || playerState != stopped) { int trackPlayingIndex = [currentRemote currentSongIndex]; @@ -637,7 +664,7 @@ Things to do: } } -- (void)iTunesLaunched:(NSNotification *)note +- (void)remotePlayerLaunched:(NSNotification *)note { isAppRunning = YES; @@ -649,7 +676,7 @@ Things to do: [statusItem setMenu:menu]; //Set the menu back to the main one } -- (void)iTunesTerminated:(NSNotification *)note +- (void)remotePlayerTerminated:(NSNotification *)note { isAppRunning = NO; @@ -704,7 +731,7 @@ Things to do: - (void)playPause:(id)sender { - PlayerState state = [currentRemote playerState]; + ITMTRemotePlayerState state = [currentRemote playerState]; if (state == playing) { [currentRemote pause]; @@ -740,6 +767,11 @@ Things to do: [playPauseMenuItem setTitle:@"Play"]; } +- (void)setSongRating:(id)sender +{ + //[currentRemote setCurrentSongRating:[sender tag]]; +} + // // // Plugin independent selectors