X-Git-Url: http://git.ithinksw.org/MenuTunes.git/blobdiff_plain/c56d57f54a2e787ef6ca12f070ad8b48789b7d7a..0ced2b5d7ef46638241adf5d4c5811afe1fc65c7:/iTunesRemote.m diff --git a/iTunesRemote.m b/iTunesRemote.m index d3d50a2..5c63183 100755 --- a/iTunesRemote.m +++ b/iTunesRemote.m @@ -222,7 +222,7 @@ ITDebugLog(@"Getting song title at index %i.", index); temp1 = [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"'----':obj { form:'prop', want:type('prop'), seld:type('pnam'), from:obj { form:'indx', want:type('cTrk'), seld:long(%lu), from:obj { form:'prop', want:type('prop'), seld:type('pPla'), from:'null'() } } }",index] eventClass:@"core" eventID:@"getd" appPSN:savedPSN]; ITDebugLog(@"Getting song title at index %i done.", index); - return temp1; + return ( ([temp1 length]) ? temp1 : nil ) ; } - (int)currentAlbumTrackCount @@ -249,7 +249,7 @@ ITDebugLog(@"Getting current unique identifier."); temp1 = [NSString stringWithFormat:@"%i-%i", [self currentPlaylistIndex], [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKeyForNumber:@"pDID" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:savedPSN]]; ITDebugLog(@"Getting current unique identifier done."); - return temp1; + return ( ([temp1 length]) ? temp1 : nil ) ; } - (int)currentSongIndex @@ -267,7 +267,7 @@ ITDebugLog(@"Getting current song title."); temp1 = [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pnam" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:savedPSN]; ITDebugLog(@"Getting current song title done."); - return temp1; + return ( ([temp1 length]) ? temp1 : nil ) ; } - (NSString *)currentSongArtist @@ -276,7 +276,7 @@ ITDebugLog(@"Getting current song artist."); temp1 = [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pArt" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:savedPSN]; ITDebugLog(@"Getting current song artist done."); - return temp1; + return ( ([temp1 length]) ? temp1 : nil ) ; } - (NSString *)currentSongAlbum @@ -285,7 +285,7 @@ ITDebugLog(@"Getting current song album."); temp1 = [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pAlb" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:savedPSN]; ITDebugLog(@"Getting current song album done."); - return temp1; + return ( ([temp1 length]) ? temp1 : nil ) ; } - (NSString *)currentSongGenre @@ -294,7 +294,7 @@ ITDebugLog(@"Getting current song genre."); temp1 = [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pGen" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:savedPSN]; ITDebugLog(@"Getting current song genre done."); - return temp1; + return ( ([temp1 length]) ? temp1 : nil ) ; } - (NSString *)currentSongLength @@ -310,6 +310,8 @@ { long duration; long current; + long final; + NSString *finalString; ITDebugLog(@"Getting current song remaining time."); @@ -317,20 +319,52 @@ sendTwoTierAEWithRequestedKeyForNumber:@"pDur" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:savedPSN]; current = [[ITAppleEventCenter sharedCenter] sendAEWithRequestedKeyForNumber:@"pPos" eventClass:@"core" eventID:@"getd" appPSN:savedPSN]; + + final = duration - current; + if (final > 60) { + if (final > 3600) { + if (final > 216000) { + finalString = [NSString stringWithFormat:@"%i:%i:%i:%i",(final / 216000),((final % 216000) / 3600),(((final / 216000) % 3600) / 60),(((final / 216000) % 3600) % 60)]; + } else { + finalString = [NSString stringWithFormat:@"%i:%i:%i",(final / 3600),((final % 3600) / 60),((final % 3600) % 60)]; + } + } else { + finalString = [NSString stringWithFormat:@"%i:%i",(final / 60),(final % 60)]; + } + } else { + finalString = [[NSNumber numberWithLong:final] stringValue]; + } + ITDebugLog(@"Getting current song remaining time done."); - return [[NSNumber numberWithLong:duration - current] stringValue]; + + return finalString; } - (NSString *)currentSongElapsed { - long current; + long final; + NSString *finalString; ITDebugLog(@"Getting current song elapsed time."); - current = [[ITAppleEventCenter sharedCenter] + final = [[ITAppleEventCenter sharedCenter] sendAEWithRequestedKeyForNumber:@"pPos" eventClass:@"core" eventID:@"getd" appPSN:savedPSN]; + + if (final > 60) { + if (final > 3600) { + if (final > 216000) { + finalString = [NSString stringWithFormat:@"%i:%i:%i:%i",(final / 216000),((final % 216000) / 3600),(((final / 216000) % 3600) / 60),(((final / 216000) % 3600) % 60)]; + } else { + finalString = [NSString stringWithFormat:@"%i:%i:%i",(final / 3600),((final % 3600) / 60),((final % 3600) % 60)]; + } + } else { + finalString = [NSString stringWithFormat:@"%i:%i",(final / 60),(final % 60)]; + } + } else { + finalString = [[NSNumber numberWithLong:final] stringValue]; + } ITDebugLog(@"Getting current song elapsed time done."); - return [[NSNumber numberWithLong:current] stringValue]; + return finalString; } - (float)currentSongRating @@ -420,7 +454,6 @@ } else { final = NO; } - NSLog(@"shuffleEnabled: final = %i", final); ITDebugLog(@"Getting shuffle enabled status done."); return final; } @@ -550,6 +583,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;