#import "NewMainController.h"
+#import "MenuController.h"
#import "PreferencesController.h"
#import "HotKeyCenter.h"
#import "StatusWindowController.h"
+#import "StatusItemHack.h"
@interface MainController(Private)
- (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
- (id)init
{
if ( ( self = [super init] ) ) {
+ sharedController = self;
+
remoteArray = [[NSMutableArray alloc] initWithCapacity:1];
statusWindowController = [[StatusWindowController alloc] init];
+ menuController = [[MenuController alloc] init];
df = [[NSUserDefaults standardUserDefaults] retain];
[self setLatestSongIdentifier:@"0-0"];
}
[[PreferencesController sharedPrefs] registerDefaults];
}
+ [StatusItemHack install];
statusItem = [[ITStatusItem alloc]
initWithStatusBar:[NSStatusBar systemStatusBar]
withLength:NSSquareStatusItemLength];
*/
}
-/*
+- (void)menuClicked
+{
+ [statusItem setMenu:[menuController menu]];
+ NSLog(@"The menu was clix0r3d, do something!");
+}
+
//
//
// 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) ) {
}
}
-- (void)showPreferences:(id)sender
-{
- [[PreferencesController sharedPrefs] setController:self];
- [[PreferencesController sharedPrefs] showPrefsWindow:self];
-}
-
- (void)closePreferences
{
if ( ( playerRunningState == ITMTRemotePlayerRunning) ) {
[currentRemote halt];
[statusItem release];
[statusWindowController release];
+ [menuController release];
[super dealloc];
}
-@end
+@end
\ No newline at end of file