1 /* Copyright (c) 2002 - 2003 by iThink Software. All Rights Reserved. */
3 #import "iTunesRemote.h"
6 @implementation iTunesRemote
9 return [[[iTunesRemote alloc] init] autorelease];
12 - (id)valueOfProperty:(ITMTRemoteProperty)property {
13 // Get from Info.plist
17 - (NSDictionary *)propertiesAndValues {
18 // Get from Info.plist
22 - (ITMTPlayerStyle)playerStyle {
23 return ITMTSinglePlayerStyle;
28 if ( [self iTunesIsRunning] ) {
29 _currentPSN = [self iTunesPSN];
31 if ( [self launchiTunes] ) {
32 _currentPSN = [self iTunesPSN];
37 if ( ( _player = [iTunesPlayer sharedPlayerForRemote:self] ) ) {
48 _currentPSN = kNoProcess;
57 - (ITMTPlayer *)currentPlayer {
65 - (NSArray *)players {
67 return [NSArray arrayWithObject:_player];
74 #pragma mark INTERNAL METHODS
77 - (BOOL)launchiTunes {
81 - (BOOL)iTunesIsRunning {
85 - (ProcessSerialNumber)iTunesPSN
87 ProcessSerialNumber number;
88 number.highLongOfPSN = kNoProcess;
89 number.lowLongOfPSN = 0;
91 while ( (GetNextProcess(&number) == noErr) )
94 if ( (CopyProcessName(&number, &name) == noErr) )
96 if ([(NSString *)name isEqualToString:@"iTunes"])
100 [(NSString *)name release];