From 9ba1419655d7d247210a4ed2e7a220ddf82d80cb Mon Sep 17 00:00:00 2001 From: Kent Sutherland Date: Wed, 7 May 2003 01:32:13 +0000 Subject: [PATCH] Made MenuController communicate with MainController --- MainController.h | 17 ++++++++- MainController.m | 98 +++++++++++++++++++++++------------------------- MenuController.m | 24 +++++++++--- 3 files changed, 81 insertions(+), 58 deletions(-) diff --git a/MainController.h b/MainController.h index 1b77b1a..3db1655 100755 --- a/MainController.h +++ b/MainController.h @@ -39,7 +39,22 @@ StatusWindowController *statusWindowController; //Shows track info and upcoming songs. NSUserDefaults *df; } - ++ (MainController *)sharedController; + +//Methods called from MenuController by menu items +- (void)playPause; +- (void)nextSong; +- (void)prevSong; +- (void)fastForward; +- (void)rewind; +- (void)selectPlaylistAtIndex:(int)index; +- (void)selectSongAtIndex:(int)index; +- (void)selectSongRating:(int)rating; +- (void)selectEQPresetAtIndex:(int)index; +- (void)showPreferences; +- (void)quitMenuTunes; + +// - (ITMTRemote *)currentRemote; - (void)clearHotKeys; diff --git a/MainController.m b/MainController.m index f0ee9ad..475a23e 100755 --- a/MainController.m +++ b/MainController.m @@ -7,10 +7,19 @@ - (ITMTRemote *)loadRemote; - (void)setupHotKeys; - (void)timerUpdate; +- (void)setLatestSongIdentifier:(NSString *)newIdentifier; +- (void)showCurrentTrackInfo; @end +static MainController *sharedController; + @implementation MainController ++ (MainController *)sharedController +{ + return sharedController; +} + /*************************************************************************/ #pragma mark - #pragma mark INITIALIZATION/DEALLOCATION METHODS @@ -19,6 +28,8 @@ - (id)init { if ( ( self = [super init] ) ) { + sharedController = self; + remoteArray = [[NSMutableArray alloc] initWithCapacity:1]; statusWindowController = [[StatusWindowController alloc] init]; df = [[NSUserDefaults standardUserDefaults] retain]; @@ -161,91 +172,80 @@ */ } -/* // // // Menu Selectors // // -- (void)selectSong:(id)sender -{ - [currentRemote switchToSongAtIndex:[[sender representedObject] intValue]]; -} -*/ -- (void)selectPlaylist:(id)sender -{ - int playlist = [sender tag]; - [currentRemote switchToPlaylistAtIndex:playlist]; -} -/* -- (void)selectEQPreset:(id)sender -{ - int curSet = [currentRemote currentEQPresetIndex]; - int item = [sender tag]; - - [currentRemote switchToEQAtIndex:item]; - [[eqMenu itemAtIndex:curSet - 1] setState:NSOffState]; - [[eqMenu itemAtIndex:item] setState:NSOnState]; -} -*/ -/* -- (void)selectSongRating:(id)sender -{ - int newRating = [sender tag]; -// [[ratingMenu itemAtIndex:lastSongRating] setState:NSOffState]; - [sender setState:NSOnState]; - [currentRemote setCurrentSongRating:(float)newRating / 100.0]; - lastSongRating = newRating / 20; -} -*/ -/* -- (void)playPause:(id)sender +- (void)playPause { ITMTRemotePlayerPlayingState state = [currentRemote playerPlayingState]; if (state == ITMTRemotePlayerPlaying) { [currentRemote pause]; - [playPauseItem setTitle:@"Play"]; } else if ((state == ITMTRemotePlayerForwarding) || (state == ITMTRemotePlayerRewinding)) { [currentRemote pause]; [currentRemote play]; } else { [currentRemote play]; - [playPauseItem setTitle:@"Pause"]; } } -- (void)nextSong:(id)sender +- (void)nextSong { [currentRemote goToNextSong]; } -- (void)prevSong:(id)sender +- (void)prevSong { [currentRemote goToPreviousSong]; } -- (void)fastForward:(id)sender +- (void)fastForward { [currentRemote forward]; - [playPauseItem setTitle:@"Play"]; } -- (void)rewind:(id)sender +- (void)rewind { [currentRemote rewind]; - [playPauseItem setTitle:@"Play"]; } -*/ -// -// -- (void)quitMenuTunes:(id)sender +- (void)selectPlaylistAtIndex:(int)index +{ + [currentRemote switchToPlaylistAtIndex:index]; +} + +- (void)selectSongAtIndex:(int)index +{ + [currentRemote switchToSongAtIndex:index]; +} + +- (void)selectSongRating:(int)rating +{ + [currentRemote setCurrentSongRating:(float)rating / 100.0]; +} + +- (void)selectEQPresetAtIndex:(int)index +{ + [currentRemote switchToEQAtIndex:index]; +} + +- (void)showPreferences +{ + [[PreferencesController sharedPrefs] setController:self]; + [[PreferencesController sharedPrefs] showPrefsWindow:self]; +} + +- (void)quitMenuTunes { [NSApp terminate:self]; } +// +// + - (void)showPlayer:(id)sender { if ( ( playerRunningState == ITMTRemotePlayerRunning) ) { @@ -257,12 +257,6 @@ } } -- (void)showPreferences:(id)sender -{ - [[PreferencesController sharedPrefs] setController:self]; - [[PreferencesController sharedPrefs] showPrefsWindow:self]; -} - - (void)closePreferences { if ( ( playerRunningState == ITMTRemotePlayerRunning) ) { diff --git a/MenuController.m b/MenuController.m index 2212b16..f434ccc 100755 --- a/MenuController.m +++ b/MenuController.m @@ -7,7 +7,7 @@ // #import "MenuController.h" - +#import "MainController.h" @implementation MenuController @@ -32,24 +32,34 @@ { case MTMenuPlayPauseItem: NSLog(@"MenuController: Play/Pause"); + [[MainController sharedController] playPause]; + //We're gonna have to change the Play menu item to Pause here too. break; case MTMenuFastForwardItem: NSLog(@"MenuController: Fast Forward"); + [[MainController sharedController] fastForward]; + //make sure play/pause item says sane through this break; case MTMenuRewindItem: NSLog(@"MenuController: Rewind"); + [[MainController sharedController] rewind]; + //make sure play/pause item says sane through this break; case MTMenuPreviousTrackItem: NSLog(@"MenuController: Previous Track"); + [[MainController sharedController] prevSong]; break; case MTMenuNextTrackItem: NSLog(@"MenuController: Next Track"); + [[MainController sharedController] nextSong]; break; case MTMenuPreferencesItem: NSLog(@"MenuController: Preferences..."); + [[MainController sharedController] showPreferences]; break; case MTMenuQuitItem: NSLog(@"MenuController: Quit"); + [[MainController sharedController] quitMenuTunes]; break; default: NSLog(@"MenuController: Unimplemented Menu Item OR Child-bearing Menu Item"); @@ -57,20 +67,24 @@ } } -- (void)performRatingMenuAction +- (void)performRatingMenuAction:(id)sender { + [[MainController sharedController] selectSongRating:[sender tag]]; } -- (void)performPlaylistMenuAction +- (void)performPlaylistMenuAction:(id)sender { + [[MainController sharedController] selectPlaylistAtIndex:[sender tag]]; } -- (void)performEqualizerMenuAction +- (void)performEqualizerMenuAction:(id)sender { + [[MainController sharedController] selectEQItemAtIndex:[sender tag]] } -- (void)performUpcomingSongsMenuAction +- (void)performUpcomingSongsMenuAction:(id)sender { + [[MainController sharedController] selectSongAtIndex:[sender tag]] } - (void)updateMenu -- 2.20.1