menu = [[NSMenu alloc] initWithTitle:@""];
- isAppRunning = [currentRemote isAppRunning];
- if (isAppRunning) {
- [self rebuildMenu];
- refreshTimer = [NSTimer scheduledTimerWithTimeInterval:3.5
- target:self
- selector:@selector(timerUpdate)
- userInfo:nil
- repeats:YES];
+ if ([currentRemote isAppRunning]) {
+ [self iTunesLaunched:nil];
} else {
- menu = [[NSMenu alloc] initWithTitle:@""];
- [[menu addItemWithTitle:@"Open iTunes" action:@selector(openiTunes:) keyEquivalent:@""] setTarget:self];
- [[menu addItemWithTitle:@"Preferences" action:@selector(showPreferences:) keyEquivalent:@""] setTarget:self];
- [[menu addItemWithTitle:@"Quit" action:@selector(quitMenuTunes:) keyEquivalent:@""] setTarget:self];
- refreshTimer = nil;
+ [self iTunesTerminated:nil];
}
-
+
statusItem = [[ITStatusItem alloc] initWithStatusBar:[NSStatusBar systemStatusBar]
withLength:NSSquareStatusItemLength];
- (ITMTRemote *)loadRemote
{
NSString *folderPath = [[NSBundle mainBundle] builtInPlugInsPath];
-
+
if (folderPath) {
NSArray *bundlePathList = [NSBundle pathsForResourcesOfType:@"remote" inDirectory:folderPath];
NSEnumerator *enumerator = [bundlePathList objectEnumerator];
trackInfoIndex = -1;
lastSongIndex = -1;
+ lastPlaylistIndex = -1;
didHaveAlbumName = ([[currentRemote currentSongAlbum] length] > 0);
didHaveArtistName = ([[currentRemote currentSongArtist] length] > 0);
}
} else if ([item isEqualToString:@"Fast Forward"]) {
[[menu addItemWithTitle:@"Fast Forward"
- action:@selector(fastForward:)
- keyEquivalent:@""] setTarget:self];
+ action:@selector(fastForward:)
+ keyEquivalent:@""] setTarget:self];
} else if ([item isEqualToString:@"Rewind"]) {
[[menu addItemWithTitle:@"Rewind"
- action:@selector(rewind:)
- keyEquivalent:@""] setTarget:self];
+ action:@selector(rewind:)
+ keyEquivalent:@""] setTarget:self];
} else if ([item isEqualToString:@"Upcoming Songs"]) {
upcomingSongsItem = [menu addItemWithTitle:@"Upcoming Songs"
- action:nil
- keyEquivalent:@""];
+ action:nil
+ keyEquivalent:@""];
} else if ([item isEqualToString:@"Playlists"]) {
playlistItem = [menu addItemWithTitle:@"Playlists"
- action:nil
- keyEquivalent:@""];
+ action:nil
+ keyEquivalent:@""];
} else if ([item isEqualToString:@"EQ Presets"]) {
eqItem = [menu addItemWithTitle:@"EQ Presets"
- action:nil
- keyEquivalent:@""];
+ action:nil
+ keyEquivalent:@""];
} else if ([item isEqualToString:@"PreferencesÉ"]) {
[[menu addItemWithTitle:@"PreferencesÉ"
- action:@selector(showPreferences:)
- keyEquivalent:@""] setTarget:self];
+ action:@selector(showPreferences:)
+ keyEquivalent:@""] setTarget:self];
} else if ([item isEqualToString:@"Quit"]) {
[[menu addItemWithTitle:@"Quit"
- action:@selector(quitMenuTunes:)
- keyEquivalent:@""] setTarget:self];
+ action:@selector(quitMenuTunes:)
+ keyEquivalent:@""] setTarget:self];
} else if ([item isEqualToString:@"Current Track Info"]) {
trackInfoIndex = [menu numberOfItems];
[menu addItemWithTitle:@"No Song"
- action:nil
- keyEquivalent:@""];
+ action:nil
+ keyEquivalent:@""];
} else if ([item isEqualToString:@"<separator>"]) {
[menu addItem:[NSMenuItem separatorItem]];
}
if (!isPlayingRadio) {
if ([defaults boolForKey:@"showTime"]) {
menuItem = [[NSMenuItem alloc] initWithTitle:[NSString stringWithFormat:@" %@", [currentRemote currentSongLength]]
- action:nil
- keyEquivalent:@""];
+ action:nil
+ keyEquivalent:@""];
[menu insertItem:menuItem atIndex:trackInfoIndex + 1];
[menuItem release];
}
if ([curArtistName length] > 0) {
menuItem = [[NSMenuItem alloc] initWithTitle:[NSString stringWithFormat:@" %@", curArtistName]
- action:nil
- keyEquivalent:@""];
+ action:nil
+ keyEquivalent:@""];
[menu insertItem:menuItem atIndex:trackInfoIndex + 1];
[menuItem release];
}
if ([curAlbumName length] > 0) {
menuItem = [[NSMenuItem alloc] initWithTitle:[NSString stringWithFormat:@" %@", curAlbumName]
- action:nil
- keyEquivalent:@""];
+ action:nil
+ keyEquivalent:@""];
[menu insertItem:menuItem atIndex:trackInfoIndex + 1];
[menuItem release];
}
if ([defaults boolForKey:@"showName"]) {
menuItem = [[NSMenuItem alloc] initWithTitle:[NSString stringWithFormat:@" %@", curSongName]
- action:nil
- keyEquivalent:@""];
+ action:nil
+ keyEquivalent:@""];
[menu insertItem:menuItem atIndex:trackInfoIndex + 1];
[menuItem release];
}
NSMenuItem *songItem;
songItem = [[NSMenuItem alloc] initWithTitle:curSong action:@selector(playTrack:) keyEquivalent:@""];
[songItem setTarget:self];
- [songItem setRepresentedObject:[NSNumber numberWithInt:i + 1]];
+ [songItem setRepresentedObject:[NSNumber numberWithInt:i]];
[upcomingSongsMenu addItem:songItem];
[songItem release];
} else {
[tempItem release];
}
[playlistItem setSubmenu:playlistMenu];
+ [playlistItem setEnabled:YES];
if (curPlaylist) {
[[playlistMenu itemAtIndex:curPlaylist - 1] setState:NSOnState];
//Called when the timer fires.
- (void)timerUpdate
{
- NSLog(@"%i", [currentRemote playerState]);
- if ([currentRemote playerState] != stopped) {
+ int playlist = [currentRemote currentPlaylistIndex];
+ PlayerState playerState = [currentRemote playerState];
+
+ if ((playlist > 0) || playerState != stopped) {
int trackPlayingIndex = [currentRemote currentSongIndex];
- int playlist = [currentRemote currentPlaylistIndex];
if (trackPlayingIndex != lastSongIndex) {
BOOL wasPlayingRadio = isPlayingRadio;
isPlayingRadio = [[currentRemote classOfPlaylistAtIndex:playlist] isEqualToString:@"radio tuner playlist"];
+
if (isPlayingRadio && !wasPlayingRadio) {
int i;
for (i = 0; i < [playlistMenu numberOfItems]; i++)
{
[[playlistMenu itemAtIndex:i] setState:NSOffState];
}
+ } else {
+ [[playlistMenu itemAtIndex:playlist - 1] setState:NSOnState];
}
+
if (wasPlayingRadio) {
NSMenuItem *temp = [[NSMenuItem alloc] initWithTitle:@"" action:NULL keyEquivalent:@""];
[menu insertItem:temp atIndex:trackInfoIndex + 1];
[self updateMenu];
lastSongIndex = trackPlayingIndex;
} else {
- if (playlist != [currentRemote currentPlaylistIndex]) {
+ if (playlist != lastPlaylistIndex) {
BOOL wasPlayingRadio = isPlayingRadio;
isPlayingRadio = [[currentRemote classOfPlaylistAtIndex:playlist] isEqualToString:@"radio tuner playlist"];
+
if (isPlayingRadio && !wasPlayingRadio) {
int i;
for (i = 0; i < [playlistMenu numberOfItems]; i++) {
[[playlistMenu itemAtIndex:i] setState:NSOffState];
}
}
+
if (wasPlayingRadio) {
NSMenuItem *temp = [[NSMenuItem alloc] initWithTitle:@"" action:NULL keyEquivalent:@""];
[menu insertItem:temp atIndex:trackInfoIndex + 1];
[temp release];
}
+
+ if (!isPlayingRadio) {
+ int i;
+ for (i = 0; i < [playlistMenu numberOfItems]; i++)
+ {
+ [[playlistMenu itemAtIndex:i] setState:NSOffState];
+ }
+ [[playlistMenu itemAtIndex:playlist - 1] setState:NSOnState];
+ }
+
[self updateMenu];
lastSongIndex = trackPlayingIndex;
+ lastPlaylistIndex = playlist;
}
}
//Update Play/Pause menu item
if (playPauseMenuItem){
- if ([currentRemote playerState] == playing) {
+ if (playerState == playing) {
[playPauseMenuItem setTitle:@"Pause"];
} else {
[playPauseMenuItem setTitle:@"Play"];
isAppRunning = YES;
//Restart the timer
- refreshTimer = [NSTimer scheduledTimerWithTimeInterval:3.5 target:self selector:@selector(timerUpdate) userInfo:nil repeats:YES];
+ refreshTimer = [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(timerUpdate) userInfo:nil repeats:YES];
[self rebuildMenu]; //Rebuild the menu since no songs will be playing
+ [self rebuildPlaylistMenu];
[statusItem setMenu:menu]; //Set the menu back to the main one
}
[menu release];
menu = [[NSMenu alloc] initWithTitle:@""];
- [[menu addItemWithTitle:@"Open iTunes" action:@selector(openiTunes:) keyEquivalent:@""] setTarget:self];
+ [menu addItemWithTitle:@"Audio Player" action:NULL keyEquivalent:@""];
+ [menu addItemWithTitle:@"Not Running" action:NULL keyEquivalent:@""];
+ [menu addItem:[NSMenuItem separatorItem]];
[[menu addItemWithTitle:@"Preferences" action:@selector(showPreferences:) keyEquivalent:@""] setTarget:self];
[[menu addItemWithTitle:@"Quit" action:@selector(quitMenuTunes:) keyEquivalent:@""] setTarget:self];
[statusItem setMenu:menu];
- (void)playPause:(id)sender
{
PlayerState state = [currentRemote playerState];
+
if (state == playing) {
[currentRemote pause];
[playPauseMenuItem setTitle:@"Play"];
[NSApp terminate:self];
}
-//How is this going to work, now that we're pluginized?
-- (void)openiTunes:(id)sender
-{
- [[NSWorkspace sharedWorkspace] launchApplication:@"iTunes"];
-}
-
- (void)showPreferences:(id)sender
{
if (!prefsController) {
}
}
-
- (void)closePreferences
{
if (isAppRunning) {
[statusWindow setText:stringToShow];
[NSTimer scheduledTimerWithTimeInterval:3.0
- target:self
- selector:@selector(fadeAndCloseStatusWindow)
- userInfo:nil
- repeats:NO];
+ target:self
+ selector:@selector(fadeAndCloseStatusWindow)
+ userInfo:nil
+ repeats:NO];
}
}
- (PlayerState)playerState
{
- long result = [[ITAppleEventCenter sharedCenter] sendAEWithSendStringForNumber:@"'----':obj { form:'prop', want:type('prop'), seld:type('pPlS'), from:'null'() }" eventClass:@"core" eventID:@"getd" appPSN:[self iTunesPSN]];
+ long result = [[ITAppleEventCenter sharedCenter] sendAEWithSendStringForNumber:@"'----':obj { form:'prop', want:type('prop'), seld:type('pPlS'), from:'null'() }" eventClass:@"core" eventID:@"getd" appPSN:iTunesPSN];
switch (result)
{
case 'kPSS':
return stopped;
case 'kPSP':
- return paused;
- case 'kPSp':
return playing;
+ case 'kPSp':
+ return paused;
case 'kPSR':
return rewinding;
case 'kPSF':
- (NSArray *)playlists
{
long i = 0;
- const signed long numPlaylists = [[ITAppleEventCenter sharedCenter] sendAEWithSendStringForNumber:@"kocl:type('cPly'), '----':(), &subj:()" eventClass:@"core" eventID:@"cnte" appPSN:[self iTunesPSN]];
+ const signed long numPlaylists = [[ITAppleEventCenter sharedCenter] sendAEWithSendStringForNumber:@"kocl:type('cPly'), '----':(), &subj:()" eventClass:@"core" eventID:@"cnte" appPSN:iTunesPSN];
NSMutableArray *playlists = [[NSMutableArray alloc] initWithCapacity:numPlaylists];
- NSLog(@"entered playlist");
-
- for (i = 1; i <= numPlaylists; i++) {
- const long j = i;
- NSString *sendStr = [NSString stringWithFormat:@"'----':obj { form:'prop', want:type('prop'), seld:type('pnam'), from:obj { form:'indx', want:type('cPly'), seld:long(%lu), from:'null'() } }",(unsigned long)j];
- NSString *theObj = [[ITAppleEventCenter sharedCenter] sendAEWithSendString:sendStr eventClass:@"core" eventID:@"getd" appPSN:[self iTunesPSN] fixForAECrappiness:i];
- NSLog(@"sent event cur %d max %d",i,numPlaylists);
- [playlists addObject:theObj];
- }
- NSLog(@"playlists end");
- return [playlists autorelease];
+
+ for (i = 1; i <= numPlaylists; i++) {
+ const long j = i;
+ NSString *sendStr = [NSString stringWithFormat:@"'----':obj { form:'prop', want:type('prop'), seld:type('pnam'), from:obj { form:'indx', want:type('cPly'), seld:long(%lu), from:'null'() } }",(unsigned long)j];
+ NSString *theObj = [[ITAppleEventCenter sharedCenter] sendAEWithSendString:sendStr eventClass:@"core" eventID:@"getd" appPSN:iTunesPSN fixForAECrappiness:i];
+ [playlists addObject:theObj];
+ }
+ return [playlists autorelease];
}
- (int)numberOfSongsInPlaylistAtIndex:(int)index
{
- return [[ITAppleEventCenter sharedCenter] sendAEWithSendStringForNumber:[NSString stringWithFormat:@"kocl:type('cTrk'), '----':obj { form:'indx', want:type('cPly'), seld:long(%lu), from:'null'() }",index] eventClass:@"core" eventID:@"cnte" appPSN:[self iTunesPSN]]
+ return [[ITAppleEventCenter sharedCenter] sendAEWithSendStringForNumber:[NSString stringWithFormat:@"kocl:type('cTrk'), '----':obj { form:'indx', want:type('cPly'), seld:long(%lu), from:'null'() }",index] eventClass:@"core" eventID:@"cnte" appPSN:iTunesPSN]
;
}
- (NSString *)classOfPlaylistAtIndex:(int)index
{
int realResult = [[ITAppleEventCenter sharedCenter]
- sendTwoTierAEWithRequestedKeyForNumber:@"pcls" fromObjectByKey:@"pPla" eventClass:@"core" eventID:@"getd" appPSN:[self iTunesPSN]];
+ sendTwoTierAEWithRequestedKeyForNumber:@"pcls" fromObjectByKey:@"pPla" eventClass:@"core" eventID:@"getd" appPSN:iTunesPSN];
if (realResult == 'cRTP') return @"radio tuner playlist";
else return @"playlist";
{
int result;
result = [[ITAppleEventCenter sharedCenter]
- sendTwoTierAEWithRequestedKeyForNumber:@"pidx" fromObjectByKey:@"pPla" eventClass:@"core" eventID:@"getd" appPSN:[self iTunesPSN]];
+ sendTwoTierAEWithRequestedKeyForNumber:@"pidx" fromObjectByKey:@"pPla" eventClass:@"core" eventID:@"getd" appPSN:iTunesPSN];
return result;
}
- (NSString *)songTitleAtIndex:(int)index
{
- return [[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:[self iTunesPSN]];
+ return [[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:iTunesPSN];
}
- (int)currentSongIndex
{
int result;
- result = [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKeyForNumber:@"pidx" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:[self iTunesPSN]];
+ result = [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKeyForNumber:@"pidx" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:iTunesPSN];
return result;
}
- (NSString *)currentSongTitle
{
- return [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pnam" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:[self iTunesPSN]];
+ return [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pnam" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:iTunesPSN];
}
- (NSString *)currentSongArtist
{
- return [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pArt" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:[self iTunesPSN]];
+ return [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pArt" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:iTunesPSN];
}
- (NSString *)currentSongAlbum
{
- return [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pAlb" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:[self iTunesPSN]];
+ return [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pAlb" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:iTunesPSN];
}
- (NSString *)currentSongGenre
{
- return [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pGen" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:[self iTunesPSN]];
+ return [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pGen" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:iTunesPSN];
}
- (NSString *)currentSongLength
{
- return [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pTim" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:[self iTunesPSN]];
+ return [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pTim" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:iTunesPSN];
}
- (NSString *)currentSongRemaining
{
long duration = [[ITAppleEventCenter sharedCenter]
- sendTwoTierAEWithRequestedKeyForNumber:@"pDur" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:[self iTunesPSN]];
+ sendTwoTierAEWithRequestedKeyForNumber:@"pDur" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:iTunesPSN];
long current = [[ITAppleEventCenter sharedCenter]
- sendAEWithRequestedKeyForNumber:@"pPos" eventClass:@"core" eventID:@"getd" appPSN:[self iTunesPSN]];
+ sendAEWithRequestedKeyForNumber:@"pPos" eventClass:@"core" eventID:@"getd" appPSN:iTunesPSN];
return [[NSNumber numberWithLong:duration - current] stringValue];
}
- (NSArray *)eqPresets;
{
int i;
- long numPresets = [[ITAppleEventCenter sharedCenter] sendAEWithSendStringForNumber:@"kocl:type('cEQP'), '----':(), &subj:()" eventClass:@"core" eventID:@"cnte" appPSN:[self iTunesPSN]];
+ long numPresets = [[ITAppleEventCenter sharedCenter] sendAEWithSendStringForNumber:@"kocl:type('cEQP'), '----':(), &subj:()" eventClass:@"core" eventID:@"cnte" appPSN:iTunesPSN];
NSMutableArray *presets = [[NSMutableArray alloc] initWithCapacity:numPresets];
-
- for (i = 1; i <= numPresets; i++) {
- NSString *theObj = [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"'----':obj { form:'prop', want:type('prop'), seld:type('pnam'), from:obj { form:'indx', want:type('cEQP'), seld:long(%lu), from:'null'() } }",i] eventClass:@"core" eventID:@"getd" appPSN:[self iTunesPSN] fixForAECrappiness:i];
- if (theObj) [presets addObject:theObj];
- }
- return [presets autorelease];
+
+ for (i = 1; i <= numPresets; i++) {
+ NSString *theObj = [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"'----':obj { form:'prop', want:type('prop'), seld:type('pnam'), from:obj { form:'indx', want:type('cEQP'), seld:long(%lu), from:'null'() } }",i] eventClass:@"core" eventID:@"getd" appPSN:iTunesPSN fixForAECrappiness:i];
+ if (theObj) {
+ [presets addObject:theObj];
+ }
+ }
+ return [presets autorelease];
}
- (int)currentEQPresetIndex
{
int result;
result = [[ITAppleEventCenter sharedCenter]
- sendTwoTierAEWithRequestedKeyForNumber:@"pidx"fromObjectByKey:@"pEQP" eventClass:@"core" eventID:@"getd"appPSN:[self iTunesPSN]];
+ sendTwoTierAEWithRequestedKeyForNumber:@"pidx"fromObjectByKey:@"pEQP" eventClass:@"core" eventID:@"getd"appPSN:iTunesPSN];
return result;
}
- (BOOL)play
{
- [[ITAppleEventCenter sharedCenter] sendAEWithEventClass:@"hook" eventID:@"Play" appPSN:[self iTunesPSN]];
+ [[ITAppleEventCenter sharedCenter] sendAEWithEventClass:@"hook" eventID:@"Play" appPSN:iTunesPSN];
return YES;
}
- (BOOL)pause
{
- [[ITAppleEventCenter sharedCenter] sendAEWithEventClass:@"hook" eventID:@"Paus" appPSN:[self iTunesPSN]];
+ [[ITAppleEventCenter sharedCenter] sendAEWithEventClass:@"hook" eventID:@"Paus" appPSN:iTunesPSN];
return YES;
}
- (BOOL)goToNextSong
{
- [[ITAppleEventCenter sharedCenter] sendAEWithEventClass:@"hook" eventID:@"Next" appPSN:[self iTunesPSN]];
+ [[ITAppleEventCenter sharedCenter] sendAEWithEventClass:@"hook" eventID:@"Next" appPSN:iTunesPSN];
return YES;
}
- (BOOL)goToPreviousSong
{
- [[ITAppleEventCenter sharedCenter] sendAEWithEventClass:@"hook" eventID:@"Prev" appPSN:[self iTunesPSN]];
+ [[ITAppleEventCenter sharedCenter] sendAEWithEventClass:@"hook" eventID:@"Prev" appPSN:iTunesPSN];
return YES;
}
- (BOOL)fastForward
{
- [[ITAppleEventCenter sharedCenter] sendAEWithEventClass:@"hook" eventID:@"Fast" appPSN:[self iTunesPSN]];
+ [[ITAppleEventCenter sharedCenter] sendAEWithEventClass:@"hook" eventID:@"Fast" appPSN:iTunesPSN];
return YES;
}
- (BOOL)rewind
{
- [[ITAppleEventCenter sharedCenter] sendAEWithEventClass:@"hook" eventID:@"Rwnd" appPSN:[self iTunesPSN]];
+ [[ITAppleEventCenter sharedCenter] sendAEWithEventClass:@"hook" eventID:@"Rwnd" appPSN:iTunesPSN];
return YES;
}
- (BOOL)switchToPlaylistAtIndex:(int)index
{
- [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"'----':obj { form:'name', want:type('cPly'), seld:long(%lu), from:'null'() }",index] eventClass:@"hook" eventID:@"Play" appPSN:[self iTunesPSN]];
+ [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"'----':obj { form:'name', want:type('cPly'), seld:long(%lu), from:'null'() }",index] eventClass:@"hook" eventID:@"Play" appPSN:iTunesPSN];
return NO;
}
- (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:'null'() } }",index] eventClass:@"hook" eventID:@"Play" appPSN:[self iTunesPSN]];
+ [[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:'null'() } }",index] eventClass:@"hook" eventID:@"Play" appPSN:iTunesPSN];
return NO;
}
- (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:[self iTunesPSN]];
- [[ITAppleEventCenter sharedCenter] sendAEWithSendString:@"data:1, '----':obj { form:'prop', want:type('prop'), seld:type('pEQ '), from:'null'() }" eventClass:@"core" eventID:@"setd" appPSN:[self iTunesPSN]];
+ [[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:@"data:1, '----':obj { form:'prop', want:type('prop'), seld:type('pEQ '), from:'null'() }" eventClass:@"core" eventID:@"setd" appPSN:iTunesPSN];
return NO;
}
NSArray *apps = [[NSWorkspace sharedWorkspace] launchedApplications];
ProcessSerialNumber number;
int i, count = [apps count];
-
- number.highLongOfPSN = kNoProcess;
-
- for (i = 0; i < count; i++)
- {
- NSDictionary *curApp = [apps objectAtIndex:i];
-
- if ([[curApp objectForKey:@"NSApplicationName"] isEqualToString:@"iTunes"])
- {
- number.highLongOfPSN = [[curApp objectForKey:@"NSApplicationProcessSerialNumberHigh"] intValue];
- number.lowLongOfPSN = [[curApp objectForKey:@"NSApplicationProcessSerialNumberLow"] intValue];
- }
- }
- return number;}
+
+ number.highLongOfPSN = kNoProcess;
+
+ for (i = 0; i < count; i++)
+ {
+ NSDictionary *curApp = [apps objectAtIndex:i];
+
+ if ([[curApp objectForKey:@"NSApplicationName"] isEqualToString:@"iTunes"])
+ {
+ number.highLongOfPSN = [[curApp objectForKey:
+ @"NSApplicationProcessSerialNumberHigh"] intValue];
+ number.lowLongOfPSN = [[curApp objectForKey:
+ @"NSApplicationProcessSerialNumberLow"] intValue];
+ }
+ }
+ return number;
+}
- (void)applicationLaunched:(NSNotification *)note
{