Implemented reauthentication when a session ticket is invalidated by another computer.
[MenuTunes.git] / AudioscrobblerController.h
1 /*
2  *      MenuTunes
3  *  AudioscrobblerController
4  *    Audioscrobbler Support Class
5  *
6  *  Original Author : Kent Sutherland <kent.sutherland@ithinksw.com>
7  *   Responsibility : Kent Sutherland <kent.sutherland@ithinksw.com>
8  *
9  *  Copyright (c) 2005 iThink Software.
10  *  All Rights Reserved
11  *
12  */
13
14 #import <Cocoa/Cocoa.h>
15
16 typedef enum {
17         AudioscrobblerIdleStatus = -1,
18         AudioscrobblerRequestingHandshakeStatus,
19         AudioscrobblerCompletedHandshakeStatus,
20         AudioscrobblerSubmittingTracksStatus,
21         AudioscrobblerWaitingIntervalStatus
22 } AudioscrobblerStatus;
23
24 @interface AudioscrobblerController : NSObject {
25         BOOL _handshakeCompleted;
26         int _handshakeAttempts;
27         AudioscrobblerStatus _currentStatus;
28         NSMutableArray *_tracks, *_submitTracks;
29         NSDate *_delayDate;
30         
31         NSString *_md5Challenge, *_lastStatus;
32         NSURL *_postURL;
33         NSMutableData *_responseData;
34 }
35 + (AudioscrobblerController *)sharedController;
36
37 - (NSString *)lastStatus;
38 - (void)attemptHandshake;
39 - (void)attemptHandshake:(BOOL)force;
40 - (BOOL)handshakeCompleted;
41 - (void)submitTrack:(NSString *)title artist:(NSString *)artist album:(NSString *)album length:(int)length;
42 - (void)submitTracks;
43 @end