X-Git-Url: http://git.ithinksw.org/MenuTunes.git/blobdiff_plain/ca27dcbdf19a0b76ef78b3f6124bd011600a6502..d8c90094f595a5f513d844ea316e2fb8b1e479b7:/MainController.m diff --git a/MainController.m b/MainController.m index a543288..6937a6f 100755 --- a/MainController.m +++ b/MainController.m @@ -10,11 +10,7 @@ #import "StatusWindowController.h" #import "StatusItemHack.h" -@interface NSImage (WeeAdditions) -- (NSImage *)imageScaledSmoothlyToSize:(NSSize)scaledSize; -@end - -@implementation NSImage (WeeAdditions) +@implementation NSImage (SmoothAdditions) - (NSImage *)imageScaledSmoothlyToSize:(NSSize)scaledSize { @@ -36,7 +32,6 @@ @interface MainController(Private) - (ITMTRemote *)loadRemote; -- (void)timerUpdate; - (void)setLatestSongIdentifier:(NSString *)newIdentifier; - (void)applicationLaunched:(NSNotification *)note; - (void)applicationTerminated:(NSNotification *)note; @@ -214,7 +209,7 @@ static MainController *sharedController; globalPrefs = [[df persistentDomainForName:@".GlobalPreferences"] mutableCopy]; if (date) { [globalPrefs setObject:date forKey:@"ITMTTrialStart"]; - [globalPrefs setObject:[NSNumber numberWithInt:1200] forKey:@"ITMTTrialVers"]; + [globalPrefs setObject:[NSNumber numberWithInt:MT_CURRENT_VERSION] forKey:@"ITMTTrialVers"]; } else { [globalPrefs removeObjectForKey:@"ITMTTrialStart"]; [globalPrefs removeObjectForKey:@"ITMTTrialVers"]; @@ -236,14 +231,14 @@ static MainController *sharedController; if (![self blingBling]) { if ( (! [self getBlingTime] ) || ([now timeIntervalSinceDate:[self getBlingTime]] < 0) ) { [self setBlingTime:now]; - } else if ([[[df persistentDomainForName:@".GlobalPreferences"] objectForKey:@"ITMTTrialVers"] intValue] < 1200) { + } else if ([[[df persistentDomainForName:@".GlobalPreferences"] objectForKey:@"ITMTTrialVers"] intValue] < MT_CURRENT_VERSION) { if ([now timeIntervalSinceDate:[self getBlingTime]] >= 345600) { [self setBlingTime:[now addTimeInterval:-259200]]; } else { NSMutableDictionary *globalPrefs; [df synchronize]; globalPrefs = [[df persistentDomainForName:@".GlobalPreferences"] mutableCopy]; - [globalPrefs setObject:[NSNumber numberWithInt:1200] forKey:@"ITMTTrialVers"]; + [globalPrefs setObject:[NSNumber numberWithInt:MT_CURRENT_VERSION] forKey:@"ITMTTrialVers"]; [df setPersistentDomain:globalPrefs forName:@".GlobalPreferences"]; [df synchronize]; [globalPrefs release]; @@ -265,7 +260,7 @@ static MainController *sharedController; [self setupHotKeys]; if (![refreshTimer isValid]) { [refreshTimer release]; - refreshTimer = [[NSTimer scheduledTimerWithTimeInterval:0.5 + refreshTimer = [[NSTimer scheduledTimerWithTimeInterval:([networkController isConnectedToServer] ? 10.0 : 0.5) target:self selector:@selector(timerUpdate) userInfo:nil @@ -349,9 +344,11 @@ static MainController *sharedController; NSArray *scripts = [[NSFileManager defaultManager] directoryContentsAtPath:[NSHomeDirectory() stringByAppendingPathComponent:@"Library/Application Support/MenuTunes/Scripts"]]; NSEnumerator *scriptsEnum = [scripts objectEnumerator]; NSString *nextScript; + ITDebugLog(@"Running AppleScripts for song change."); while ( (nextScript = [scriptsEnum nextObject]) ) { NSDictionary *error; NSAppleScript *currentScript = [[NSAppleScript alloc] initWithContentsOfURL:[NSURL fileURLWithPath:[[NSHomeDirectory() stringByAppendingPathComponent:@"Library/Application Support/MenuTunes/Scripts"] stringByAppendingPathComponent:nextScript]] error:&error]; + ITDebugLog(@"Running script: %@", nextScript); if (!currentScript || ![currentScript executeAndReturnError:nil]) { ITDebugLog(@"Error running script %@.", nextScript); } @@ -371,17 +368,23 @@ static MainController *sharedController; [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; + //Create the tooltip for the status item + if ( [df boolForKey:@"showToolTip"] ) { + NSString *artist = [[self currentRemote] currentSongArtist]; + NSString *title = [[self currentRemote] currentSongTitle]; + NSString *toolTip; + ITDebugLog(@"Creating status item tooltip."); + if (artist) { + toolTip = [NSString stringWithFormat:@"%@ - %@", artist, title]; + } else if (title) { + toolTip = title; + } else { + toolTip = @"No Song Playing"; + } + [statusItem setToolTip:toolTip]; } else { - toolTip = @"No Song Playing"; + [statusItem setToolTip:nil]; } - [statusItem setToolTip:toolTip]; NS_HANDLER [self networkError:localException]; NS_ENDHANDLER @@ -581,6 +584,11 @@ static MainController *sharedController; // // +- (MenuController *)menuController +{ + return menuController; +} + - (void)closePreferences { ITDebugLog(@"Preferences closed."); @@ -752,6 +760,7 @@ static MainController *sharedController; NSString *title = nil; NSString *album = nil; NSString *artist = nil; + NSString *composer = nil; NSString *time = nil; NSString *track = nil; NSImage *art = nil; @@ -784,6 +793,14 @@ static MainController *sharedController; NS_ENDHANDLER } + if ( [df boolForKey:@"showComposer"] ) { + NS_DURING + composer = [[self currentRemote] currentSongComposer]; + NS_HANDLER + [self networkError:localException]; + NS_ENDHANDLER + } + if ( [df boolForKey:@"showTime"] ) { NS_DURING time = [NSString stringWithFormat:@"%@: %@ / %@", @@ -846,6 +863,7 @@ static MainController *sharedController; title:title album:album artist:artist + composer:composer time:time track:track rating:rating @@ -1231,4 +1249,4 @@ static MainController *sharedController; [super dealloc]; } -@end \ No newline at end of file +@end