Sunteți pe pagina 1din 11

/* * iTunes.h */ #import <AppKit/AppKit.h> #import <ScriptingBridge/ScriptingBridge.

h> @class iTunesPrintSettings, iTunesApplication, iTunesItem, iTunesArtwork, iTunes Encoder, iTunesEQPreset, iTunesPlaylist, iTunesAudioCDPlaylist, iTunesDevicePlay list, iTunesLibraryPlaylist, iTunesRadioTunerPlaylist, iTunesSource, iTunesTrack , iTunesAudioCDTrack, iTunesDeviceTrack, iTunesFileTrack, iTunesSharedTrack, iTu nesURLTrack, iTunesUserPlaylist, iTunesFolderPlaylist, iTunesVisual, iTunesWindo w, iTunesBrowserWindow, iTunesEQWindow, iTunesPlaylistWindow; enum iTunesEKnd { iTunesEKndTrackListing = 'kTrk' /* a basic listing of tracks within a pl aylist */, iTunesEKndAlbumListing = 'kAlb' /* a listing of a playlist grouped by al bum */, iTunesEKndCdInsert = 'kCDi' /* a printout of the playlist for jewel case inserts */ }; typedef enum iTunesEKnd iTunesEKnd; enum iTunesEnum { iTunesEnumStandard = 'lwst' /* Standard PostScript error handling */, iTunesEnumDetailed = 'lwdt' /* print a detailed report of PostScript err ors */ }; typedef enum iTunesEnum iTunesEnum; enum iTunesEPlS { iTunesEPlSStopped = 'kPSS', iTunesEPlSPlaying = 'kPSP', iTunesEPlSPaused = 'kPSp', iTunesEPlSFastForwarding = 'kPSF', iTunesEPlSRewinding = 'kPSR' }; typedef enum iTunesEPlS iTunesEPlS; enum iTunesERpt { iTunesERptOff = iTunesERptOne = iTunesERptAll = }; typedef enum iTunesERpt 'kRpO', 'kRp1', 'kAll' iTunesERpt;

enum iTunesEVSz { iTunesEVSzSmall = 'kVSS', iTunesEVSzMedium = 'kVSM', iTunesEVSzLarge = 'kVSL' }; typedef enum iTunesEVSz iTunesEVSz; enum iTunesESrc { iTunesESrcLibrary = 'kLib', iTunesESrcIPod = 'kPod', iTunesESrcAudioCD = 'kACD', iTunesESrcMP3CD = 'kMCD',

iTunesESrcDevice = 'kDev', iTunesESrcRadioTuner = 'kTun', iTunesESrcSharedLibrary = 'kShd', iTunesESrcUnknown = 'kUnk' }; typedef enum iTunesESrc iTunesESrc; enum iTunesESrA { iTunesESrAAlbums = 'kSrL' /* albums only */, iTunesESrAAll = 'kAll' /* all text fields */, iTunesESrAArtists = 'kSrR' /* artists only */, iTunesESrAComposers = 'kSrC' /* composers only */, iTunesESrADisplayed = 'kSrV' /* visible text fields */, iTunesESrASongs = 'kSrS' /* song names only */ }; typedef enum iTunesESrA iTunesESrA; enum iTunesESpK { iTunesESpKNone = 'kNon', iTunesESpKBooks = 'kSpA', iTunesESpKFolder = 'kSpF', iTunesESpKGenius = 'kSpG', iTunesESpKITunesU = 'kSpU', iTunesESpKLibrary = 'kSpL', iTunesESpKMovies = 'kSpI', iTunesESpKMusic = 'kSpZ', iTunesESpKPartyShuffle = 'kSpS', iTunesESpKPodcasts = 'kSpP', iTunesESpKPurchasedMusic = 'kSpM', iTunesESpKTVShows = 'kSpT' }; typedef enum iTunesESpK iTunesESpK; enum iTunesEVdK { iTunesEVdKNone = 'kNon' /* not a video or unknown video kind */, iTunesEVdKMovie = 'kVdM' /* movie track */, iTunesEVdKMusicVideo = 'kVdV' /* music video track */, iTunesEVdKTVShow = 'kVdT' /* TV show track */ }; typedef enum iTunesEVdK iTunesEVdK; enum iTunesERtK { iTunesERtKUser = 'kRtU' /* user-specified rating */, iTunesERtKComputed = 'kRtC' /* iTunes-computed rating */ }; typedef enum iTunesERtK iTunesERtK;

