Merge branch 'master' of git://github.com/ksuther/MenuTunes
[MenuTunes.git] / StatusWindowController.h
1 /*
2  *      MenuTunes
3  *      StatusWindowController.h
4  *
5  *      Abstraction layer between MainController and StatusWindow.
6  *
7  *      Copyright (c) 2003 iThink Software
8  *
9  */
10
11 #import <Cocoa/Cocoa.h>
12 #import "ITMTRemote.h"
13 #import "StatusWindow.h"
14
15
16 typedef enum {
17     StatusWindowRepeatNone = -1,
18     StatusWindowRepeatGroup,
19     StatusWindowRepeatTrack
20 } StatusWindowRepeatMode;
21
22 typedef enum {
23         StatusWindowNoType = -1,
24         StatusWindowTrackInfoType,
25         StatusWindowAlbumArtType,
26         StatusWindowUpcomingSongsType,
27         StatusWindowVolumeType,
28         StatusWindowRatingType,
29         StatusWindowRepeatType,
30         StatusWindowShuffleType,
31         StatusWindowShufflabilityType,
32         StatusWindowSetupType,
33         StatusWindowNetworkType,
34         StatusWindowPreferencesType,
35         StatusWindowDebugType
36 } StatusWindowType;
37
38 @interface StatusWindowController : NSObject {
39     StatusWindow   *_window;
40     NSUserDefaults *df;
41         NSRange _timeRange;
42         StatusWindowType _currentType;
43 }
44
45 + (StatusWindowController *)sharedController;
46
47 - (void)showUpcomingSongsWindowWithTitles:(NSArray *)titleStrings;
48
49 - (void)showVolumeWindowWithLevel:(float)level;
50 - (void)showRatingWindowWithRating:(float)rating;
51 - (void)showShuffleWindow:(BOOL)shuffle;
52 - (void)showRepeatWindowWithMode:(StatusWindowRepeatMode)mode;
53 - (void)showSongShufflabilityWindow:(BOOL)shufflable;
54 - (void)showSetupQueryWindow;
55 - (void)showReconnectQueryWindow;
56 - (void)showNetworkErrorQueryWindow;
57 - (void)showPreferencesUpdateWindow;
58 - (void)showDebugModeEnabledWindow;
59
60 - (void)showAlbumArtWindowWithImage:(NSImage *)image;
61 - (void)showAlbumArtWindowWithErrorText:(NSString *)string;
62 - (void)showSongInfoWindowWithSource:(ITMTRemotePlayerSource)source
63                                title:            (NSString *)title
64                                album:            (NSString *)album
65                               artist:            (NSString *)artist
66                             composer:            (NSString *)composer
67                                 time:            (NSString *)time  // FLOW: Should probably be NSDate or something.
68                                track:            (NSString *)track
69                               rating:                   (int)rating
70                            playCount:                   (int)playCount
71                                image:             (NSImage *)art;
72
73 - (StatusWindowType)currentStatusWindowType;
74 - (void)updateTime:(NSString *)time;
75
76 @end