From 865eb081d76064bc6ec16c44f6ac976a9b1a62b3 Mon Sep 17 00:00:00 2001 From: Kent Sutherland Date: Fri, 23 Dec 2005 09:36:21 +0000 Subject: [PATCH] Added a status field to the audioscrobbler preferences. Using alloc'd NSTimers in order to avoid crashing, hopefully. Disabling caching of tracks in order to simplify things. --- AudioscrobblerController.h | 3 +- AudioscrobblerController.m | 48 ++++++++++++++---- English.lproj/Preferences.nib/classes.nib | 1 + English.lproj/Preferences.nib/info.nib | 2 +- .../Preferences.nib/keyedobjects.nib | Bin 63291 -> 63874 bytes MainController.h | 1 + MainController.m | 33 ++++++------ PreferencesController.h | 1 + PreferencesController.m | 32 ++++++++---- 9 files changed, 85 insertions(+), 36 deletions(-) diff --git a/AudioscrobblerController.h b/AudioscrobblerController.h index 78cfdb3..a2dc6c4 100644 --- a/AudioscrobblerController.h +++ b/AudioscrobblerController.h @@ -27,12 +27,13 @@ typedef enum { NSMutableArray *_tracks, *_submitTracks; NSDate *_delayDate; - NSString *_md5Challenge; + NSString *_md5Challenge, *_lastStatus; NSURL *_postURL; NSMutableData *_responseData; } + (AudioscrobblerController *)sharedController; +- (NSString *)lastStatus; - (void)attemptHandshake; - (void)attemptHandshake:(BOOL)force; - (BOOL)handshakeCompleted; diff --git a/AudioscrobblerController.m b/AudioscrobblerController.m index a3d3b6b..3864a0c 100644 --- a/AudioscrobblerController.m +++ b/AudioscrobblerController.m @@ -16,7 +16,7 @@ #import #import -#define AUDIOSCROBBLER_ID @"tst" +#define AUDIOSCROBBLER_ID @"mtu" #define AUDIOSCROBBLER_VERSION [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"] static AudioscrobblerController *_sharedController = nil; @@ -46,13 +46,14 @@ static AudioscrobblerController *_sharedController = nil; _responseData = nil; _tracks = [[NSMutableArray alloc] init]; _submitTracks = [[NSMutableArray alloc] init]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleAudioscrobblerNotification:) name:nil object:self]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleAudioscrobblerNotification:) name:@"AudioscrobblerHandshakeComplete" object:self]; } return self; } - (void)dealloc { + [_lastStatus release]; [_md5Challenge release]; [_postURL release]; [_responseData release]; @@ -62,6 +63,11 @@ static AudioscrobblerController *_sharedController = nil; [super dealloc]; } +- (NSString *)lastStatus +{ + return _lastStatus; +} + - (void)attemptHandshake { [self attemptHandshake:NO]; @@ -221,10 +227,8 @@ static AudioscrobblerController *_sharedController = nil; - (void)handleAudioscrobblerNotification:(NSNotification *)note { - if ([[note name] isEqualToString:@"AudioscrobblerHandshakeComplete"]) { - if ([_tracks count] > 0) { - [self performSelector:@selector(submitTracks) withObject:nil afterDelay:2]; - } + if ([_tracks count] > 0) { + [self performSelector:@selector(submitTracks) withObject:nil afterDelay:2]; } } @@ -232,6 +236,9 @@ static AudioscrobblerController *_sharedController = nil; - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { + [_lastStatus release]; + _lastStatus = [[NSString stringWithFormat:NSLocalizedString(@"audioscrobbler_error", @"Error - %@"), [error localizedDescription]] retain]; + [[NSNotificationCenter defaultCenter] postNotificationName:@"AudioscrobblerStatusChanged" object:self userInfo:[NSDictionary dictionaryWithObject:_lastStatus forKey:@"StatusString"]]; ITDebugLog(@"Audioscrobbler: Connection error \"%@\"", error); } @@ -244,7 +251,7 @@ static AudioscrobblerController *_sharedController = nil; { NSString *string = [[NSString alloc] initWithData:_responseData encoding:NSASCIIStringEncoding]; NSArray *lines = [string componentsSeparatedByString:@"\n"]; - NSString *responseAction = nil; + NSString *responseAction = nil, *key = nil, *comment = nil; if ([lines count] > 0) { responseAction = [lines objectAtIndex:0]; @@ -261,33 +268,52 @@ static AudioscrobblerController *_sharedController = nil; _postURL = [[NSURL alloc] initWithString:[lines objectAtIndex:2]]; _handshakeCompleted = YES; [[NSNotificationCenter defaultCenter] postNotificationName:@"AudioscrobblerHandshakeComplete" object:self]; + key = @"audioscrobbler_handshake_complete"; + comment = @"Handshake complete"; } else { //We have a protocol error } } else if (([responseAction length] > 5) && [[responseAction substringToIndex:5] isEqualToString:@"FAILED"]) { ITDebugLog(@"Audioscrobbler: Handshake failed (%@)", [responseAction substringFromIndex:6]); + key = @"audioscrobbler_handshake_failed"; + comment = @"Handshake failed"; //We have a error } else if ([responseAction isEqualToString:@"BADUSER"]) { ITDebugLog(@"Audioscrobbler: Bad user name"); + key = @"audioscrobbler_bad_user"; + comment = @"Handshake failed - invalid user name"; //We have a bad user } else { ITDebugLog(@"Audioscrobbler: Handshake failed, protocol error"); + key = @"audioscrobbler_protocol_error"; + comment = @"Internal protocol error"; //We have a protocol error } } else if (_currentStatus == AudioscrobblerSubmittingTracksStatus) { + //For now we're not going to cache results, as it is less of a headache + [_tracks removeObjectsInArray:_submitTracks]; + [_submitTracks removeAllObjects]; + if ([responseAction isEqualToString:@"OK"]) { ITDebugLog(@"Audioscrobbler: Submission successful, clearing queue."); - [_tracks removeObjectsInArray:_submitTracks]; - [_submitTracks removeAllObjects]; + /*[_tracks removeObjectsInArray:_submitTracks]; + [_submitTracks removeAllObjects];*/ if ([_tracks count] > 0) { ITDebugLog(@"Audioscrobbler: Tracks remaining in queue, submitting remaining tracks"); [self performSelector:@selector(submitTracks) withObject:nil afterDelay:2]; } + key = @"audioscrobbler_submission_ok"; + comment = @"Last track submission successful"; } else if ([responseAction isEqualToString:@"BADAUTH"]) { ITDebugLog(@"Audioscrobbler: Bad password"); + key = @"audioscrobbler_bad_password"; + comment = @"Last track submission failed - invalid password"; //Bad auth } else if (([responseAction length] > 5) && [[responseAction substringToIndex:5] isEqualToString:@"FAILED"]) { ITDebugLog(@"Audioscrobbler: Submission failed (%@)", [responseAction substringFromIndex:6]); + NSLog(@"Audioscrobbler: Submission failed (%@)", [responseAction substringFromIndex:6]); + key = @"audioscrobbler_submission_failed"; + comment = @"Last track submission failed - see console for error"; //Failed } } @@ -302,7 +328,9 @@ static AudioscrobblerController *_sharedController = nil; ITDebugLog(@"No interval response."); //We have a protocol error } - + [_lastStatus release]; + _lastStatus = [NSLocalizedString(key, comment) retain]; + [[NSNotificationCenter defaultCenter] postNotificationName:@"AudioscrobblerStatusChanged" object:nil userInfo:[NSDictionary dictionaryWithObject:_lastStatus forKey:@"StatusString"]]; [string release]; [_responseData release]; } diff --git a/English.lproj/Preferences.nib/classes.nib b/English.lproj/Preferences.nib/classes.nib index 3f7a192..9ddd004 100755 --- a/English.lproj/Preferences.nib/classes.nib +++ b/English.lproj/Preferences.nib/classes.nib @@ -23,6 +23,7 @@ artistCheckbox = NSButton; audioscrobblerEnabledCheckbox = NSButton; audioscrobblerPasswordTextField = NSSecureTextField; + audioscrobblerStatusTextField = NSTextField; audioscrobblerUseCacheCheckbox = NSButton; audioscrobblerUserTextField = NSTextField; backgroundColorPopup = NSPopUpButton; diff --git a/English.lproj/Preferences.nib/info.nib b/English.lproj/Preferences.nib/info.nib index 33225c9..4c9701e 100755 --- a/English.lproj/Preferences.nib/info.nib +++ b/English.lproj/Preferences.nib/info.nib @@ -12,7 +12,7 @@ 386 450 380 122 0 0 1152 746 IBFramework Version - 439.0 + 443.0 IBLockedObjects 281 diff --git a/English.lproj/Preferences.nib/keyedobjects.nib b/English.lproj/Preferences.nib/keyedobjects.nib index 48b08735c8c8825d0ba0af7704cf1fd03fc6156a..351b86333a4163ba9e8142a8637be7e8f22ac4e6 100755 GIT binary patch literal 63874 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

@eT_R^npdKpQfMx@l6)4Q2%v=fCI)HCby%$D zYhzAadOCQ^l8I87iN$nxgnDyd=I+E4lPL?ZdhRY|ZkjtoI%;GGCfrTm;_mM50nGN| zS_NVrN2Cd-m^-}qw@LVK%FN8ly0c(e5#r#yF`Qv3d&|cm4R!9H!g|KyL=1LpiS( z#MGaqxh-&`6~Vm;;12H%se?dF?3M(bT_t$Z;uq_H1g4;{bR;w9ifE_wC!{yQR}_3x z%zX)WsXNXv;F(*5`F=&6UzlQ*yYM9j+3m)FoXN(=55xIrW6PX55G zgBrcH3U>e})1r5{1CnkSXU`yr)-+?gSOj&6xo}+>*Tk*FmO@cdlFql3R?x&;Ub$uc z<~%p#h?GZnqAr3dcUkcV3@m&CQKg73&a=_Qz0|!7D8J41Ir2MVN2=WD;=Yq9_b_Dz zR~mOiTk(pBBxeUgh6>RdukF%i$)Yt;uO{NFa&Ku>P(LV?_dNIN7}WO(s8jcyrT!$({{eT7a{anEU>LER#rxG9=VbNZ31-IA*+ z-bj+&FLS-VhU@jCmR@(i2EFcn-Mz{EhI=zp)-q)SQyyo^yHyksxSz-OI~D@Ax)DbJ z7VxtUC5WR@dU*%6E8JXCGo4D^nf@ zjIy$&Zsug1Fa#Z(Tbyw2iad^`QU*bQzTX1T3Lz})~ z$`i3U!LEc;^p=w;Pg+Ir?q50Q{=`2>+{)+v9gF^k`%g|3Kmk@AKbvEOah4OtIS=tr zkHVCvneseSUSi7Yl?*=jPwt;Q4r$bSpuL|IKhFq*?^(&s;09TeCoDhgrKzSQ&ttgH zaf?=FM0qKu0z>_2q(sGH=R~;ASJ9{zUl8NJ7$09A1oThiM?9p$_!}{C zv)Rajc+vpQd&ueVDObI&@g#QUGLE$+X##``J!0plE5~z*r-i3w43Jlt@+x%9$Uu#C zOnHqdFAIg98O<&⁢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 30) { - _audioscrobblerTimer = [NSTimer scheduledTimerWithTimeInterval:((length / 2 < 240) ? length / 2 : 240) target:self selector:@selector(submitAudioscrobblerTrack:) userInfo:nil repeats:YES]; + _audioscrobblerInterval = ((length / 2 < 240) ? length / 2 : 240); + [_audioscrobblerTimer invalidate]; + [_audioscrobblerTimer release]; + _audioscrobblerTimer = [[NSTimer alloc] initWithFireDate:[NSDate dateWithTimeIntervalSinceNow:_audioscrobblerInterval] interval:nil target:self selector:@selector(submitAudioscrobblerTrack:) userInfo:nil repeats:NO]; + [[NSRunLoop currentRunLoop] addTimer:_audioscrobblerTimer forMode:NSDefaultRunLoopMode]; } } else { _audioscrobblerTimer = nil; @@ -605,11 +606,12 @@ static MainController *sharedController; if ([df boolForKey:@"audioscrobblerEnabled"]) { int length = [[self currentRemote] currentSongDuration]; - if (_audioscrobblerTimer) { - [_audioscrobblerTimer invalidate]; - } if (length > 30) { - _audioscrobblerTimer = [NSTimer scheduledTimerWithTimeInterval:((length / 2 < 240) ? length / 2 : 240) target:self selector:@selector(submitAudioscrobblerTrack:) userInfo:nil repeats:YES]; + _audioscrobblerInterval = ((length / 2 < 240) ? length / 2 : 240); + [_audioscrobblerTimer invalidate]; + [_audioscrobblerTimer release]; + _audioscrobblerTimer = [[NSTimer alloc] initWithFireDate:[NSDate dateWithTimeIntervalSinceNow:_audioscrobblerInterval] interval:1.0 target:self selector:@selector(submitAudioscrobblerTrack:) userInfo:nil repeats:NO]; + [[NSRunLoop currentRunLoop] addTimer:_audioscrobblerTimer forMode:NSDefaultRunLoopMode]; } } else { _audioscrobblerTimer = nil; @@ -627,14 +629,12 @@ static MainController *sharedController; - (void)submitAudioscrobblerTrack:(NSTimer *)timer { - int interval = [timer timeInterval]; - [timer invalidate]; - _audioscrobblerTimer = nil; ITDebugLog(@"Audioscrobbler: Attempting to submit current track"); + [timer invalidate]; if ([df boolForKey:@"audioscrobblerEnabled"]) { NS_DURING int elapsed = [[self currentRemote] currentSongPlayed]; - if ((abs(elapsed - interval) < 5) && ([[self currentRemote] playerPlayingState] == ITMTRemotePlayerPlaying)) { + if ((abs(elapsed - _audioscrobblerInterval) < 5) && ([[self currentRemote] playerPlayingState] == ITMTRemotePlayerPlaying)) { NSString *title = [[self currentRemote] currentSongTitle], *artist = [[self currentRemote] currentSongArtist]; if (title && artist) { ITDebugLog(@"Audioscrobbler: Submitting current track"); @@ -643,9 +643,12 @@ static MainController *sharedController; album:[[self currentRemote] currentSongAlbum] length:[[self currentRemote] currentSongDuration]]; } - } else if (interval - elapsed > 0) { - ITDebugLog(@"Audioscrobbler: Creating a new timer that will run in %i seconds", interval - elapsed); - _audioscrobblerTimer = [NSTimer scheduledTimerWithTimeInterval:(interval - elapsed) target:self selector:@selector(submitAudioscrobblerTrack:) userInfo:nil repeats:YES]; + } else if (_audioscrobblerInterval - elapsed > 0) { + ITDebugLog(@"Audioscrobbler: Creating a new timer that will run in %i seconds", _audioscrobblerInterval - elapsed); + _audioscrobblerInterval -= elapsed; + [_audioscrobblerTimer release]; + _audioscrobblerTimer = [[NSTimer alloc] initWithFireDate:[NSDate dateWithTimeIntervalSinceNow:_audioscrobblerInterval] interval:nil target:self selector:@selector(submitAudioscrobblerTrack:) userInfo:nil repeats:NO]; + [[NSRunLoop currentRunLoop] addTimer:_audioscrobblerTimer forMode:NSDefaultRunLoopMode]; } NS_HANDLER [self networkError:localException]; diff --git a/PreferencesController.h b/PreferencesController.h index 06841ef..5b2810b 100755 --- a/PreferencesController.h +++ b/PreferencesController.h @@ -26,6 +26,7 @@ IBOutlet NSButton *artistCheckbox; IBOutlet NSButton *audioscrobblerEnabledCheckbox; IBOutlet NSTextField *audioscrobblerPasswordTextField; + IBOutlet NSTextField *audioscrobblerStatusTextField; IBOutlet NSButton *audioscrobblerUseCacheCheckbox; IBOutlet NSTextField *audioscrobblerUserTextField; IBOutlet NSPopUpButton *backgroundStylePopup; diff --git a/PreferencesController.m b/PreferencesController.m index 638be40..106b9b6 100755 --- a/PreferencesController.m +++ b/PreferencesController.m @@ -272,12 +272,12 @@ static PreferencesController *prefs = nil; @"Toggle Loop", @"Toggle Song Included In Shuffle", @"Pop-up status menu", - [NSString stringWithUTF8String:"Set Rating: ☆☆☆☆☆"], - [NSString stringWithUTF8String:"Set Rating: ★☆☆☆☆"], - [NSString stringWithUTF8String:"Set Rating: ★★☆☆☆"], - [NSString stringWithUTF8String:"Set Rating: ★★★☆☆"], - [NSString stringWithUTF8String:"Set Rating: ★★★★☆"], - [NSString stringWithUTF8String:"Set Rating: ★★★★★"], + [NSString stringWithUTF8String:"Set Rating: ‚òÜ‚òÜ‚òÜ‚òÜ‚òÜ"], + [NSString stringWithUTF8String:"Set Rating: ‚òÖ‚òÜ‚òÜ‚òÜ‚òÜ"], + [NSString stringWithUTF8String:"Set Rating: ‚òÖ‚òÖ‚òÜ‚òÜ‚òÜ"], + [NSString stringWithUTF8String:"Set Rating: ‚òÖ‚òÖ‚òÖ‚òÜ‚òÜ"], + [NSString stringWithUTF8String:"Set Rating: ‚òÖ‚òÖ‚òÖ‚òÖ‚òÜ"], + [NSString stringWithUTF8String:"Set Rating: ‚òÖ‚òÖ‚òÖ‚òÖ‚òÖ"], nil]; hotKeysDictionary = [[NSMutableDictionary alloc] init]; controller = nil; @@ -426,6 +426,9 @@ static PreferencesController *prefs = nil; [audioscrobblerUseCacheCheckbox setEnabled:SENDER_STATE]; [audioscrobblerUserTextField setEnabled:SENDER_STATE]; [audioscrobblerPasswordTextField setEnabled:SENDER_STATE]; + if (SENDER_STATE) { + [[AudioscrobblerController sharedController] attemptHandshake:NO]; + } } else if ( [sender tag ] == 6015) { //Here we create a new keychain item if needed and deletes the keychain item if the field is cleared. NSString *currentAccount = [df stringForKey:@"audioscrobblerUser"], *newAccount = [sender stringValue]; @@ -607,7 +610,7 @@ static PreferencesController *prefs = nil; - (IBAction)changeStatusWindowSetting:(id)sender { - StatusWindow *sw = [StatusWindow sharedWindow]; + StatusWindow *sw = (StatusWindow *)[StatusWindow sharedWindow]; ITDebugLog(@"Changing status window setting of tag %i", [sender tag]); if ( [sender tag] == 2010) { @@ -890,6 +893,11 @@ static PreferencesController *prefs = nil; #pragma mark PRIVATE METHOD IMPLEMENTATIONS /*************************************************************************/ +- (void)audioscrobblerStatusChanged:(NSNotification *)note +{ + [audioscrobblerStatusTextField setStringValue:[[note userInfo] objectForKey:@"StatusString"]]; +} + - (void)setupWindow { ITDebugLog(@"Loading Preferences.nib."); @@ -975,6 +983,12 @@ static PreferencesController *prefs = nil; int selectedBGStyle; id anItem; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(audioscrobblerStatusChanged:) name:@"AudioscrobblerStatusChanged" object:nil]; + if ([df boolForKey:@"audioscrobblerEnabled"]) { + NSString *status = [[AudioscrobblerController sharedController] lastStatus]; + [audioscrobblerStatusTextField setStringValue:(status == nil) ? @"Idle" : status]; + } + [df setInteger:MT_CURRENT_VERSION forKey:@"appVersion"]; ITDebugLog(@"Setting up preferences UI."); @@ -1166,7 +1180,7 @@ static PreferencesController *prefs = nil; - (void)setStatusWindowEntryEffect:(Class)effectClass { - StatusWindow *sw = [StatusWindow sharedWindow]; + StatusWindow *sw = (StatusWindow *)[StatusWindow sharedWindow]; float time = ([df floatForKey:@"statusWindowAppearanceSpeed"] ? [df floatForKey:@"statusWindowAppearanceSpeed"] : 0.8); [df setObject:NSStringFromClass(effectClass) forKey:@"statusWindowAppearanceEffect"]; @@ -1177,7 +1191,7 @@ static PreferencesController *prefs = nil; - (void)setStatusWindowExitEffect:(Class)effectClass { - StatusWindow *sw = [StatusWindow sharedWindow]; + StatusWindow *sw = (StatusWindow *)[StatusWindow sharedWindow]; float time = ([df floatForKey:@"statusWindowVanishSpeed"] ? [df floatForKey:@"statusWindowVanishSpeed"] : 0.8); [df setObject:NSStringFromClass(effectClass) forKey:@"statusWindowVanishEffect"]; -- 2.20.1