#import "StatusWindow.h"
#import "StatusWindowController.h"
#import "CustomMenuTableView.h"
+#import "AudioscrobblerController.h"
#import <Security/Security.h>
SecKeychainAttribute attributes[3];
SecKeychainAttributeList list;
+ if ((user == nil) || ([user length] == 0)) {
+ return nil;
+ }
+
ITDebugLog(@"Audioscrobbler: Searching for keychain item for %@.", user);
attributes[0].tag = kSecAccountItemAttr;
attributes[0].data = (char *)[user UTF8String];
@"Rewind",
@"ShowPlayer",
@"TrackInfo",
+ @"AlbumArt",
@"UpcomingSongs",
@"IncrementVolume",
@"DecrementVolume",
@"Rewind",
@"Show Player",
@"Track Info",
+ @"Album Art",
@"Upcoming Songs",
@"Increment Volume",
@"Decrement Volume",
@"Toggle Loop",
@"Toggle Song Included In Shuffle",
@"Pop-up status menu",
- [NSString stringWithUTF8String:"Set Rating: â\98\86â\98\86â\98\86â\98\86â\98\86"],
- [NSString stringWithUTF8String:"Set Rating: â\98\85â\98\86â\98\86â\98\86â\98\86"],
- [NSString stringWithUTF8String:"Set Rating: â\98\85â\98\85â\98\86â\98\86â\98\86"],
- [NSString stringWithUTF8String:"Set Rating: â\98\85â\98\85â\98\85â\98\86â\98\86"],
- [NSString stringWithUTF8String:"Set Rating: â\98\85â\98\85â\98\85â\98\85â\98\86"],
- [NSString stringWithUTF8String:"Set Rating: â\98\85â\98\85â\98\85â\98\85â\98\85"],
+ [NSString stringWithUTF8String:"Set Rating: â\80\9aòÃ\9câ\80\9aòÃ\9câ\80\9aòÃ\9câ\80\9aòÃ\9câ\80\9aòÃ\9c"],
+ [NSString stringWithUTF8String:"Set Rating: â\80\9aòÃ\96â\80\9aòÃ\9câ\80\9aòÃ\9câ\80\9aòÃ\9câ\80\9aòÃ\9c"],
+ [NSString stringWithUTF8String:"Set Rating: â\80\9aòÃ\96â\80\9aòÃ\96â\80\9aòÃ\9câ\80\9aòÃ\9câ\80\9aòÃ\9c"],
+ [NSString stringWithUTF8String:"Set Rating: â\80\9aòÃ\96â\80\9aòÃ\96â\80\9aòÃ\96â\80\9aòÃ\9câ\80\9aòÃ\9c"],
+ [NSString stringWithUTF8String:"Set Rating: â\80\9aòÃ\96â\80\9aòÃ\96â\80\9aòÃ\96â\80\9aòÃ\96â\80\9aòÃ\9c"],
+ [NSString stringWithUTF8String:"Set Rating: â\80\9aòÃ\96â\80\9aòÃ\96â\80\9aòÃ\96â\80\9aòÃ\96â\80\9aòÃ\96"],
nil];
hotKeysDictionary = [[NSMutableDictionary alloc] init];
controller = 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];
[PreferencesController deleteKeychainItemForUser:currentAccount];
}
[PreferencesController createKeychainItemForUser:newAccount andPassword:[audioscrobblerPasswordTextField stringValue]];
+ [[AudioscrobblerController sharedController] attemptHandshake:YES];
}
} else if ( [sender tag ] == 6030) {
//Here we set the password for an existing keychain item or we create a new keychain item.
- (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) {
#pragma mark PRIVATE METHOD IMPLEMENTATIONS
/*************************************************************************/
+- (void)audioscrobblerStatusChanged:(NSNotification *)note
+{
+ [audioscrobblerStatusTextField setStringValue:[[note userInfo] objectForKey:@"StatusString"]];
+}
+
- (void)setupWindow
{
ITDebugLog(@"Loading Preferences.nib.");
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.");
[audioscrobblerPasswordTextField setStringValue:password];
}
}
+ [audioscrobblerUseCacheCheckbox setState:[df boolForKey:@"audioscrobblerCacheSubmissions"]];
[[NSNotificationCenter defaultCenter] addObserver:sharingTableView selector:@selector(reloadData) name:@"ITMTFoundNetService" object: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"];
- (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"];