1 /****************************************
2 ITMTRemote 1.0 (MenuTunes Remotes)
6 Joseph Spiros <joseph.spiros@ithinksw.com>
8 Copyright (c) 2002 - 2003 by iThink Software.
10 ****************************************/
12 #import <Cocoa/Cocoa.h>
17 } ITMTGenericProperty;
20 ITMTRemoteNameProperty,
21 ITMTRemoteImageProperty,
22 ITMTRemoteAuthorProperty,
23 ITMTRemoteDescriptionProperty,
24 ITMTRemoteURLProperty,
25 ITMTRemoteCopyrightProperty,
26 ITMTRemoteActivationStringProperty,
27 ITMTRemoteDeactivationStringProperty
47 @typedef ITMTPlayerStyle
48 @constant ITMTSinglePlayerStyle Like iTunes, One player controls all available songs.
49 @constant ITMTMultiplePlayerStyle Like Audion, Multiple players control multiple playlists.
50 @constant ITMTSinglePlayerSinglePlaylistStyle Like *Amp, XMMS. Not recommended, but instead, developers are urged to use ITMTSinglePlayerStyle with emulated support for multiple playlists.
53 ITMTSinglePlayerStyle,
54 ITMTMultiplePlayerStyle,
55 ITMTSinglePlayerSinglePlaylistStyle
59 ITMT32HzEqualizerBandLevel,
60 ITMT64HzEqualizerBandLevel,
61 ITMT125HzEqualizerBandLevel,
62 ITMT250HzEqualizerBandLevel,
63 ITMT500HzEqualizerBandLevel,
64 ITMT1kHzEqualizerBandLevel,
65 ITMT2kHzEqualizerBandLevel,
66 ITMT4kHzEqualizerBandLevel,
67 ITMT8kHzEqualizerBandLevel,
68 ITMT16kHzEqualizerBandLevel,
69 ITMTEqualizerPreampLevel
73 ITMTTrackStopped = -1,
86 @class ITMTRemote, ITMTPlayer, ITMTPlaylist, ITMTTrack, ITMTEqualizer;
91 - (id)valueOfProperty:(ITMTRemoteProperty)property;
93 - (NSDictionary *)propertiesAndValues;
95 - (ITMTPlayerStyle)playerStyle;
100 - (ITMTPlayer *)currentPlayer;
101 - (BOOL)selectPlayer:(ITMTPlayer *)player;
102 - (NSArray *)players;
105 @interface ITMTRemote : NSObject <ITMTRemote>
110 @abstract Object representation for a controlled player.
111 @discussion Object representation for a controlled player. Players can be defined as things that control playlist(s) objects, a pool of track objects, and possibly, equalizer objects.
118 - (BOOL)setValue:(id)value forProperty:(ITMTGenericProperty)property;
119 - (id)valueOfProperty:(ITMTGenericProperty)property;
120 - (NSDictionary *)propertiesAndValues;
122 - (ITMTRemote *)remote;
124 - (ITMTPlaylist *)currentPlaylist;
125 - (BOOL)selectPlaylist:(ITMTPlaylist *)playlist;
126 - (ITMTTrack *)currentTrack;
127 - (BOOL)selectTrack:(ITMTTrack *)track;
128 - (ITMTEqualizer *)currentEqualizer;
129 - (BOOL)selectEqualizer:(ITMTEqualizer *)equalizer;
131 - (NSArray *)playlists;
134 - (ITMTPlaylist *)libraryPlaylist;
136 - (NSArray *)equalizers;
138 - (ITMTRepeatMode)repeatMode;
139 - (BOOL)setRepeatMode:(ITMTRepeatMode)repeatMode;
141 - (BOOL)shuffleEnabled;
142 - (BOOL)enableShuffle:(BOOL)shuffle;
145 @interface ITMTPlayer : NSObject <ITMTPlayer>
148 @protocol ITMTPlaylist
149 - (BOOL)isEqualToPlaylist:(ITMTPlaylist *)playlist;
155 - (BOOL)setValue:(id)value forProperty:(ITMTGenericProperty)property;
156 - (id)valueOfProperty:(ITMTGenericProperty)property;
157 - (NSDictionary *)propertiesAndValues;
159 - (ITMTPlayer *)player;
161 - (BOOL)addTrack:(ITMTTrack *)track;
162 - (BOOL)insertTrack:(ITMTTrack *)track atIndex:(int)index;
164 - (BOOL)removeTrack:(ITMTTrack *)item;
165 - (BOOL)removeTrackAtIndex:(int)index;
167 - (ITMTTrack *)trackAtIndex:(int)index;
169 - (int)indexOfTrack:(ITMTTrack *)track;
170 - (ITMTTrack *)trackWithProperty:(ITMTTrackProperty)property ofValue:(id)value allowPartialMatch:(BOOL)partial;
171 - (NSArray *)tracksWithProperty:(ITMTTrackProperty)property ofValue:(id)value allowPartialMatches:(BOOL)partial;
172 - (int)indexOfTrackWithProperty:(ITMTTrackProperty)property ofValue:(id)value allowPartialMatch:(BOOL)partial;
173 - (NSArray *)indexesOfTracksWithProperty:(ITMTTrackProperty)property ofValue:(id)value allowPartialMatches:(BOOL)partial;
178 - (ITMTTrack *)currentTrack;
179 - (int)indexOfCurrentTrack;
181 - (BOOL)selectTrack:(ITMTTrack *)track;
182 - (BOOL)selectTrackAtIndex:(int)index;
184 - (BOOL)selectNextTrack;
185 - (BOOL)selectPreviousTrack;
188 @interface ITMTPlaylist : NSObject <ITMTPlaylist>
192 - (BOOL)isEqualToTrack:(ITMTTrack *)track;
196 - (BOOL)addToPlaylist:(ITMTPlaylist *)playlist;
197 - (BOOL)addToPlaylist:(ITMTPlaylist *)playlist atIndex:(int)index;
199 - (ITMTPlayer *)player;
200 - (NSArray *)playlists;
201 - (ITMTPlaylist *)currentPlaylist;
202 - (BOOL)setCurrentPlaylist:(ITMTPlaylist *)playlist;
204 - (BOOL)setValue:(id)value forProperty:(ITMTTrackProperty)property;
205 - (id)valueOfProperty:(ITMTTrackProperty)property;
206 - (NSDictionary *)propertiesAndValues;
208 - (BOOL)setState:(ITMTTrackState)state;
209 - (ITMTTrackState)state;
212 @interface ITMTTrack : NSObject <ITMTTrack>
215 @protocol ITMTEqualizer
218 - (ITMTPlayer *)player;
220 - (float)dBForLevel:(ITMTEqualizerLevel)level;
221 - (BOOL)setdB:(float)dB forLevel:(ITMTEqualizerLevel)level;
224 @interface ITMTEqualizer : NSObject <ITMTEqualizer>