On Mar 10, 2008, at 12:14 PM, has wrote:
slasktrattenator wrote:
Anyone know how to get the index of the current iTunes track using
Scripting Bridge? With Applescript, it's as simple as "tell iTunes to
return index of current track", but iTunes SB has no such property
(well, there is one, but it only refers to the index of the current
playlist). It seems the iTunesTrack index property is simply
missing...? Or am I missing something?
You'll have to muck about with raw AE codes if you want to do it
with Scripting Bridge; see past discussions of SB's design flaws for
more info.
Actually it's doable in scripting bridge, without any codes. The OP
almost had it right when he wrote (or meant to write):
TunesPlaylist *currentPlaylist = [ iTunes currentPlaylist ] ;
SBElementArray *currentTracks = [currentPlaylist tracks];
int index = [currentTracks indexOfObject:[iTunes currentTrack] ] + 1;
The problem is just that indexOfObject: depends on isEqual: being
implemented in a meaningful way on the elements of the array, which is
not true of the iTunesTrack objects in the currentTracks array.
Instead of calling indexOfObjects:, try something like:
int index = -1;
int i;
for (i = 0; i < [currentTracks count]; i++) {
if ([[currentTracks objectAtIndex:i] id] == [currentTrack
id]) {
index = i + 1;
break;
}
}
// now index is either the index of the track, or -1
_______________________________________________
Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com
This email sent to [EMAIL PROTECTED]