Checking in MenuTunes changes and adding plugin loading for Kent. Also requires...
[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 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
21
22 //@class MenuTunesView;
23 @class PreferencesController, StatusWindowController;
24
25 @interface MenuTunes : NSObject
26 {
27     ITStatusItem *statusItem;
28     NSMenu *menu;
29     ComponentInstance asComponent;
30     ITMTRemote *currentRemote;
31     NSMutableArray *remoteArray;
32     
33     //Used in updating the menu automatically
34     NSTimer *refreshTimer;
35     int curTrackIndex, curPlaylistIndex;
36     int trackInfoIndex;
37     bool isPlayingRadio;
38     
39     ProcessSerialNumber iTunesPSN;
40     bool didHaveAlbumName, didHaveArtistName; //Helper variable for creating the menu
41     
42     //For upcoming songs
43     NSMenuItem *upcomingSongsItem;
44     NSMenu *upcomingSongsMenu;
45     
46     //For playlist selection
47     NSMenuItem *playlistItem;
48     NSMenu *playlistMenu;
49     
50     //For EQ sets
51     NSMenuItem *eqItem;
52     NSMenu *eqMenu;
53     
54     NSMenuItem *playPauseMenuItem; //Toggle between 'Play' and 'Pause'
55     
56     PreferencesController *prefsController;
57     StatusWindowController *statusController; //Shows track info and upcoming songs.
58 }
59 - (void)registerDefaultsIfNeeded;
60 - (void)rebuildMenu;
61 - (void)clearHotKeys;
62 - (ProcessSerialNumber)iTunesPSN;
63 - (void)closePreferences;
64
65 @end