Uncommented the multisource playlist chooser.
[MenuTunes.git] / MainController.m
index 307800f..2400f9e 100755 (executable)
@@ -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
@@ -316,6 +331,18 @@ 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;
+            } else {
+                toolTip = @"No Song Playing";
+            }
+            [statusItem setToolTip:toolTip];
         NS_HANDLER
             [self networkError:localException];
         NS_ENDHANDLER
@@ -417,8 +444,8 @@ static MainController *sharedController;
 {
     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