- (void)timerUpdate
{
- if ( [self songChanged] && (timerUpdating != YES) && (playerRunningState == ITMTRemotePlayerRunning) ) {
+ if ([[self currentRemote] playerStateUniqueIdentifier] == nil) {
+ [statusItem setEnabled:NO];
+ [statusItem setToolTip:@"iTunes not responding."];
+ return;
+ } else if (![statusItem isEnabled]) {
+ [statusItem setEnabled:YES];
+ [statusItem setToolTip:_toolTip];
+ return;
+ }
+
+ if ( [self songChanged] && (timerUpdating != YES) && (playerRunningState == ITMTRemotePlayerRunning) ) {
ITDebugLog(@"The song changed.");
if ([df boolForKey:@"runScripts"]) {
NSArray *scripts = [[NSFileManager defaultManager] directoryContentsAtPath:[NSHomeDirectory() stringByAppendingPathComponent:@"Library/Application Support/MenuTunes/Scripts"]];
if ( [df boolForKey:@"showToolTip"] ) {
NSString *artist = [[self currentRemote] currentSongArtist];
NSString *title = [[self currentRemote] currentSongTitle];
- NSString *toolTip;
ITDebugLog(@"Creating status item tooltip.");
if (artist) {
- toolTip = [NSString stringWithFormat:@"%@ - %@", artist, title];
+ _toolTip = [NSString stringWithFormat:@"%@ - %@", artist, title];
} else if (title) {
- toolTip = title;
+ _toolTip = title;
} else {
- toolTip = @"No Song Playing";
+ _toolTip = @"No Song Playing";
}
- [statusItem setToolTip:toolTip];
+ [statusItem setToolTip:_toolTip];
} else {
[statusItem setToolTip:nil];
}
NS_DURING
[[_eqMenu itemAtIndex:0] setState:[mtr equalizerEnabled] ? NSOnState : NSOffState];
[[_eqMenu itemAtIndex:([mtr currentEQPresetIndex] + 1)] setState:NSOnState];
- [[_eqMenu itemAtIndex:([mtr currentEQPresetIndex] - 1)] setState:NSOnState];
NS_HANDLER
[[MainController sharedController] networkError:localException];
NS_ENDHANDLER
tempItem = [eqMenu addItemWithTitle:@"Enabled" action:@selector(performEqualizerMenuAction:) keyEquivalent:@""];
[tempItem setTag:-1];
[tempItem setTarget:self];
- NS_DURING
- [tempItem setState:[[[MainController sharedController] currentRemote] equalizerEnabled] ? NSOnState : NSOffState];
- NS_HANDLER
- [[MainController sharedController] networkError:localException];
- NS_ENDHANDLER
[eqMenu addItem:[NSMenuItem separatorItem]];
for (i = 0; i < [eqPresets count]; i++) {
{
NSString *temp1;
ITDebugLog(@"Getting current unique identifier.");
- SInt32 cls = [ITSendAEWithString(@"'----':obj { form:'prop', want:type('prop'), seld:type('pcls'), from:obj { form:'prop', want:type('prop'), seld:type('pTrk'), from:'null'() } }", 'core', 'getd', &savedPSN) int32Value];
+ NSAppleEventDescriptor *descriptor = ITSendAEWithString(@"'----':obj { form:'prop', want:type('prop'), seld:type('pcls'), from:obj { form:'prop', want:type('prop'), seld:type('pTrk'), from:'null'() } }", 'core', 'getd', &savedPSN);
+ if (descriptor == nil) {
+ return nil;
+ }
+ SInt32 cls = [descriptor int32Value];
if ( ([self currentPlaylistClass] == ITMTRemotePlayerRadioPlaylist) || (cls == 'cURT') ) {
+ NSString *bad = [NSString stringWithUTF8String:"浳湧"];
temp1 = [ITSendAEWithKey('pStT', 'core', 'getd', &savedPSN) stringValue];
- NSLog(@"%@", temp1);
+ if ([temp1 isEqualToString:bad]) {
+ temp1 = [ITSendAEWithString(@"'----':obj { form:'prop', want:type('prop'), seld:type('pnam'), from:obj { form:'prop', want:type('prop'), seld:type('pTrk'), from:'null'() } }", 'core', 'getd', &savedPSN) stringValue];
+ }
} else {
temp1 = [NSString stringWithFormat:@"%i-%i", [self currentPlaylistIndex], [ITSendAEWithString(@"'----':obj { form:'prop', want:type('prop'), seld:type('pDID'), from:obj { form:'prop', want:type('prop'), seld:type('pTrk'), from:'null'() } }", 'core', 'getd', &savedPSN) int32Value]];
}
NSString *bad = [NSString stringWithUTF8String:"浳湧"];
temp1 = [ITSendAEWithKey('pStT', 'core', 'getd', &savedPSN) stringValue];
if ([temp1 isEqualToString:bad]) {
- NSLog(@"arrrr");
temp1 = [ITSendAEWithString(@"'----':obj { form:'prop', want:type('prop'), seld:type('pnam'), from:obj { form:'prop', want:type('prop'), seld:type('pTrk'), from:'null'() } }", 'core', 'getd', &savedPSN) stringValue];
}
temp1 = [temp1 stringByAppendingString:@" (Stream)"];
NSString *finalString;
ITDebugLog(@"Getting current song elapsed time.");
- final = (long)[ITSendAEWithString(@"'----':obj { form:'prop', want:type('prop'), seld:type('pPos'), from:'null'() }", 'core', 'getd', &savedPSN) int32Value];
+ final = (long)[ITSendAEWithKey('pPos', 'core', 'getd', &savedPSN) int32Value];
finalString = [self formatTimeInSeconds:final];
ITDebugLog(@"Getting current song elapsed time done.");
return finalString;