* Original Author : Kent Sutherland <ksuther@ithinksw.com>
* Responsibility : Kent Sutherland <ksuther@ithinksw.com>
*
- * Copyright (c) 2002 iThink Software.
+ * Copyright (c) 2002-2003 iThink Software.
* All Rights Reserved
*
*/
#import <Cocoa/Cocoa.h>
#import <Carbon/Carbon.h>
+#import <ITKit/ITKit.h>
+#import <ITFoundation/ITFoundation.h>
+#import <ITMTRemote/ITMTRemote.h>
+#import <StatusWindow.h>
//@class MenuTunesView;
-@class PreferencesController, StatusWindowController;
+@class PreferencesController, StatusWindow;
@interface MenuTunes : NSObject
{
- NSStatusItem *statusItem;
- NSMenu *menu;
-// MenuTunesView *view;
- ComponentInstance asComponent;
+ IBOutlet NSMenu *ratingMenu;
+
+ ITStatusItem *statusItem;
+ NSMenu *menu;
+ ITMTRemote *currentRemote;
+ NSMutableArray *remoteArray;
//Used in updating the menu automatically
NSTimer *refreshTimer;
- int curTrackIndex;
- int trackInfoIndex;
+ int trackInfoIndex;
+ int lastSongIndex;
+ int lastPlaylistIndex;
+ BOOL isPlayingRadio;
- ProcessSerialNumber iTunesPSN;
- bool didHaveAlbumName; //Helper variable for creating the menu
+ ITMTRemotePlayerRunningState isAppRunning;
+ BOOL didHaveAlbumName;
+ BOOL didHaveArtistName; //Helper variable for creating the menu
//For upcoming songs
NSMenuItem *upcomingSongsItem;
- NSMenu *upcomingSongsMenu;
+ NSMenu *upcomingSongsMenu;
//For playlist selection
NSMenuItem *playlistItem;
- NSMenu *playlistMenu;
+ NSMenu *playlistMenu;
//For EQ sets
NSMenuItem *eqItem;
- NSMenu *eqMenu;
+ NSMenu *eqMenu;
+ NSMenuItem *songRatingMenuItem; //Song Rating submenu item
NSMenuItem *playPauseMenuItem; //Toggle between 'Play' and 'Pause'
PreferencesController *prefsController;
- StatusWindowController *statusController; //Shows track info and upcoming songs.
+ StatusWindow *statusWindow; //Shows track info and upcoming songs.
}
+- (void)remotePlayerLaunched:(NSNotification *)note;
+- (void)remotePlayerTerminated:(NSNotification *)note;
+
+- (void)registerDefaultsIfNeeded;
- (void)rebuildMenu;
+
+- (void)runTimerInNewThread;
+
+- (IBAction)setSongRating:(id)sender;
+
- (void)clearHotKeys;
-- (ProcessSerialNumber)iTunesPSN;
- (void)closePreferences;
@end