SetITDebugMode(YES);
}
- if (![df stringForKey:@"appVersion"]) {
+ if (([df integerForKey:@"appVersion"] < 1200) && ([df integerForKey:@"SongsInAdvance"] > 0)) {
[df removePersistentDomainForName:@"com.ithinksw.menutunes"];
- [df setObject:@"1.2" forKey:@"appVersion"];
+ [df synchronize];
+ [[PreferencesController sharedPrefs] registerDefaults];
[[StatusWindowController sharedController] showPreferencesUpdateWindow];
}
[[PreferencesController sharedPrefs] registerDefaults];
}
- [StatusItemHack install];
- statusItem = [[ITStatusItem alloc]
- initWithStatusBar:[NSStatusBar systemStatusBar]
- withLength:NSSquareStatusItemLength];
+ if ([df boolForKey:@"ITMTNoStatusItem"]) {
+ statusItem = nil;
+ } else {
+ [StatusItemHack install];
+ statusItem = [[ITStatusItem alloc]
+ initWithStatusBar:[NSStatusBar systemStatusBar]
+ withLength:NSSquareStatusItemLength];
+ }
bling = [[MTBlingController alloc] init];
[self blingTime];
if ( [self songChanged] && (timerUpdating != YES) && (playerRunningState == ITMTRemotePlayerRunning) ) {
ITDebugLog(@"The song changed.");
+
+ if ([df boolForKey:@"runScripts"] && [[self currentRemote] currentSongTitle]) {
+ NSArray *scripts = [[NSFileManager defaultManager] directoryContentsAtPath:[NSHomeDirectory() stringByAppendingPathComponent:@"Library/Application Support/MenuTunes/Scripts"]];
+ NSEnumerator *scriptsEnum = [scripts objectEnumerator];
+ NSString *nextScript;
+ while ( (nextScript = [scriptsEnum nextObject]) ) {
+ NSDictionary *error;
+ NSAppleScript *currentScript = [[NSAppleScript alloc] initWithContentsOfURL:[NSURL fileURLWithPath:[[NSHomeDirectory() stringByAppendingPathComponent:@"Library/Application Support/MenuTunes/Scripts"] stringByAppendingPathComponent:nextScript]] error:&error];
+ if (!currentScript || ![currentScript executeAndReturnError:nil]) {
+ ITDebugLog(@"Error running script %@.", nextScript);
+ }
+ [currentScript release];
+ }
+ }
+
timerUpdating = YES;
NS_DURING
NSString *artist = nil;
NSString *time = nil;
NSString *track = nil;
+ NSImage *art = nil;
int rating = -1;
NS_DURING
}
}
+ if ( [df boolForKey:@"showAlbumArtwork"] ) {
+ NS_DURING
+ art = [[self currentRemote] currentSongAlbumArt];
+ NS_HANDLER
+ [self networkError:localException];
+ NS_ENDHANDLER
+ }
+
} else {
title = NSLocalizedString(@"noSongPlaying", @"No song is playing.");
}
artist:artist
time:time
track:track
- rating:rating];
+ rating:rating
+ image:art];
}
- (void)showUpcomingSongs