- NSString *result = [self runScriptAndReturnResult:@"get number of playlists"];
- return [result intValue];
+ NSString *result = [self runScriptAndReturnResult:@"get player state"];
+
+ if ([result isEqualToString:@"playing"]) {
+ return playing;
+ } else if ([result isEqualToString:@"paused"]) {
+ return paused;
+ } else if ([result isEqualToString:@"stopped"]) {
+ return stopped;
+ } else if ([result isEqualToString:@"rewinding"]) {
+ return rewinding;
+ } else if ([result isEqualToString:@"fast forwarding"]) {
+ return forwarding;
+ }
+
+ return stopped;
+}
+
+- (NSArray *)playlists
+{
+ int i;
+ int numPresets = [[self runScriptAndReturnResult:@"get number of playlists"] intValue];
+ NSMutableArray *presets = [[NSMutableArray alloc] init];
+
+ for (i = 0; i < numPresets; i++) {
+ [presets addObject:[self runScriptAndReturnResult:[NSString stringWithFormat:@"get name of playlist %i", i]]];
+ }
+
+ return [NSArray arrayWithArray:presets];