Added some more debug loggins to Audioscrobbler method. Improved it so it should...
[MenuTunes.git] / ITMTRemote.h
index 8984a68..1f84703 100755 (executable)
@@ -56,7 +56,9 @@ typedef enum {
 /*!
  * @enum ITMTRemotePlayerPlaylistClass
  * @abstract Possible playlist classes used by a remote's player
 /*!
  * @enum ITMTRemotePlayerPlaylistClass
  * @abstract Possible playlist classes used by a remote's player
- * @discussion Used in functions that report the class of a playlist to MenuTunes. While we borrow the terms/descriptions from iTunes, these should work fine with any other player. If your player doesn't support a given type of playlist, then just return ITMTRemotePlayerPlaylist.
+ * @discussion Used in functions that report the class of a playlist to MenuTunes. While we borrow the terms/descriptions from iTunes, these should work fine with any other player. If your player doesn't support a given type of playlist, then just return 
+
+ITMTRemotePlayerPlaylist.
  * @constant ITMTRemotePlayerLibraryPlaylist For players that have one playlist that contains all of a user's music, or for players that don't have the concept of multiple playlists, this is the class for that "Master" list.
  * @constant ITMTRemotePlayerPlaylist The generic playlist. Created and maintained by the user.
  * @constant ITMTRemotePlayerSmartPlaylist A smart playlist is a playlist who's contents are dynamic, based on a set of criteria or updated by a script. These are usually not edited directly by the user, but instead maintained by the player.
  * @constant ITMTRemotePlayerLibraryPlaylist For players that have one playlist that contains all of a user's music, or for players that don't have the concept of multiple playlists, this is the class for that "Master" list.
  * @constant ITMTRemotePlayerPlaylist The generic playlist. Created and maintained by the user.
  * @constant ITMTRemotePlayerSmartPlaylist A smart playlist is a playlist who's contents are dynamic, based on a set of criteria or updated by a script. These are usually not edited directly by the user, but instead maintained by the player.
@@ -74,7 +76,8 @@ typedef enum {
     ITMTRemoteCDSource,
     ITMTRemoteRadioSource,
     ITMTRemoteiPodSource,
     ITMTRemoteCDSource,
     ITMTRemoteRadioSource,
     ITMTRemoteiPodSource,
-    ITMTRemoteMP3PlayerSource
+    ITMTRemoteGenericDeviceSource,
+    ITMTRemoteSharedLibrarySource
 } ITMTRemotePlayerSource;
 
 /*!
 } ITMTRemotePlayerSource;
 
 /*!
@@ -153,7 +156,9 @@ typedef enum {
 /*!
  * @method playerFullName
  * @abstract Returns the remote's player's application filename.
 /*!
  * @method playerFullName
  * @abstract Returns the remote's player's application filename.
- * @discussion This string should be the name typically used by the remote's player's application bundle/file. For example, Panic's Audion audio player is known simply as "Audion", however, the application bundle is called "Audion 3" for version 3 of their application. This should return "Audion 3", not simply "Audion". See playerSimpleName.
+ * @discussion This string should be the name typically used by the remote's player's application bundle/file. For example, Panic's Audion audio player is known simply as "Audion", however, the application bundle is called "Audion 3" for version 3 of thei
+
+r application. This should return "Audion 3", not simply "Audion". See playerSimpleName.
  * @result An NSString containing the remote's player's application filename
  */
 - (NSString *)playerFullName;
  * @result An NSString containing the remote's player's application filename
  */
 - (NSString *)playerFullName;
@@ -182,7 +187,9 @@ typedef enum {
 /*!
  * @method playerRunningState
  * @abstract Returns the running state of the remote's player.
 /*!
  * @method playerRunningState
  * @abstract Returns the running state of the remote's player.
- * @discussion While most remotes will use only ITMTRemotePlayerNotRunning or ITMTRemotePlayerRunning, we have included support for ITMTRemotePlayerLaunching (see ITMTRemotePlayerRunningState) for remotes that want the most precise control over their player's process managment.
+ * @discussion While most remotes will use only ITMTRemotePlayerNotRunning or ITMTRemotePlayerRunning, we have included support for ITMTRemotePlayerLaunching (see ITMTRemotePlayerRunningState) for remotes that want the most precise control over their play
+
+er's process managment.
  * @result An ITMTRemotePlayerRunningState defining the running state of the remote's player.
  */
 - (ITMTRemotePlayerRunningState)playerRunningState;
  * @result An ITMTRemotePlayerRunningState defining the running state of the remote's player.
  */
 - (ITMTRemotePlayerRunningState)playerRunningState;
@@ -197,6 +204,16 @@ typedef enum {
  */
 - (NSArray *)playlists;
 
  */
 - (NSArray *)playlists;
 
+/*!
+ * @method artists
+ */
+- (NSArray *)artists;
+
+/*!
+ * @method albums
+ */
+- (NSArray *)albums;
+
 /*!
  * @method numberOfSongsInPlaylistAtIndex:
  */
 /*!
  * @method numberOfSongsInPlaylistAtIndex:
  */
@@ -207,6 +224,11 @@ typedef enum {
  */
 - (ITMTRemotePlayerSource)currentSource;
 
  */
 - (ITMTRemotePlayerSource)currentSource;
 
+/*!
+ * @method currentSourceIndex
+ */
+- (int)currentSourceIndex;
+
 /*!
  * @method currentPlaylistClass
  */
 /*!
  * @method currentPlaylistClass
  */
@@ -222,6 +244,11 @@ typedef enum {
  */
 - (NSString *)songTitleAtIndex:(int)index;
 
  */
 - (NSString *)songTitleAtIndex:(int)index;
 
+/*!
+ * @method songEnabledAtIndex:
+ */
+- (BOOL)songEnabledAtIndex:(int)index;
+
 /*!
  * @method currentAlbumTrackCount:
  */
 /*!
  * @method currentAlbumTrackCount:
  */
@@ -252,6 +279,11 @@ typedef enum {
  */
 - (NSString *)currentSongArtist;
 
  */
 - (NSString *)currentSongArtist;
 
+/*!
+ * @method currentSongComposer
+ */
+- (NSString *)currentSongComposer;
+
 /*!
  * @method currentSongAlbum
  */
 /*!
  * @method currentSongAlbum
  */
@@ -267,11 +299,36 @@ typedef enum {
  */
 - (NSString *)currentSongLength;
 
  */
 - (NSString *)currentSongLength;
 
+/*!
+ * @method currentSongPlayed
+ */
+- (int)currentSongPlayed;
+
+/*!
+ * @method currentSongDuration
+ */
+- (int)currentSongDuration;
+
 /*!
  * @method currentSongRemaining
  */
 - (NSString *)currentSongRemaining;
 
 /*!
  * @method currentSongRemaining
  */
 - (NSString *)currentSongRemaining;
 
+/*!
+ * @method currentSongElapsed
+ */
+- (NSString *)currentSongElapsed;
+
+/*!
+ * @method currentSongAlbumArt
+ */
+- (NSImage *)currentSongAlbumArt;
+
+/*!
+ * @method currentSongPlayCount
+ */
+- (int)currentSongPlayCount;
+
 /*!
  * @method currentSongRating
  */
 /*!
  * @method currentSongRating
  */
@@ -282,6 +339,26 @@ typedef enum {
  */
 - (BOOL)setCurrentSongRating:(float)rating;
 
  */
 - (BOOL)setCurrentSongRating:(float)rating;
 
+/*!
+ * @method currentSongShuffable
+ */
+- (BOOL)currentSongShufflable;
+
+/*!
+ * @method setCurrentSongShuffable:
+ */
+- (BOOL)setCurrentSongShufflable:(BOOL)shufflable;
+
+/*!
+ * @method equalizerEnabled
+ */
+- (BOOL)equalizerEnabled;
+
+/*!
+ * @method setEqualizerEnabled:
+ */
+- (BOOL)setEqualizerEnabled:(BOOL)enabled;
+
 /*!
  * @method eqPresets
  */
 /*!
  * @method eqPresets
  */
@@ -357,6 +434,11 @@ typedef enum {
  */
 - (BOOL)switchToPlaylistAtIndex:(int)index;
 
  */
 - (BOOL)switchToPlaylistAtIndex:(int)index;
 
+/*!
+ * @method switchToPlaylistAtIndex:
+ */
+- (BOOL)switchToPlaylistAtIndex:(int)index ofSourceAtIndex:(int)index2;
+
 /*!
  * @method switchToSongAtIndex:
  */
 /*!
  * @method switchToSongAtIndex:
  */
@@ -367,6 +449,11 @@ typedef enum {
  */
 - (BOOL)switchToEQAtIndex:(int)index;
 
  */
 - (BOOL)switchToEQAtIndex:(int)index;
 
+/*!
+ * @method makePlaylistWithTerm:ofType:
+ */
+- (BOOL)makePlaylistWithTerm:(NSString *)term ofType:(int)type;
+
 @end
 
 /*!
 @end
 
 /*!