Adding methods for Equalizer enabled nonsense to the iTunes remote,
[MenuTunes.git] / ITMTRemote.h
index 1d76786..0caca6d 100755 (executable)
 
 #import <Cocoa/Cocoa.h>
 
-typedef enum {stopped = -1, paused, playing, rewinding, forwarding} PlayerState;
+typedef enum {
+    ITMTRemotePlayerNotRunning = -1,
+    ITMTRemotePlayerLaunching,
+    ITMTRemotePlayerRunning
+} ITMTRemotePlayerRunningStatus;
+
+typedef enum {
+    ITMTRemotePlayerStopped = -1,
+    ITMTRemotePlayerPaused,
+    ITMTRemotePlayerPlaying,
+    ITMTRemotePlayerRewinding,
+    ITMTRemotePlayerForwarding
+} ITMTRemotePlayerState;
 
 /*! @protocol ITMTRemote
  *  @abstract Declares what a MenuTunes Remote must be able to do.
@@ -49,23 +61,23 @@ typedef enum {stopped = -1, paused, playing, rewinding, forwarding} PlayerState;
  */
 + (id)remote;
 
-/*! @method title:
- *  @abstract Returns an autoreleased instance of the remote.
+/*! @method pluginTitle:
+ *  @abstract Returns the title of the plugin, which should be player name.
  *  @result An NSString containing the title.
  */
-- (NSString *)title;
+- (NSString *)pluginTitle;
 
-/*! @method description:
+/*! @method pluginInformation:
  *  @abstract Returns a description of the remote.
  *  @result An NSString containing the description.
  */
-- (NSString *)information;
+- (NSString *)pluginInformation;
 
-/*! @method icon:
+/*! @method pluginIcon:
  *  @abstract Returns a icon for the remote.
  *  @result An NSImage containing the icon.
  */
-- (NSImage *)icon;
+- (NSImage *)pluginIcon;
 
 /*! @method begin:
  *  @abstract Sent when the plugin should begin operation.
@@ -79,8 +91,21 @@ typedef enum {stopped = -1, paused, playing, rewinding, forwarding} PlayerState;
  */
 - (BOOL)halt;
 
-- (BOOL)isAppRunning;
-- (PlayerState)playerState;
+- (NSString *)playerFullName;
+
+- (NSString *)playerSimpleName;
+
+/*! @method playerRunningStatus:
+ *  @abstract Returns controlled application's running status (is or isn't running).
+ *  @result BOOL of the controlled application's running status.
+ */
+- (ITMTRemotePlayerRunningStatus)playerRunningStatus;
+
+/*! @method playerState:
+ *  @abstract Returns controlled application's playing state.
+ *  @result ITMTRemotePlayerState of the controlled application's playing state.
+ */
+- (ITMTRemotePlayerState)playerState;
 
 - (NSArray *)playlists;
 - (int)numberOfSongsInPlaylistAtIndex:(int)index;
@@ -97,14 +122,23 @@ typedef enum {stopped = -1, paused, playing, rewinding, forwarding} PlayerState;
 - (NSString *)currentSongLength;
 - (NSString *)currentSongRemaining;
 
+- (float)currentSongRating;
+- (BOOL)setCurrentSongRating:(float)rating;
+
+- (BOOL)equalizerEnabled;
+- (BOOL)setEqualizerEnabled:(BOOL)enabled;
+
 - (NSArray *)eqPresets;
 - (int)currentEQPresetIndex;
 
+- (float)volume;
+- (BOOL)setVolume:(float)volume;
+
 - (BOOL)play;
 - (BOOL)pause;
 - (BOOL)goToNextSong;
 - (BOOL)goToPreviousSong;
-- (BOOL)fastForward;
+- (BOOL)forward;
 - (BOOL)rewind;
 
 - (BOOL)switchToPlaylistAtIndex:(int)index;