4 * Plugin definition for audio player control via MenuTunes
6 * Original Author : Matt Judy <mjudy@ithinksw.com>
7 * Responsibility : Matt Judy <mjudy@ithinksw.com>
9 * Copyright (c) 2002 - 2003 iThink Software.
12 * This header defines the Objective-C protocol which all MenuTunes Remote
13 * plugins must implement. To build a remote, create a subclass of this
14 * object, and implement each method in the @protocol below.
21 * - Capability methods
25 #import <Cocoa/Cocoa.h>
30 // Return an autoreleased instance of the remote.
31 // Should be very quick and compact.
35 // return [[[MyRemote alloc] init] autorelease];
39 // Return the title of the remote.
41 - (NSString *)description;
42 // Return a short description of the remote.
45 // Return a 16x16 icon representation for the remote.
48 // Sent to the plugin when it should begin operation.
51 // Sent to the plugin when it should cease operation.
54 - (int)currentSourceIndex;
56 - (NSArray *)playlistsForCurrentSource;
57 - (int)currentPlaylistIndex;
59 - (NSString *)songTitleAtIndex;
60 - (int)currentSongIndex;
62 - (NSString *)currentSongTitle;
63 - (NSString *)currentSongArtist;
64 - (NSString *)currentSongAlbum;
65 - (NSString *)currentSongGenre;
66 - (NSString *)currentSongLength;
67 - (NSString *)currentSongRemaining;
69 - (NSArray *)eqPresets;
74 - (BOOL)goToPreviousSong;
75 - (BOOL)goToNextPlaylist;
76 - (BOOL)goToPreviousPlaylist;
78 - (BOOL)switchToSourceAtIndex:(int)index;
79 - (BOOL)switchToPlaylistAtIndex:(int)index;
80 - (BOOL)switchToSongAtIndex:(int)index;
81 - (BOOL)switchToEQAtIndex:(int)index;
86 @interface ITMTRemote : NSObject <ITMTRemote>