X-Git-Url: http://git.ithinksw.org/MenuTunes.git/blobdiff_plain/144f2a34f982b5e54907225977b6770646e94f4d..2c89adb3537752472b5c23817e9b010dd104b6a2:/ITMTRemote.h diff --git a/ITMTRemote.h b/ITMTRemote.h index 3527c85..0caca6d 100755 --- a/ITMTRemote.h +++ b/ITMTRemote.h @@ -28,46 +28,91 @@ #import +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. * @discussion A MenuTunes Remote must be able to return and change state information. */ - @protocol ITMTRemote -/*! @method remote: - * @abstract Return an autoreleased instance of the remote. + + +/*! @method remote + * @abstract Returns an autoreleased instance of the remote. * @discussion Should be very quick and compact. - * EXAMPLE: - * + (id)remote - * { - * return [[[MyRemote alloc] init] autorelease]; - * } - * @result The instance. + * EXAMPLE: + * + (id)remote + * { + * return [[[MyRemote alloc] init] autorelease]; + * } + * @result The instance. */ + (id)remote; -- (NSString *)title; -// Return the title of the remote. +/*! @method pluginTitle: + * @abstract Returns the title of the plugin, which should be player name. + * @result An NSString containing the title. + */ +- (NSString *)pluginTitle; -- (NSString *)description; -// Return a short description of the remote. +/*! @method pluginInformation: + * @abstract Returns a description of the remote. + * @result An NSString containing the description. + */ +- (NSString *)pluginInformation; -- (NSImage *)icon; -// Return a 16x16 icon representation for the remote. +/*! @method pluginIcon: + * @abstract Returns a icon for the remote. + * @result An NSImage containing the icon. + */ +- (NSImage *)pluginIcon; +/*! @method begin: + * @abstract Sent when the plugin should begin operation. + * @result A result code signifying success. + */ - (BOOL)begin; -// Sent to the plugin when it should begin operation. +/*! @method halt: + * @abstract Sent when the plugin should cease operation. + * @result A result code signifying success. + */ - (BOOL)halt; -// Sent to the plugin when it should cease operation. -- (NSArray *)sources; -- (int)currentSourceIndex; +- (NSString *)playerFullName; -- (NSArray *)playlistsForCurrentSource; +- (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; +- (NSString *)classOfPlaylistAtIndex:(int)index; - (int)currentPlaylistIndex; -- (NSString *)songTitleAtIndex; +- (NSString *)songTitleAtIndex:(int)index; - (int)currentSongIndex; - (NSString *)currentSongTitle; @@ -77,16 +122,25 @@ - (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)goToNextPlaylist; -- (BOOL)goToPreviousPlaylist; +- (BOOL)forward; +- (BOOL)rewind; -- (BOOL)switchToSourceAtIndex:(int)index; - (BOOL)switchToPlaylistAtIndex:(int)index; - (BOOL)switchToSongAtIndex:(int)index; - (BOOL)switchToEQAtIndex:(int)index;