6 * Original Author : Matthew Judy <mjudy@ithinksw.com>
7 * Responsibility : Matthew Judy <mjudy@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 "MTBlingController.h"
22 @class StatusWindowController, MenuController, NetworkController;
24 @interface MainController : NSObject
26 ITStatusItem *statusItem;
27 NSMutableArray *remoteArray;
28 ITMTRemote *currentRemote;
30 ITMTRemotePlayerRunningState playerRunningState;
31 ITMTRemotePlayerPlaylistClass latestPlaylistClass;
33 //Used in updating the menu automatically
34 NSTimer *refreshTimer;
35 NSString *_latestSongIdentifier;
37 StatusWindowController *statusWindowController; //Shows status windows
38 MenuController *menuController;
39 NetworkController *networkController;
42 MTBlingController *bling;
43 NSTimer *registerTimer;
47 + (MainController *)sharedController;
51 //Methods called from MenuController by menu items
52 - (NSDate*)getBlingTime;
62 - (void)selectPlaylistAtIndex:(int)index;
63 - (void)selectSongAtIndex:(int)index;
64 - (void)selectSongRating:(int)rating;
65 - (void)selectEQPresetAtIndex:(int)index;
67 - (void)showPreferences;
68 - (void)quitMenuTunes;
72 - (void)setServerStatus:(BOOL)newStatus;
73 - (int)connectToServer;
74 - (BOOL)disconnectFromServer;
75 - (void)networkError:(NSException *)exception;
79 - (ITMTRemote *)currentRemote;
82 - (void)closePreferences;