Re: Scripting Bridge question
Re: Scripting Bridge question
- Subject: Re: Scripting Bridge question
- From: Jason Ketterman <email@hidden>
- Date: Thu, 15 Nov 2007 11:50:09 -0600
The sdef utility gives a header file with all the properties of each
item. I don't know if that's what you're missing.
// a piece of art within a track
@interface iTunesArtwork : iTunesItem
@property (copy) NSImage *data; // data for this artwork, in the
form of a picture
@property (readonly) BOOL downloaded; // was this artwork
downloaded by iTunes?
@property (copy, readonly) NSNumber *format; // the data format for
this piece of artwork
@property NSInteger kind; // kind or purpose of this piece of artwork
@end
You get the header file by running:
sdef /Applications/iTunes.app | sdp -fh --basename iTunes
Maybe I'm just repeating stuff that everyone knows, just thought I'd
share this though.
Jason
On Nov 15, 2007, at 10:39 AM, email@hidden wrote:
Thanks for the tip. I tried it, but to my best understanding it didn't
reveal any secrets. What I could see was that the call returns a PICT
image with data, but that much I knew already. What bugs me is that
both the NSAppleScript and the ScriptingBridge approach are supposed
to return the exact same results, yet
[[[[NSAppleScript alloc] initWithSource:@"tell application \"iTunes\"
to return data of artwork 1 of current track"]
executeAndReturnError:nil] data]
works, but [artwork data] doesn't... Oh well, I'll keep trying.
On Nov 15, 2007 4:37 PM, Andrew Kimpton <email@hidden> wrote:
On Nov 15, 2007, at 4:49 AM, email@hidden wrote:
No, "current" is an iTunesTrack object. [current data] return a
compilation error. "artwork" is an iTunesArtwork object. It has no
-data method. Assuming you meant [artwork data], that would equal
[[[current artworks] objectAtIndex:0] data] which results in an
uncaught exception, even though it looks like the equivalent to the
-data method of the NSAppleScript way to me:
[[[[NSAppleScript alloc] initWithSource:@"tell application \"iTunes
\"
to return data of artwork
1 of current track"] executeAndReturnError:nil] data]
When I first started using ScriptingBridge I struggled with a similar
problem (iTunes add: wants an NSArray - an array of what ? It turns
out it needs an array of NSURL's).
To debug this I ran the Script Editor app 'in debug mode' with a
small
handwritten script to mirror my action. To do this set the
AEDebugSend
environment variable in a Terminal window and then launch the script
editor app from the same terminal session. ScriptEditor will log to
stdout a dump of the raw events it was sending to iTunes - I could
see
that my posix path was being converted to an 'furl' applevent and
from
their I deduced the NSURL requirement.
Perhaps a similar trick with the artwork might reveal what the
underlying types are ? And from there the most likely matching/
appropriate Cocoa type ?
Andrew 8-)
_______________________________________________
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