• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Problems with ScriptingBridge and iTunes
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problems with ScriptingBridge and iTunes


  • Subject: Re: Problems with ScriptingBridge and iTunes
  • From: "Steven Degutis" <email@hidden>
  • Date: Sun, 2 Mar 2008 06:54:02 -0600

Hannes,

I haven't heard of this ITApplication before, but for your specific
problem, I think it's clear why [currentTrack
isKindOfClass:[iTunesFileTrack class]] evaluates to true: in the
previous line, you defined it as such, like this:

iTunesTrack *currentTrack = [iTunes currentTrack];

So obviously it is an iTunesTrack!

Try this:

iTunesFileTrack *currentTrack = [iTunesFileTrack currentTrack];
NSLog(@"%@", [currentTrack location]);

Since iTunesFileTrack is a subclass of iTunesTrack, it should work,
giving you the info you need.

On Sun, Mar 2, 2008 at 6:05 AM, has <email@hidden> wrote:
> Hannes Petri wrote:
>
>  > I want to retrieve the path to the currently played file in iTunes. I
>  > thought scripting bridge would be the perfect tool for this, however
>  > i've run into some problem. I have this code:
>  >
>
> > iTunesApplication *iTunes = [[SBApplication alloc]
>  > initWithBundleIdentifier:@"com.apple.iTunes"];
>  > iTunesTrack *currentTrack = [iTunes currentTrack];
>  >
>  > if ([currentTrack isKindOfClass:[iTunesFileTrack class]]) {
>  >
>  >
>  > }
>  >
>  > The problem is, that the class of the object returned is _always_
>  > iTunesTrack, and not iTunesFileTrack, as i expect it to be.
>
>  Here's how you'd do it using objc-appscript <http://appscript.sourceforge.net/objc-appscript.html
>   >:
>
>
>  // To generate iTunes glue: osaglue  -o ITGlue  -p IT  iTunes
>
>  #import <Foundation/Foundation.h>
>  #import "ITGlue/ITGlue.h"
>
>  int main (int argc, const char * argv[]) {
>         NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
>
>         ITApplication *itunes = [[ITApplication alloc] initWithBundleID:
>  @"com.apple.itunes"];
>         ITReference *track = [itunes currentTrack];
>
>         ITConstant *trackClass = [[[track class_] get] send];
>
>         if (trackClass == [ITConstant fileTrack]) {
>                 ASAlias *trackFile = [[[track location] get] send];
>                 NSLog(@"%@", trackFile);
>         }
>         [itunes release];
>         [pool drain];
>         return 0;
>  }
>
>  HTH
>
>  has
>  --
>  http://appscript.sourceforge.net
>
>
>
>  _______________________________________________
>
>  Cocoa-dev mailing list (email@hidden)
>
>  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:
>
>  This email sent to email@hidden
>
_______________________________________________

Cocoa-dev mailing list (email@hidden)

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:

This email sent to email@hidden

  • Follow-Ups:
    • Re: Problems with ScriptingBridge and iTunes
      • From: Jens Alfke <email@hidden>
References: 
 >Re: Problems with ScriptingBridge and iTunes (From: has <email@hidden>)

  • Prev by Date: Re: Problems with ScriptingBridge and iTunes
  • Next by Date: Drawing only when NSOutlineView active?
  • Previous by thread: Re: Problems with ScriptingBridge and iTunes
  • Next by thread: Re: Problems with ScriptingBridge and iTunes
  • Index(es):
    • Date
    • Thread