X-Git-Url: http://git.ithinksw.org/MenuTunes.git/blobdiff_plain/2f144305df58bb1af98d35200c2b9a358b8aa41f..6f276052ff907885a6674cd5fbec7aa2d8082cf8:/iTunesRemote.m?ds=sidebyside diff --git a/iTunesRemote.m b/iTunesRemote.m index a30156c..c00d5fa 100755 --- a/iTunesRemote.m +++ b/iTunesRemote.m @@ -102,10 +102,6 @@ switch (result) { - default: - case 'kPSS': - ITDebugLog(@"Getting player playing state done. Player state: Stopped"); - return ITMTRemotePlayerStopped; case 'kPSP': ITDebugLog(@"Getting player playing state done. Player state: Playing"); return ITMTRemotePlayerPlaying; @@ -118,6 +114,10 @@ case 'kPSF': ITDebugLog(@"Getting player playing state done. Player state: Forwarding"); return ITMTRemotePlayerForwarding; + case 'kPSS': + default: + ITDebugLog(@"Getting player playing state done. Player state: Stopped"); + return ITMTRemotePlayerStopped; } ITDebugLog(@"Getting player playing state done. Player state: Stopped"); return ITMTRemotePlayerStopped; @@ -157,15 +157,9 @@ ITDebugLog(@"Getting current source."); - fourcc = (unsigned long)[[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pKnd" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:savedPSN]; + fourcc = (unsigned long)[[ITAppleEventCenter sharedCenter] sendAEWithSendStringForNumber :[NSString stringWithFormat:@"'----':obj { form:'prop', want:type('prop'), seld:type('pKnd'), from:obj { form:'prop', want:type('prop'), seld:type('ctnr'), from:obj { form:'prop', want:type('prop'), seld:type('pPla'), from:'null'() } } }"] eventClass:@"core" eventID:@"getd" appPSN:savedPSN]; + switch (fourcc) { - case 'kUnk': - case 'kLib': - case 'kShd': - default: - ITDebugLog(@"Getting current source done. Source: Library."); - return ITMTRemoteLibrarySource; - break; case 'kTun': ITDebugLog(@"Getting current source done. Source: Radio."); return ITMTRemoteRadioSource; @@ -182,6 +176,13 @@ ITDebugLog(@"Getting current source done. Source: CD."); return ITMTRemoteCDSource; break; + case 'kUnk': + case 'kLib': + case 'kShd': + default: + ITDebugLog(@"Getting current source done. Source: Library."); + return ITMTRemoteLibrarySource; + break; } } @@ -320,6 +321,18 @@ return [[NSNumber numberWithLong:duration - current] stringValue]; } +- (NSString *)currentSongElapsed +{ + long current; + + ITDebugLog(@"Getting current song elapsed time."); + + current = [[ITAppleEventCenter sharedCenter] + sendAEWithRequestedKeyForNumber:@"pPos" eventClass:@"core" eventID:@"getd" appPSN:savedPSN]; + ITDebugLog(@"Getting current song elapsed time done."); + return [[NSNumber numberWithLong:current] stringValue]; +} + - (float)currentSongRating { float temp1; @@ -399,10 +412,17 @@ - (BOOL)shuffleEnabled { ITDebugLog(@"Getting shuffle enabled status."); + BOOL final; int result = [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKeyForNumber:@"pShf" fromObjectByKey:@"pPla" eventClass:@"core" eventID:@"getd" appPSN:savedPSN]; + if (result != 0) { + final = YES; + } else { + final = NO; + } + NSLog(@"shuffleEnabled: final = %i", final); ITDebugLog(@"Getting shuffle enabled status done."); - return result; + return final; } - (BOOL)setShuffleEnabled:(BOOL)enabled @@ -446,16 +466,16 @@ ITDebugLog(@"Setting repeat mode to %i", repeatMode); switch (repeatMode) { - default: - case ITMTRemotePlayerRepeatOff: - m00f = "kRp0"; - break; case ITMTRemotePlayerRepeatOne: m00f = "kRp1"; break; case ITMTRemotePlayerRepeatAll: m00f = "kRpA"; break; + case ITMTRemotePlayerRepeatOff: + default: + m00f = "kRp0"; + break; } [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"data:'%s', '----':obj { form:'prop', want:type('prop'), seld:type('pRpt'), from:obj { form:'prop', want:type('prop'), seld:type('pPla'), from:() } }",m00f] eventClass:@"core" eventID:@"setd" appPSN:savedPSN]; ITDebugLog(@"Setting repeat mode to %c done", m00f); @@ -530,6 +550,7 @@ { ITDebugLog(@"Switching to EQ preset at index %i", index); // index should count from 0, but itunes counts from 1, so let's add 1. + [self setEqualizerEnabled:YES]; [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"'----':obj { form:'prop', want:type('prop'), seld:type('pEQP'), from:'null'() }, data:obj { form:'indx', want:type('cEQP'), seld:long(%lu), from:'null'() }",(index+1)] eventClass:@"core" eventID:@"setd" appPSN:savedPSN]; ITDebugLog(@"Done switching to EQ preset at index %i", index); return YES;