From c17d6e218e09277277fa3d0b267407e229b2ad15 Mon Sep 17 00:00:00 2001 From: Kent Sutherland Date: Fri, 30 Jan 2004 21:38:53 +0000 Subject: [PATCH] Implemented running scripts on song change. --- MainController.m | 15 +++++++++++++++ MenuController.m | 14 +++++++------- StatusWindowController.m | 1 - iTunesRemote.m | 4 +++- libValidate.a | Bin 8032 -> 8032 bytes 5 files changed, 25 insertions(+), 9 deletions(-) diff --git a/MainController.m b/MainController.m index 307800f..f9e23ed 100755 --- a/MainController.m +++ b/MainController.m @@ -305,6 +305,21 @@ static MainController *sharedController; 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 diff --git a/MenuController.m b/MenuController.m index b7f8f85..c2970f6 100755 --- a/MenuController.m +++ b/MenuController.m @@ -21,7 +21,7 @@ - (NSMenu *)playlistsMenu; - (NSMenu *)eqMenu; - (void)setKeyEquivalentForCode:(short)code andModifiers:(long)modifiers - onItem:(NSMenuItem *)item; + onItem:(id )item; //- (BOOL)iPodAtPathAutomaticallyUpdates:(NSString *)name; @end @@ -42,7 +42,7 @@ NSArray *menuArray = [defaults arrayForKey:@"menu"]; NSEnumerator *enumerator = [menuArray objectEnumerator]; NSString *nextObject; - NSMenuItem *tempItem; + id tempItem; NSEnumerator *itemEnum; ITHotKey *hotKey; NSArray *hotKeys = [[ITHotKeyCenter sharedCenter] allHotKeys]; @@ -399,7 +399,7 @@ - (NSMenu *)menuForNoPlayer { NSMenu *menu = [[NSMenu alloc] initWithTitle:@""]; - NSMenuItem *tempItem; + id tempItem; ITDebugLog(@"Creating menu for when player isn't running."); NS_DURING ITDebugLog(@"Add \"Open %@\" menu item.", [[[MainController sharedController] currentRemote] playerSimpleName]); @@ -506,7 +506,7 @@ NS_HANDLER [[MainController sharedController] networkError:localException]; NS_ENDHANDLER - NSMenuItem *songItem; + id songItem; ITDebugLog(@"Adding song: %@", curSong); songItem = [upcomingSongsMenu addItemWithTitle:curSong action:@selector(performUpcomingSongsMenuAction:) keyEquivalent:@""]; [songItem setTag:i]; @@ -529,7 +529,7 @@ { NSMenu *playlistsMenu = [[NSMenu alloc] initWithTitle:@""]; NSArray *playlists; - NSMenuItem *tempItem; + id tempItem; ITMTRemotePlayerSource source = [[[MainController sharedController] currentRemote] currentSource]; int i; NS_DURING @@ -633,7 +633,7 @@ { NSMenu *eqMenu = [[NSMenu alloc] initWithTitle:@""]; NSArray *eqPresets; - NSMenuItem *tempItem; + id tempItem; int i; NS_DURING @@ -761,7 +761,7 @@ } - (void)setKeyEquivalentForCode:(short)code andModifiers:(long)modifiers - onItem:(NSMenuItem *)item + onItem:(id )item { unichar charcode = 'a'; int i; diff --git a/StatusWindowController.m b/StatusWindowController.m index 3e7522e..3108cd9 100755 --- a/StatusWindowController.m +++ b/StatusWindowController.m @@ -115,7 +115,6 @@ static StatusWindowController *sharedController; if ( art != nil ) { image = art; - NSSize size = [image size]; [image setScalesWhenResized:YES]; [image setSize:NSMakeSize(110, 110)]; /*if (size.width > 110 && size.width > size.height) { diff --git a/iTunesRemote.m b/iTunesRemote.m index 3c1ce75..7a0c9cb 100755 --- a/iTunesRemote.m +++ b/iTunesRemote.m @@ -419,10 +419,12 @@ { NSAppleScript *script; NSAppleEventDescriptor *moof; - NSData *data; + NSData *data; + ITDebugLog(@"Getting current song album art."); script = [[NSAppleScript alloc] initWithSource:@"tell application \"iTunes\"\nget data of artwork 1 of current track\nend tell"]; moof = [script executeAndReturnError:nil]; data = [moof data]; + ITDebugLog(@"Getting current song album art done."); if (data) { return [[[NSImage alloc] initWithData:data] autorelease]; } else { diff --git a/libValidate.a b/libValidate.a index 576d85e3dd4a334086696890295d7d340f727749..a3d44e3eda4541e93b62ece65b95a244b8045e36 100755 GIT binary patch delta 18 ZcmaE0_rPv~G`p#Zv7xb%(MBaZc>q2a1%m(p delta 18 ZcmaE0_rPv~G`q2>k+HFv*+wNhc>q2>1&aUx -- 2.20.1