6 * Original Author : Kent Sutherland <ksuther@ithinksw.com>
7 * Responsibility : Kent Sutherland <ksuther@ithinksw.com>
9 * Copyright (c) 2002-2003 iThink Software.
15 #import <Cocoa/Cocoa.h>
16 #import <Carbon/Carbon.h>
17 #import <ITKit/ITKit.h>
18 #import <ITFoundation/ITFoundation.h>
19 #import <ITMTRemote/ITMTRemote.h>
20 #import <StatusWindow.h>
22 //@class MenuTunesView;
23 @class PreferencesController, StatusWindow;
25 @interface MenuTunes : NSObject
27 IBOutlet NSMenu *ratingMenu;
29 ITStatusItem *statusItem;
31 ITMTRemote *currentRemote;
32 NSMutableArray *remoteArray;
34 //Used in updating the menu automatically
35 NSTimer *refreshTimer;
38 int lastPlaylistIndex;
41 ITMTRemotePlayerRunningStatus isAppRunning;
42 BOOL didHaveAlbumName;
43 BOOL didHaveArtistName; //Helper variable for creating the menu
46 NSMenuItem *upcomingSongsItem;
47 NSMenu *upcomingSongsMenu;
49 //For playlist selection
50 NSMenuItem *playlistItem;
57 NSMenuItem *songRatingMenuItem; //Song Rating submenu item
58 NSMenuItem *playPauseMenuItem; //Toggle between 'Play' and 'Pause'
60 PreferencesController *prefsController;
61 StatusWindow *statusWindow; //Shows track info and upcoming songs.
64 - (void)remotePlayerLaunched:(NSNotification *)note;
65 - (void)remotePlayerTerminated:(NSNotification *)note;
67 - (void)registerDefaultsIfNeeded;
70 - (void)runTimerInNewThread;
72 - (IBAction)setSongRating:(id)sender;
75 - (void)closePreferences;