Partial addition of HeaderDoc
[MenuTunes.git] / ITMTRemote.h
1 /*
2  *  MenuTunes
3  *  ITMTRemote
4  *    Plugin definition for audio player control via MenuTunes
5  *
6  *  Original Author : Matt Judy <mjudy@ithinksw.com>
7  *   Responsibility : Matt Judy <mjudy@ithinksw.com>
8  *
9  *  Copyright (c) 2002 - 2003 iThink Software.
10  *  All Rights Reserved
11  *
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.
15  *
16  */
17
18 /*
19  * TO DO:
20  *
21  * - Capability methods
22  *
23  */
24
25 /*! @header ITMTRemote
26  *  @abstract Declares the necessary protocol and class to implement a MenuTunes Remote.
27  */
28
29 #import <Cocoa/Cocoa.h>
30
31 /*! @protocol ITMTRemote
32  *  @abstract Declares what a MenuTunes Remote must be able to do.
33  *  @discussion A MenuTunes Remote must be able to return and change state information.
34  */
35
36 @protocol ITMTRemote
37 /*! @method remote:
38  *  @abstract Return an autoreleased instance of the remote.
39  *  @discussion Should be very quick and compact.
40  * EXAMPLE:
41  *   + (id)remote
42  *   {
43  *       return [[[MyRemote alloc] init] autorelease];
44  *   }
45  * @result The instance.
46  */
47 + (id)remote;
48
49 - (NSString *)title;
50 // Return the title of the remote.
51
52 - (NSString *)description;
53 // Return a short description of the remote.
54
55 - (NSImage *)icon;
56 // Return a 16x16 icon representation for the remote.
57
58 - (BOOL)begin;
59 // Sent to the plugin when it should begin operation.
60
61 - (BOOL)halt;
62 // Sent to the plugin when it should cease operation.
63
64 - (NSArray *)sources;
65 - (int)currentSourceIndex;
66
67 - (NSArray *)playlistsForCurrentSource;
68 - (int)currentPlaylistIndex;
69
70 - (NSString *)songTitleAtIndex;
71 - (int)currentSongIndex;
72
73 - (NSString *)currentSongTitle;
74 - (NSString *)currentSongArtist;
75 - (NSString *)currentSongAlbum;
76 - (NSString *)currentSongGenre;
77 - (NSString *)currentSongLength;
78 - (NSString *)currentSongRemaining;
79
80 - (NSArray *)eqPresets;
81
82 - (BOOL)play;
83 - (BOOL)pause;
84 - (BOOL)goToNextSong;
85 - (BOOL)goToPreviousSong;
86 - (BOOL)goToNextPlaylist;
87 - (BOOL)goToPreviousPlaylist;
88
89 - (BOOL)switchToSourceAtIndex:(int)index;
90 - (BOOL)switchToPlaylistAtIndex:(int)index;
91 - (BOOL)switchToSongAtIndex:(int)index;
92 - (BOOL)switchToEQAtIndex:(int)index;
93
94 @end
95
96
97 @interface ITMTRemote : NSObject <ITMTRemote>
98
99 @end