[[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
}
[self setLatestSongIdentifier:[[self currentRemote] playerStateUniqueIdentifier]];
+
+ NSString *artist = [[self currentRemote] currentSongArtist];
+ NSString *title = [[self currentRemote] currentSongTitle];
+ NSString *toolTip;
+ if (artist) {
+ toolTip = [NSString stringWithFormat:@"%@ - %@", artist, title];
+ } else if (title) {
+ toolTip = title;
+ } else {
+ toolTip = @"No Song Playing";
+ }
+ [statusItem setToolTip:toolTip];
NS_HANDLER
[self networkError:localException];
NS_ENDHANDLER
{
ITDebugLog(@"Selecting playlist %i", index);
NS_DURING
- //[[self currentRemote] switchToPlaylistAtIndex:(index % 1000) ofSourceAtIndex:(index / 1000)];
- [[self currentRemote] switchToPlaylistAtIndex:index];
+ [[self currentRemote] switchToPlaylistAtIndex:(index % 1000) ofSourceAtIndex:(index / 1000)];
+ //[[self currentRemote] switchToPlaylistAtIndex:index];
NS_HANDLER
[self networkError:localException];
NS_ENDHANDLER
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