X-Git-Url: http://git.ithinksw.org/MenuTunes.git/blobdiff_plain/217dd5d7129df9accb9ec28e36af672531c6c4ab..74d6135e4db4cf9a70994d5bc2062be30311d0f3:/ITMTRemote.h diff --git a/ITMTRemote.h b/ITMTRemote.h index b2e2d5e..693d908 100755 --- a/ITMTRemote.h +++ b/ITMTRemote.h @@ -22,41 +22,87 @@ * */ +/*! @header ITMTRemote + * @abstract Declares the necessary protocol and class to implement a MenuTunes Remote. + */ + #import +typedef enum { + stopped = -1, + paused, + playing, + rewinding, + forwarding +} 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 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. + */ + (id)remote; -// Return an autoreleased instance of the remote. -// Should be very quick and compact. -// EXAMPLE: -// + (id)remote -// { -// return [[[MyRemote alloc] init] autorelease]; -// } +/*! @method title: + * @abstract Returns the title of the plugin, which should be player name. + * @result An NSString containing the title. + */ - (NSString *)title; -// Return the title of the remote. -- (NSString *)description; -// Return a short description of the remote. +/*! @method description: + * @abstract Returns a description of the remote. + * @result An NSString containing the description. + */ +- (NSString *)information; +/*! @method icon: + * @abstract Returns a icon for the remote. + * @result An NSImage containing the icon. + */ - (NSImage *)icon; -// Return a 16x16 icon representation for the remote. +/*! @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; +/*! @method isAppRunning: + * @abstract Returns controlled application's running status (is or isn't running). + * @result BOOL of the controlled application's running status. + */ +- (BOOL)isAppRunning; -- (NSArray *)playlistsForCurrentSource; +/*! @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; @@ -66,16 +112,22 @@ - (NSString *)currentSongLength; - (NSString *)currentSongRemaining; +- (float)currentSongRating; +- (BOOL)setCurrentSongRating:(float)rating; + - (NSArray *)eqPresets; +- (int)currentEQPresetIndex; + +- (float)volume; +- (BOOL)setVolume:(float)volume; - (BOOL)play; - (BOOL)pause; - (BOOL)goToNextSong; - (BOOL)goToPreviousSong; -- (BOOL)goToNextPlaylist; -- (BOOL)goToPreviousPlaylist; +- (BOOL)fastForward; +- (BOOL)rewind; -- (BOOL)switchToSourceAtIndex:(int)index; - (BOOL)switchToPlaylistAtIndex:(int)index; - (BOOL)switchToSongAtIndex:(int)index; - (BOOL)switchToEQAtIndex:(int)index;