From: Joseph Spiros Date: Wed, 1 Oct 2003 15:49:11 +0000 (+0000) Subject: Moving radio bug fixing to iTunes remote, and updated MenuController. X-Git-Tag: v1.0~23 X-Git-Url: http://git.ithinksw.org/MenuTunes.git/commitdiff_plain/7f6104672f5d8a1ca5eb046ef7f5bac51a9acd80 Moving radio bug fixing to iTunes remote, and updated MenuController. --- diff --git a/MenuController.m b/MenuController.m index edf7fb3..c157903 100755 --- a/MenuController.m +++ b/MenuController.m @@ -220,7 +220,6 @@ [menu addItemWithTitle:title action:nil keyEquivalent:@""]]; } - if (!_playingRadio) { if ([defaults boolForKey:@"showAlbum"]) { NSString *curAlbum = [currentRemote currentSongAlbum]; ITDebugLog(@"Add Track Album (\"%@\") menu item.", curAlbum); @@ -242,20 +241,18 @@ if ([defaults boolForKey:@"showTrackNumber"]) { int track = [currentRemote currentSongTrack]; ITDebugLog(@"Add Track Number (\"Track %i\") menu item.", track); - if ( track ) { + if ( track > 0 ) { [menu indentItem: [menu addItemWithTitle:[NSString stringWithFormat:@"%@ %i", NSLocalizedString(@"track", @"Track"), track] action:nil keyEquivalent:@""]]; } } - if ([defaults boolForKey:@"showTime"]) { - int left = [[currentRemote currentSongElapsed] intValue]; - NSString *elapsed = [NSString stringWithFormat:@"%i:%02i", left / 60, left % 60]; - ITDebugLog(@"Add Track Elapsed (\"%@/%@\") menu item.", elapsed, [currentRemote currentSongLength]); - [menu indentItem:[menu addItemWithTitle:[NSString stringWithFormat:@"%@/%@", elapsed, [currentRemote currentSongLength]] action:nil keyEquivalent:@""]]; + if ([defaults boolForKey:@"showTime"] && ( ([currentRemote currentSongElapsed] != nil) || ([currentRemote currentSongLength] != nil) )) { + ITDebugLog(@"Add Track Elapsed (\"%@/%@\") menu item.", [currentRemote currentSongElapsed], [currentRemote currentSongLength]); + [menu indentItem:[menu addItemWithTitle:[NSString stringWithFormat:@"%@/%@", [currentRemote currentSongElapsed], [currentRemote currentSongLength]] action:nil keyEquivalent:@""]]; } - if ([defaults boolForKey:@"showTrackRating"]) { + if ([defaults boolForKey:@"showTrackRating"] && ( [currentRemote currentSongRating] != -1.0 )) { NSString *string = nil; switch ((int)([currentRemote currentSongRating] * 5)) { case 0: @@ -280,7 +277,7 @@ ITDebugLog(@"Add Track Rating (\"%@\") menu item.", string); [menu indentItem:[menu addItemWithTitle:string action:nil keyEquivalent:@""]]; } - } + } else { ITDebugLog(@"No Track is Playing, Add \"No Song\" menu item."); [menu addItemWithTitle:NSLocalizedString(@"noSong", @"No Song") action:NULL keyEquivalent:@""]; @@ -309,10 +306,7 @@ [tempItem setState:NSOffState]; } [[_eqMenu itemAtIndex:([currentRemote currentEQPresetIndex] - 1)] setState:NSOnState]; - } - - if (!_playingRadio) { - if ([nextObject isEqualToString:@"songRating"]) { + } else if ([nextObject isEqualToString:@"songRating"] && ( [currentRemote currentSongRating] != -1 )) { ITDebugLog(@"Add \"Song Rating\" submenu."); tempItem = [menu addItemWithTitle:NSLocalizedString(@"songRating", @"Song Rating") action:nil @@ -341,7 +335,6 @@ } } } - } ITDebugLog(@"Finished building menu."); [_currentMenu release]; _currentMenu = menu; diff --git a/iTunesRemote.m b/iTunesRemote.m index f197b97..d501091 100755 --- a/iTunesRemote.m +++ b/iTunesRemote.m @@ -230,6 +230,7 @@ int temp1; ITDebugLog(@"Getting current album track count."); temp1 = [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKeyForNumber:@"pTrC" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:savedPSN]; + if ( [self currentPlaylistClass] == ITMTRemotePlayerRadioPlaylist ) { temp1 = 0; } ITDebugLog(@"Getting current album track count done."); return temp1; } @@ -239,6 +240,7 @@ int temp1; ITDebugLog(@"Getting current song track."); temp1 = [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKeyForNumber:@"pTrN" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:savedPSN]; + if ( [self currentPlaylistClass] == ITMTRemotePlayerRadioPlaylist ) { temp1 = 0; } ITDebugLog(@"Getting current song track done."); return temp1; } @@ -274,7 +276,11 @@ { NSString *temp1; ITDebugLog(@"Getting current song artist."); - temp1 = [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pArt" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:savedPSN]; + if ( [self currentPlaylistClass] != ITMTRemotePlayerRadioPlaylist ) { + temp1 = [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pArt" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:savedPSN]; + } else { + temp1 = @""; + } ITDebugLog(@"Getting current song artist done."); return ( ([temp1 length]) ? temp1 : nil ) ; } @@ -283,7 +289,11 @@ { NSString *temp1; ITDebugLog(@"Getting current song album."); - temp1 = [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pAlb" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:savedPSN]; + if ( [self currentPlaylistClass] != ITMTRemotePlayerRadioPlaylist ) { + temp1 = [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pAlb" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:savedPSN]; + } else { + temp1 = @""; + } ITDebugLog(@"Getting current song album done."); return ( ([temp1 length]) ? temp1 : nil ) ; } @@ -302,6 +312,7 @@ NSString *temp1; ITDebugLog(@"Getting current song length."); temp1 = [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pTim" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:savedPSN]; + if ( [self currentPlaylistClass] == ITMTRemotePlayerRadioPlaylist ) { temp1 = nil; } ITDebugLog(@"Getting current song length done."); return temp1; } @@ -323,6 +334,8 @@ final = duration - current; finalString = [self formatTimeInSeconds:final]; + if ( [self currentPlaylistClass] == ITMTRemotePlayerRadioPlaylist ) { finalString = nil; } + ITDebugLog(@"Getting current song remaining time done."); return finalString; @@ -339,6 +352,7 @@ sendAEWithRequestedKeyForNumber:@"pPos" eventClass:@"core" eventID:@"getd" appPSN:savedPSN]; finalString = [self formatTimeInSeconds:final]; + if ( [self currentPlaylistClass] == ITMTRemotePlayerRadioPlaylist ) { finalString = nil; } ITDebugLog(@"Getting current song elapsed time done."); return finalString; } @@ -349,6 +363,7 @@ ITDebugLog(@"Getting current song rating."); temp1 = ((float)[[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKeyForNumber:@"pRte" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:savedPSN] / 100.0); + if ( [self currentPlaylistClass] == ITMTRemotePlayerRadioPlaylist ) { temp1 = -1.0; } ITDebugLog(@"Getting current song rating done."); return temp1; } @@ -356,6 +371,7 @@ - (BOOL)setCurrentSongRating:(float)rating { ITDebugLog(@"Setting current song rating to %f.", rating); + if ( [self currentPlaylistClass] == ITMTRemotePlayerRadioPlaylist ) { return NO; } [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"data:long(%lu), '----':obj { form:'prop', want:type('prop'), seld:type('pRte'), from:obj { form:'indx', want:type('cTrk'), seld:long(%lu), from:obj { form:'prop', want:type('prop'), seld:type('pPla'), from:'null'() } } }",(long)(rating*100),[self currentSongIndex]] eventClass:@"core" eventID:@"setd" appPSN:savedPSN]; ITDebugLog(@"Setting current song rating to %f done.", rating); return YES;