/* * Standard Suite */ @interface iTunesPrintSettings : SBObject @property (readonly) NSInteger copies; // the number of copies of a document to be printed @property (readonly) BOOL collating; // Should printed copies be collated? @property (readonly) NSInteger startingPage; // the first page of the document to be printed

@property (readonly) NSInteger endingPage; // the last page of the document to be printed @property (readonly) NSInteger pagesAcross; // number of logical pages laid acr oss a physical page @property (readonly) NSInteger pagesDown; // number of logical pages laid out d own a physical page @property (readonly) iTunesEnum errorHandling; // how errors are handled @property (copy, readonly) NSDate *requestedPrintTime; // the time at which the desktop printer should print the document @property (copy, readonly) NSArray *printerFeatures; // printer specific option s @property (copy, readonly) NSString *faxNumber; // for fax number @property (copy, readonly) NSString *targetPrinter; // for target printer - (void) printPrintDialog:(BOOL)printDialog withProperties:(iTunesPrintSettings *)withProperties kind:(iTunesEKnd)kind theme:(NSString *)theme; // Print the sp ecified object(s) - (void) close; // Close an object - (void) delete; // Delete an element from an object - (SBObject *) duplicateTo:(SBObject *)to; // Duplicate one or more object(s) - (BOOL) exists; // Verify if an object exists - (void) open; // open the specified object(s) - (void) playOnce:(BOOL)once; // play the current track or the specified track or file. @end

/* * iTunes Suite */ // The application program @interface iTunesApplication : SBApplication (SBElementArray (SBElementArray (SBElementArray (SBElementArray (SBElementArray (SBElementArray (SBElementArray (SBElementArray *) *) *) *) *) *) *) *) browserWindows; encoders; EQPresets; EQWindows; playlistWindows; sources; visuals; windows;

@property (copy) iTunesEncoder *currentEncoder; // the currently selected encod er (MP3, AIFF, WAV, etc.) @property (copy) iTunesEQPreset *currentEQPreset; // the currently selected equ alizer preset @property (copy, readonly) iTunesPlaylist *currentPlaylist; // the playlist con taining the currently targeted track @property (copy, readonly) NSString *currentStreamTitle; // the name of the cur rent song in the playing stream (provided by streaming server) @property (copy, readonly) NSString *currentStreamURL; // the URL of the playin g stream or streaming web site (provided by streaming server) @property (copy, readonly) iTunesTrack *currentTrack; // the current targeted t rack @property (copy) iTunesVisual *currentVisual; // the currently selected visual plug-in @property BOOL EQEnabled; // is the equalizer enabled?

@property BOOL fixedIndexing; // true if all AppleScript track indices should b e independent of the play order of the owning playlist. @property BOOL frontmost; // is iTunes the frontmost application? @property BOOL fullScreen; // are visuals displayed using the entire screen? @property (copy, readonly) NSString *name; // the name of the application @property BOOL mute; // has the sound output been muted? @property NSInteger playerPosition; // the player s position within the currently p laying track in seconds. @property (readonly) iTunesEPlS playerState; // is iTunes stopped, paused, or p laying? @property (copy, readonly) SBObject *selection; // the selection visible to the user @property NSInteger soundVolume; // the sound output volume (0 = minimum, 100 = maximum) @property (copy, readonly) NSString *version; // the version of iTunes @property BOOL visualsEnabled; // are visuals currently being displayed? @property iTunesEVSz visualSize; // the size of the displayed visual - (void) printPrintDialog:(BOOL)printDialog withProperties:(iTunesPrintSettings *)withProperties kind:(iTunesEKnd)kind theme:(NSString *)theme; // Print the sp ecified object(s) - (void) run; // run iTunes - (void) quit; // quit iTunes - (iTunesTrack *) add:(NSArray *)x to:(SBObject *)to; // add one or more files to a playlist - (void) backTrack; // reposition to beginning of current track or go to previo us track if already at start of current track - (iTunesTrack *) convert:(NSArray *)x; // convert one or more files or tracks - (void) fastForward; // skip forward in a playing track - (void) nextTrack; // advance to the next track in the current playlist - (void) pause; // pause playback - (void) playOnce:(BOOL)once; // play the current track or the specified track or file. - (void) playpause; // toggle the playing/paused state of the current track - (void) previousTrack; // return to the previous track in the current playlist - (void) resume; // disable fast forward/rewind and resume playback, if playing . - (void) rewind; // skip backwards in a playing track - (void) stop; // stop playback - (void) update; // update the specified iPod - (void) eject; // eject the specified iPod - (void) subscribe:(NSString *)x; // subscribe to a podcast feed - (void) updateAllPodcasts; // update all subscribed podcast feeds - (void) updatePodcast; // update podcast feed - (void) openLocation:(NSString *)x; // Opens a Music Store or audio stream URL @end // an item @interface iTunesItem : SBObject @property (copy, readonly) SBObject *container; // the container of the item - (NSInteger) id; // the id of the item @property (readonly) NSInteger index; // The index of the item in internal appl ication order. @property (copy) NSString *name; // the name of the item @property (copy, readonly) NSString *persistentID; // the id of the item as a h exidecimal string. This id does not change over time. - (void) printPrintDialog:(BOOL)printDialog withProperties:(iTunesPrintSettings

