Plugin API changes
[MenuTunes.git] / iTunesRemote.m
index a7d5dcc..d50d55d 100755 (executable)
@@ -9,7 +9,7 @@
 
 - (NSString *)title
 {
-    return @"iTunes Plug-in";
+    return @"iTunes";
 }
 
 - (NSString *)information;
@@ -43,7 +43,7 @@
     return YES;
 }
 
-- (BOOL)isAppRunning
+- (ITMTRemotePlayerRunningStatus)playerRunningStatus
 {
     NSArray *apps = [[NSWorkspace sharedWorkspace] launchedApplications];
     int i;
     for (i = 0; i < count; i++) {
         if ([[[apps objectAtIndex:i] objectForKey:@"NSApplicationName"]
                 isEqualToString:@"iTunes"]) {
-            return YES;
+            return ITMTRemotePlayerRunning;
         }
     }
-    return NO;
+    return ITMTRemotePlayerNotRunning;
 }
 
-- (PlayerState)playerState
+- (ITMTRemotePlayerState)playerState
 {
     long result = [[ITAppleEventCenter sharedCenter] sendAEWithSendStringForNumber:@"'----':obj { form:'prop', want:type('prop'), seld:type('pPlS'), from:'null'() }" eventClass:@"core" eventID:@"getd" appPSN:iTunesPSN];
     
     {
         default:
         case 'kPSS':
-            return stopped;
+            return ITMTRemotePlayerStopped;
         case 'kPSP':
-            return playing;
+            return ITMTRemotePlayerPlaying;
         case 'kPSp':
-            return paused;
+            return ITMTRemotePlayerPaused;
         case 'kPSR':
-            return rewinding;
+            return ITMTRemotePlayerRewinding;
         case 'kPSF':
-            return forwarding;
+            return ITMTRemotePlayerForwarding;
     }
     
     return stopped;
     return [[NSNumber numberWithLong:duration - current] stringValue];
 }
 
+- (float)currentSongRating
+{
+    return 0.00;
+}
+
+- (BOOL)setCurrentSongRating:(float)rating
+{
+    return NO;
+}
+
+- (float)volume
+{
+    return 1.00;
+}
+
+- (BOOL)setVolume:(float)volume
+{
+    return NO;
+}
+
 - (NSArray *)eqPresets;
 {
     int i;
 - (BOOL)switchToPlaylistAtIndex:(int)index
 {
     [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"'----':obj { form:'indx', want:type('cPly'), seld:long(%lu), from:() }",index] eventClass:@"hook" eventID:@"Play" appPSN:iTunesPSN];
-    return NO;
+    return YES;
 }
 
 - (BOOL)switchToSongAtIndex:(int)index
 {
     [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"'----':obj { form:'indx', want:type('cTrk'), seld:long(%lu), from:obj { form:'prop', want:type('prop'), seld:type('pPla'), from:() } }",index] eventClass:@"hook" eventID:@"Play" appPSN:iTunesPSN];
-    return NO;
+    return YES;
 }
 
 - (BOOL)switchToEQAtIndex:(int)index
 {
-    [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"data:obj { form:'name', want:type('cEQP'), seld:long(%lu), from:'null'() }, '----':obj { form:'prop', want:type('prop'), seld:type('pEQP'), from:'null'() }",index] eventClass:@"core" eventID:@"setd" appPSN:iTunesPSN];
+    [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"data:obj { form:'indx', want:type('cEQP'), seld:long(%lu), from:'null'() }, '----':obj { form:'prop', want:type('prop'), seld:type('pEQP'), from:'null'() }",index] eventClass:@"core" eventID:@"setd" appPSN:iTunesPSN];
     [[ITAppleEventCenter sharedCenter] sendAEWithSendString:@"data:1, '----':obj { form:'prop', want:type('prop'), seld:type('pEQ '), from:'null'() }" eventClass:@"core" eventID:@"setd" appPSN:iTunesPSN];
-    return NO;
+    return YES;
 }
 
 - (ProcessSerialNumber)iTunesPSN