X-Git-Url: http://git.ithinksw.org/MenuTunes.git/blobdiff_plain/1713069f5f30ae6831ecf69ea7ddb0d52ecbeeff..8c8ad0b57aee475a9b03939aa932d96610587c25:/MenuTunes.m?ds=sidebyside diff --git a/MenuTunes.m b/MenuTunes.m index 3718e55..d03da70 100755 --- a/MenuTunes.m +++ b/MenuTunes.m @@ -10,7 +10,7 @@ Things to do: #import "MenuTunes.h" #import "PreferencesController.h" #import "HotKeyCenter.h" -#import "StatusWindowController.h" +#import "StatusWindow.h" @interface MenuTunes(Private) - (ITMTRemote *)loadRemote; @@ -36,6 +36,7 @@ Things to do: { if ( ( self = [super init] ) ) { remoteArray = [[NSMutableArray alloc] initWithCapacity:1]; + statusWindow = [StatusWindow sharedWindow]; } return self; } @@ -53,17 +54,14 @@ Things to do: menu = [[NSMenu alloc] initWithTitle:@""]; isAppRunning = [currentRemote isAppRunning]; - if (isAppRunning) - { + if (isAppRunning) { [self rebuildMenu]; refreshTimer = [NSTimer scheduledTimerWithTimeInterval:3.5 target:self selector:@selector(timerUpdate) userInfo:nil repeats:YES]; - } - else - { + } else { menu = [[NSMenu alloc] initWithTitle:@""]; [[menu addItemWithTitle:@"Open iTunes" action:@selector(openiTunes:) keyEquivalent:@""] setTarget:self]; [[menu addItemWithTitle:@"Preferences" action:@selector(showPreferences:) keyEquivalent:@""] setTarget:self]; @@ -126,7 +124,7 @@ Things to do: { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; if (![defaults objectForKey:@"menu"]) { - bool found = NO; + BOOL found = NO; NSMutableDictionary *loginwindow; NSMutableArray *loginarray; int i; @@ -236,8 +234,7 @@ Things to do: keyEquivalent:@""]; [playPauseMenuItem setTarget:self]; - if (tempCombo) - { + if (tempCombo) { [self setKeyEquivalentForCode:[tempCombo keyCode] andModifiers:[tempCombo modifiers] onItem:playPauseMenuItem]; [tempCombo release]; @@ -249,8 +246,7 @@ Things to do: keyEquivalent:@""]; [nextTrack setTarget:self]; - if (tempCombo) - { + if (tempCombo) { [self setKeyEquivalentForCode:[tempCombo keyCode] andModifiers:[tempCombo modifiers] onItem:nextTrack]; [tempCombo release]; @@ -262,8 +258,7 @@ Things to do: keyEquivalent:@""]; [prevTrack setTarget:self]; - if (tempCombo) - { + if (tempCombo) { [self setKeyEquivalentForCode:[tempCombo keyCode] andModifiers:[tempCombo modifiers] onItem:prevTrack]; [tempCombo release]; @@ -334,8 +329,7 @@ Things to do: [self rebuildEQPresetsMenu]; } - if (trackInfoIndex > -1) - { + if (trackInfoIndex > -1) { NSString *curSongName, *curAlbumName = @"", *curArtistName = @""; curSongName = [currentRemote currentSongTitle]; @@ -444,6 +438,7 @@ Things to do: int curIndex = [currentRemote currentPlaylistIndex]; int numSongs = [currentRemote numberOfSongsInPlaylistAtIndex:curIndex]; int numSongsInAdvance = [[NSUserDefaults standardUserDefaults] integerForKey:@"SongsInAdvance"]; + if (!isPlayingRadio) { if (numSongs > 0) { int curTrack = [currentRemote currentSongIndex]; @@ -460,7 +455,7 @@ Things to do: NSMenuItem *songItem; songItem = [[NSMenuItem alloc] initWithTitle:curSong action:@selector(playTrack:) keyEquivalent:@""]; [songItem setTarget:self]; - [songItem setRepresentedObject:[NSNumber numberWithInt:i]]; + [songItem setRepresentedObject:[NSNumber numberWithInt:i + 1]]; [upcomingSongsMenu addItem:songItem]; [songItem release]; } else { @@ -479,8 +474,7 @@ Things to do: NSArray *playlists = [currentRemote playlists]; int i, curPlaylist = [currentRemote currentPlaylistIndex]; - if (isPlayingRadio) - { + if (isPlayingRadio) { curPlaylist = 0; } if (playlistMenu && ([playlists count] == [playlistMenu numberOfItems])) @@ -494,7 +488,7 @@ Things to do: NSMenuItem *tempItem; tempItem = [[NSMenuItem alloc] initWithTitle:playlistName action:@selector(selectPlaylist:) keyEquivalent:@""]; [tempItem setTarget:self]; - [tempItem setRepresentedObject:[NSNumber numberWithInt:i]]; + [tempItem setRepresentedObject:[NSNumber numberWithInt:i + 1]]; [playlistMenu addItem:tempItem]; [tempItem release]; } @@ -520,11 +514,13 @@ Things to do: for (i = 0; i < [eqPresets count]; i++) { NSString *setName = [eqPresets objectAtIndex:i]; NSMenuItem *tempItem; + if (setName) { tempItem = [[NSMenuItem alloc] initWithTitle:setName action:@selector(selectEQPreset:) keyEquivalent:@""]; [tempItem setTarget:self]; [tempItem setRepresentedObject:[NSNumber numberWithInt:i]]; [eqMenu addItem:tempItem]; [tempItem release]; + } } [eqItem setSubmenu:eqMenu]; @@ -578,12 +574,13 @@ Things to do: //Called when the timer fires. - (void)timerUpdate { + NSLog(@"%i", [currentRemote playerState]); if ([currentRemote playerState] != stopped) { int trackPlayingIndex = [currentRemote currentSongIndex]; int playlist = [currentRemote currentPlaylistIndex]; if (trackPlayingIndex != lastSongIndex) { - bool wasPlayingRadio = isPlayingRadio; + BOOL wasPlayingRadio = isPlayingRadio; isPlayingRadio = [[currentRemote classOfPlaylistAtIndex:playlist] isEqualToString:@"radio tuner playlist"]; if (isPlayingRadio && !wasPlayingRadio) { int i; @@ -597,18 +594,16 @@ Things to do: [menu insertItem:temp atIndex:trackInfoIndex + 1]; [temp release]; } + [self updateMenu]; lastSongIndex = trackPlayingIndex; - } - else - { + } else { if (playlist != [currentRemote currentPlaylistIndex]) { - bool wasPlayingRadio = isPlayingRadio; + BOOL wasPlayingRadio = isPlayingRadio; isPlayingRadio = [[currentRemote classOfPlaylistAtIndex:playlist] isEqualToString:@"radio tuner playlist"]; if (isPlayingRadio && !wasPlayingRadio) { int i; - for (i = 0; i < [playlistMenu numberOfItems]; i++) - { + for (i = 0; i < [playlistMenu numberOfItems]; i++) { [[playlistMenu itemAtIndex:i] setState:NSOffState]; } } @@ -774,7 +769,7 @@ Things to do: - (void)showCurrentTrackInfo { NSString *trackName = [currentRemote currentSongTitle]; - if (!statusController && [trackName length]) { + if (!statusWindow && [trackName length]) { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSString *stringToShow = @""; @@ -814,8 +809,7 @@ Things to do: } } - statusController = [[StatusWindowController alloc] init]; - [statusController setTrackInfo:stringToShow]; + [statusWindow setText:stringToShow]; [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(fadeAndCloseStatusWindow) @@ -827,7 +821,7 @@ Things to do: - (void)showUpcomingSongs { int curPlaylist = [currentRemote currentPlaylistIndex]; - if (!statusController) { + if (!statusWindow) { int numSongs = [currentRemote numberOfSongsInPlaylistAtIndex:curPlaylist]; if (numSongs > 0) { @@ -836,7 +830,7 @@ Things to do: int i; NSString *songs = @""; - statusController = [[StatusWindowController alloc] init]; + statusWindow = [ITTransientStatusWindow sharedWindow]; for (i = curTrack + 1; i <= curTrack + numSongsInAdvance; i++) { if (i <= numSongs) { NSString *curSong = [currentRemote songTitleAtIndex:i]; @@ -844,7 +838,7 @@ Things to do: songs = [songs stringByAppendingString:@"\n"]; } } - [statusController setUpcomingSongs:songs]; + [statusWindow setText:songs]; [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(fadeAndCloseStatusWindow) @@ -856,9 +850,7 @@ Things to do: - (void)fadeAndCloseStatusWindow { - [statusController fadeWindowOut]; - [statusController release]; - statusController = nil; + [statusWindow orderOut:self]; } - (void)setKeyEquivalentForCode:(short)code andModifiers:(long)modifiers @@ -875,10 +867,8 @@ Things to do: { shiftKey, NSShiftKeyMask }, }; - for (i = 0; i < 6; i++) - { - if (modifiers & carbonToCocoa[i][0]) - { + for (i = 0; i < 6; i++) { + if (modifiers & carbonToCocoa[i][0]) { cocoaModifiers += carbonToCocoa[i][1]; } } @@ -1069,4 +1059,4 @@ Things to do: [super dealloc]; } -@end \ No newline at end of file +@end