*)withProperties kind:(iTunesEKnd)kind theme:(NSString *)theme; // Print the sp ecified object(s) - (void) close; // Close an object - (void) delete; // Delete an element from an object - (SBObject *) duplicateTo:(SBObject *)to; // Duplicate one or more object(s) - (BOOL) exists; // Verify if an object exists - (void) open; // open the specified object(s) - (void) playOnce:(BOOL)once; // play the current track or the specified track or file. - (void) reveal; // reveal and select a track or playlist @end // a piece of art within a track @interface iTunesArtwork : iTunesItem @property (copy) NSImage *data; // data for this artwork, in the form of a pict ure @property (copy) NSString *objectDescription; // description of artwork as a st ring @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 @property (copy) NSData *rawData; // data for this artwork, in original format @end // converts a track to a specific file format @interface iTunesEncoder : iTunesItem @property (copy, readonly) NSString *format; // the data format created by the encoder @end // equalizer preset configuration @interface iTunesEQPreset : iTunesItem @property ) @property ) @property B) @property B) @property B) @property ) @property ) @property ) @property ) @property double band1; // the equalizer 32 Hz band level (-12.0 dB to +12.0 dB double band2; // the equalizer 64 Hz band level (-12.0 dB to +12.0 dB double band3; // the equalizer 125 Hz band level (-12.0 dB to +12.0 d double band4; // the equalizer 250 Hz band level (-12.0 dB to +12.0 d double band5; // the equalizer 500 Hz band level (-12.0 dB to +12.0 d double band6; // the equalizer 1 kHz band level (-12.0 dB to +12.0 dB double band7; // the equalizer 2 kHz band level (-12.0 dB to +12.0 dB double band8; // the equalizer 4 kHz band level (-12.0 dB to +12.0 dB double band9; // the equalizer 8 kHz band level (-12.0 dB to +12.0 dB double band10; // the equalizer 16 kHz band level (-12.0 dB to +12.0

dB) @property @property @property ated when @end

(readonly) BOOL modifiable; // can this preset be modified? double preamp; // the equalizer preamp level (-12.0 dB to +12.0 dB) BOOL updateTracks; // should tracks which refer to this preset be upd the preset is renamed or deleted?

