Adding methods for Equalizer enabled nonsense to the iTunes remote,
[MenuTunes.git] / MenuTunes.h
1 /*
2  *      MenuTunes
3  *  MenuTunes
4  *    App Controller Class
5  *
6  *  Original Author : Kent Sutherland <ksuther@ithinksw.com>
7  *   Responsibility : Kent Sutherland <ksuther@ithinksw.com>
8  *
9  *  Copyright (c) 2002-2003 iThink Software.
10  *  All Rights Reserved
11  *
12  */
13
14
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>
21
22 //@class MenuTunesView;
23 @class PreferencesController, StatusWindow;
24
25 @interface MenuTunes : NSObject
26 {
27     IBOutlet NSMenu *ratingMenu;
28     
29     ITStatusItem   *statusItem;
30     NSMenu         *menu;
31     ITMTRemote     *currentRemote;
32     NSMutableArray *remoteArray;
33     
34     //Used in updating the menu automatically
35     NSTimer *refreshTimer;
36     int      trackInfoIndex;
37     int      lastSongIndex;
38     int      lastPlaylistIndex;
39     BOOL     isPlayingRadio;
40     
41     ITMTRemotePlayerRunningStatus isAppRunning;
42     BOOL didHaveAlbumName;
43     BOOL didHaveArtistName; //Helper variable for creating the menu
44     
45     //For upcoming songs
46     NSMenuItem *upcomingSongsItem;
47     NSMenu     *upcomingSongsMenu;
48     
49     //For playlist selection
50     NSMenuItem *playlistItem;
51     NSMenu     *playlistMenu;
52     
53     //For EQ sets
54     NSMenuItem *eqItem;
55     NSMenu     *eqMenu;
56     
57     NSMenuItem *songRatingMenuItem; //Song Rating submenu item
58     NSMenuItem *playPauseMenuItem; //Toggle between 'Play' and 'Pause'
59     
60     PreferencesController *prefsController;
61     StatusWindow *statusWindow; //Shows track info and upcoming songs.
62 }
63
64 - (void)remotePlayerLaunched:(NSNotification *)note;
65 - (void)remotePlayerTerminated:(NSNotification *)note;
66
67 - (void)registerDefaultsIfNeeded;
68 - (void)rebuildMenu;
69
70 - (void)runTimerInNewThread;
71
72 - (IBAction)setSongRating:(id)sender;
73
74 - (void)clearHotKeys;
75 - (void)closePreferences;
76
77 @end