Some more work on the iTunes remote... I'm starting to require testing,
[MenuTunes.git] / iTunesPlayer.m
1 /* Copyright (c) 2002 - 2003 by iThink Software. All Rights Reserved. */
2
3 #import "iTunesPlayer.h"
4
5 @implementation iTunesPlayer
6
7 static iTunesPlayer *_sharediTunesPlayer = nil;
8
9 + (id)sharedPlayerForRemote:(iTunesRemote *)remote {
10     if ( _sharediTunesPlayer ) {
11         _remote = remote;
12         return _sharediTunesPlayer;
13     } else {
14         _remote = remote;
15         return _sharediTunesPlayer = [[iTunesPlayer alloc] init];
16     }
17 }
18
19 - (BOOL)writable {
20     return NO;
21 }
22
23 - (BOOL)show {
24     return NO;
25 }
26
27 - (BOOL)setValue:(id)value forProperty:(ITMTGenericProperty)property {
28     return NO;
29 }
30
31 - (id)valueOfProperty:(ITMTGenericProperty)property {
32     if ( ( property == ITMTNameProperty ) {
33         return @"iTunes";
34     } else if ( ( property == ITMTImageProperty ) {
35         return nil;
36     } else {
37         return nil;
38     }
39 }
40
41 - (NSDictionary *)propertiesAndValues {
42     return [NSDictionary dictionaryWithObjectsAndKeys:@"iTunes",@"ITMTNameProperty",nil,@"ITMTImageProperty"];
43 }
44
45 - (ITMTRemote *)remote {
46     return _remote;
47 }
48
49 - (ITMTPlaylist *)currentPlaylist {
50     int tIndex;
51     if ( ( tIndex = [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKeyForNumber:@"pidx" fromObjectByKey:@"pPla" eventClass:@"core" eventID:@"getd" appPSN:savedPSN] ) ) {
52         return [iTunesPlaylist playlistWithIndex:tIndex];
53     } else {
54         return nil;
55     }
56 }
57
58 - (ITMTTrack *)currentTrack {
59     int tDIndex;
60     if ( ( tDindex = [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKeyForNumber:@"pDID" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:savedPSN] ) ) {
61         return [iTunesTrack trackWithDatabaseIndex:tDIndex];
62     } else {
63         return nil;
64     }
65 }
66
67 - (ITMTEqualizer *)currentEqualizer {
68     // return dynamically from an AE
69 }
70
71 - (NSArray *)playlists {
72     // return dynamically from an AE
73 }
74
75 - (NSArray *)tracks {
76     // return dynamically from an AE
77 }
78
79 - (ITMTPlaylist *)libraryPlaylist {
80     // return dynamically from an AE
81 }
82
83 - (NSArray *)equalizers {
84     // return dynamically from an AE
85 }
86
87 @end