// a list of songs/streams @interface iTunesPlaylist : iTunesItem - (SBElementArray *) tracks; @property (readonly) NSInteger duration; // the total length of all songs (in s econds) @property (copy) NSString *name; // the name of the playlist @property (copy, readonly) iTunesPlaylist *parent; // folder which contains thi s playlist (if any) @property BOOL shuffle; // play the songs in this playlist in random order? @property (readonly) long long size; // the total size of all songs (in bytes) @property iTunesERpt songRepeat; // playback repeat mode @property (readonly) iTunesESpK specialKind; // special playlist kind @property (copy, readonly) NSString *time; // the length of all songs in MM:SS format @property (readonly) BOOL visible; // is this playlist visible in the Source li st? - (void) moveTo:(SBObject *)to; // Move playlist(s) to a new location - (iTunesTrack *) searchFor:(NSString *)for_ only:(iTunesESrA)only; // search a playlist for tracks matching the search string. Identical to entering search te xt in the Search field in iTunes. @end // a playlist representing an audio CD @interface iTunesAudioCDPlaylist : iTunesPlaylist - (SBElementArray *) audioCDTracks; @property @property @property @property @property m @property @property @end // a playlist representing the contents of a portable device @interface iTunesDevicePlaylist : iTunesPlaylist - (SBElementArray *) deviceTracks; @end (copy) NSString *artist; // the artist of the CD BOOL compilation; // is this CD a compilation album? (copy) NSString *composer; // the composer of the CD NSInteger discCount; // the total number of discs in this CD s album NSInteger discNumber; // the index of this CD disc in the source albu (copy) NSString *genre; // the genre of the CD NSInteger year; // the year the album was recorded/released

// the master music library playlist @interface iTunesLibraryPlaylist : iTunesPlaylist - (SBElementArray *) fileTracks; - (SBElementArray *) URLTracks; - (SBElementArray *) sharedTracks; @end // the radio tuner playlist @interface iTunesRadioTunerPlaylist : iTunesPlaylist - (SBElementArray *) URLTracks; @end // a music source (music library, CD, device, etc.) @interface iTunesSource : iTunesItem (SBElementArray (SBElementArray (SBElementArray (SBElementArray (SBElementArray (SBElementArray *) *) *) *) *) *) audioCDPlaylists; devicePlaylists; libraryPlaylists; playlists; radioTunerPlaylists; userPlaylists;

@property (readonly) long long capacity; // the total size of the source if it has a fixed size @property (readonly) long long freeSpace; // the free space on the source if it has a fixed size @property (readonly) iTunesESrc kind; - (void) update; // update the specified iPod - (void) eject; // eject the specified iPod @end // playable audio source @interface iTunesTrack : iTunesItem - (SBElementArray *) artworks; @property (copy) NSString *album; // the album name of the track @property (copy) NSString *albumArtist; // the album artist of the track @property NSInteger albumRating; // the rating of the album for this track (0 t o 100) @property (readonly) iTunesERtK albumRatingKind; // the rating kind of the albu m rating for this track @property (copy) NSString *artist; // the artist/source of the track @property (readonly) NSInteger bitRate; // the bit rate of the track (in kbps) @property double bookmark; // the bookmark time of the track in seconds @property BOOL bookmarkable; // is the playback position for this track remembe red? @property NSInteger bpm; // the tempo of this track in beats per minute @property (copy) NSString *category; // the category of the track @property (copy) NSString *comment; // freeform notes about the track @property BOOL compilation; // is this track from a compilation album? @property (copy) NSString *composer; // the composer of the track

