-- (BOOL)begin
-{
- iTunesPSN = [self iTunesPSN];
- asComponent = OpenDefaultComponent(kOSAComponentType, kAppleScriptSubtype);
-
- //Register for application termination in NSWorkspace
-
- NSLog(@"iTunes Plugin loaded");
- return YES;
-}
-
-- (BOOL)halt
-{
- iTunesPSN.highLongOfPSN = kNoProcess;
- CloseComponent(asComponent);
-
- //Unregister for application termination in NSWorkspace
- return YES;
-}
-
-- (int)numberOfPlaylists
-{
- NSString *result = [self runScriptAndReturnResult:@"get number of playlists"];
- return [result intValue];
-}
-
-- (int)numberOfSongsInPlaylistAtIndex:(int)index
-{
- NSString *result = [self runScriptAndReturnResult:[NSString stringWithFormat:@"get number of tracks in playlist %i", index]];
- return [result intValue];
-}
-
-- (NSString *)classOfPlaylistAtIndex:(int)index
-{
- //Not working yet. It returns the 4 character code instead of a name.
- /*NSString *result;
- result = [[ITAppleEventCenter sharedCenter]
- sendTwoTierAEWithRequestedKey:@"pcls"
- fromObjectByKey:@"pPla" eventClass:@"core" eventID:@"getd"
- appPSN:[self iTunesPSN]];*/
- NSString *result = [self runScriptAndReturnResult:[NSString stringWithFormat:@"get class of playlist %i", index]];
- return result;
-}
-
-- (int)currentPlaylistIndex
-{
- int result;
- result = [[ITAppleEventCenter sharedCenter]
- sendTwoTierAEWithRequestedKeyForNumber:@"pidx"
- fromObjectByKey:@"pPla" eventClass:@"core" eventID:@"getd"
- appPSN:[self iTunesPSN]];
- return result;
-}
-
-- (NSString *)songTitleAtIndex:(int)index
-{
- NSString *result = [self runScriptAndReturnResult:[NSString stringWithFormat:@"return name of track %i", index]];
- return result;
-}
-
-- (int)currentSongIndex
-{
- int result;
- result = [[ITAppleEventCenter sharedCenter]
- sendTwoTierAEWithRequestedKeyForNumber:@"pidx"
- fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd"
- appPSN:[self iTunesPSN]];
- return result;
-}
-
-- (NSString *)currentSongTitle
-{
- return [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pnam"
- fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd"
- appPSN:[self iTunesPSN]];
-}
-
-- (NSString *)currentSongArtist
-{
- return [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pArt"
- fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd"
- appPSN:[self iTunesPSN]];
-}
-
-- (NSString *)currentSongAlbum
-{
- return [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pAlb"
- fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd"
- appPSN:[self iTunesPSN]];
-}
-
-- (NSString *)currentSongGenre
-{
- return [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pGen"
- fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd"
- appPSN:[self iTunesPSN]];