@property (readonly) NSInteger databaseID; // the common, unique ID for this tr ack. If two tracks in different playlists have the same database ID, they are sh aring the same data. @property (copy, readonly) NSDate *dateAdded; // the date the track was added t o the playlist @property (copy) NSString *objectDescription; // the description of the track @property NSInteger discCount; // the total number of discs in the source album @property NSInteger discNumber; // the index of the disc containing this track on the source album @property (readonly) double duration; // the length of the track in seconds @property BOOL enabled; // is this track checked for playback? @property (copy) NSString *episodeID; // the episode ID of the track @property NSInteger episodeNumber; // the episode number of the track @property (copy) NSString *EQ; // the name of the EQ preset of the track @property double finish; // the stop time of the track in seconds @property BOOL gapless; // is this track from a gapless album? @property (copy) NSString *genre; // the music/audio genre (category) of the tr ack @property (copy) NSString *grouping; // the grouping (piece) of the track. Gene rally used to denote movements within a classical work. @property (copy, readonly) NSString *kind; // a text description of the track @property (copy) NSString *longDescription; @property (copy) NSString *lyrics; // the lyrics of the track @property (copy, readonly) NSDate *modificationDate; // the modification date o f the content of this track @property NSInteger playedCount; // number of times this track has been played @property (copy) NSDate *playedDate; // the date and time this track was last p layed @property (readonly) BOOL podcast; // is this track a podcast episode? @property NSInteger rating; // the rating of this track (0 to 100) @property (readonly) iTunesERtK ratingKind; // the rating kind of this track @property (copy, readonly) NSDate *releaseDate; // the release date of this tra ck @property (readonly) NSInteger sampleRate; // the sample rate of the track (in Hz) @property NSInteger seasonNumber; // the season number of the track @property BOOL shufflable; // is this track included when shuffling? @property NSInteger skippedCount; // number of times this track has been skippe d @property (copy) NSDate *skippedDate; // the date and time this track was last skipped @property (copy) NSString *show; // the show name of the track @property (copy) NSString *sortAlbum; // override string to use for the track w hen sorting by album @property (copy) NSString *sortArtist; // override string to use for the track when sorting by artist @property (copy) NSString *sortAlbumArtist; // override string to use for the t rack when sorting by album artist @property (copy) NSString *sortName; // override string to use for the track wh en sorting by name @property (copy) NSString *sortComposer; // override string to use for the trac k when sorting by composer @property (copy) NSString *sortShow; // override string to use for the track wh en sorting by show name @property (readonly) NSInteger size; // the size of the track (in bytes) @property double start; // the start time of the track in seconds @property (copy, readonly) NSString *time; // the length of the track in MM:SS format @property NSInteger trackCount; // the total number of tracks on the source alb um

@property NSInteger trackNumber; // the index of the track on the source album @property BOOL unplayed; // is this track unplayed? @property iTunesEVdK videoKind; // kind of video track @property NSInteger volumeAdjustment; // relative volume adjustment of the trac k (-100% to 100%) @property NSInteger year; // the year the track was recorded/released @end // a track on an audio CD @interface iTunesAudioCDTrack : iTunesTrack @property (copy, readonly) NSURL *location; // the location of the file represe nted by this track @end // a track residing on a portable music player @interface iTunesDeviceTrack : iTunesTrack @end // a track representing an audio file (MP3, AIFF, etc.) @interface iTunesFileTrack : iTunesTrack @property (copy) NSURL *location; // the location of the file represented by th is track - (void) refresh; // update file track information from the current information in the track s file @end // a track residing in a shared library @interface iTunesSharedTrack : iTunesTrack @end // a track representing a network stream @interface iTunesURLTrack : iTunesTrack @property (copy) NSString *address; // the URL for this track - (void) download; // download podcast episode @end // custom playlists created by the user @interface iTunesUserPlaylist : iTunesPlaylist - (SBElementArray *) fileTracks; - (SBElementArray *) URLTracks; - (SBElementArray *) sharedTracks; @property BOOL shared; // is this playlist shared? @property (readonly) BOOL smart; // is this a Smart Playlist?

@end // a folder that contains other playlists @interface iTunesFolderPlaylist : iTunesUserPlaylist @end // a visual plug-in @interface iTunesVisual : iTunesItem @end // any window @interface iTunesWindow : iTunesItem @property @property @property dowshade) @property @property @property @property @property @property @end // the main iTunes window @interface iTunesBrowserWindow : iTunesWindow @property BOOL minimized; // is the small player visible? @property (copy, readonly) SBObject *selection; // the selected songs @property (copy) iTunesPlaylist *view; // the playlist currently displayed in t he window @end // the iTunes equalizer window @interface iTunesEQWindow : iTunesWindow @property BOOL minimized; // is the small EQ window visible? @end // a sub-window showing a single playlist @interface iTunesPlaylistWindow : iTunesWindow @property (copy, readonly) SBObject *selection; // the selected songs @property (copy, readonly) iTunesPlaylist *view; // the playlist displayed in t he window NSRect bounds; // the boundary rectangle for the window (readonly) BOOL closeable; // does the window have a close box? (readonly) BOOL collapseable; // does the window have a collapse (win box? BOOL collapsed; // is the window collapsed? NSPoint position; // the upper left position of the window (readonly) BOOL resizable; // is the window resizable? BOOL visible; // is the window visible? (readonly) BOOL zoomable; // is the window zoomable? BOOL zoomed; // is the window zoomed?

@end

S-ar putea să vă placă și