[eyetunes commit] r265 - EyeTunes/trunk

0 views
Skip to first unread message

codesite...@google.com

unread,
Aug 29, 2008, 9:53:48 AM8/29/08
to eyet...@googlegroups.com
Author: ruotger...@berlin.de
Date: Fri Aug 29 06:52:48 2008
New Revision: 265

Modified:
EyeTunes/trunk/DebugController.m
EyeTunes/trunk/ETPlaylist.m

Log:
added parentPlaylist method to ETPlaylist

Modified: EyeTunes/trunk/DebugController.m
==============================================================================
--- EyeTunes/trunk/DebugController.m (original)
+++ EyeTunes/trunk/DebugController.m Fri Aug 29 06:52:48 2008
@@ -93,6 +93,9 @@
{
ETPlaylist * playlist = [playlists objectAtIndex:i];
[self _append:[playlist name]];
+ ETPlaylist * parentPlaylist = [playlist parentPlaylist];
+ if (parentPlaylist)
+ [self _append:[NSString stringWithFormat:@" --- parent: %@",
[parentPlaylist name]]];
[self _append:@"\n"];
}
}

Modified: EyeTunes/trunk/ETPlaylist.m
==============================================================================
--- EyeTunes/trunk/ETPlaylist.m (original)
+++ EyeTunes/trunk/ETPlaylist.m Fri Aug 29 06:52:48 2008
@@ -43,6 +43,8 @@

#import "ETDebug.h"

+static const BOOL doLog = NO;
+
@implementation ETPlaylist

- (id) initWithDescriptor:(AEDesc *)desc
@@ -71,6 +73,45 @@
{
return [self getCountOfElementsOfClass:ET_CLASS_TRACK];
}
+
+- (ETPlaylist*) parentPlaylist
+{
+ AppleEvent *replyEvent = [self getPropertyOfType:ET_PLAYLIST_PROP_PARENT];
+
+ if (!replyEvent)
+ {
+ // TODO: raise exception?
+ return nil;
+ }
+
+ Handle stringHandle;
+ OSErr err = AEPrintDescToHandle(replyEvent, &stringHandle);
+ if (doLog) NSLog(@"-[ETPlaylist parentplaylist] %@ -- replyEvent: %s
(AEPrintDescToHandle result %d)", [self name], *stringHandle, err);
+
+ /* Read Results */
+ AEDesc playlistDescriptor;
+ err = AEGetParamDesc((const AppleEvent *)replyEvent, keyDirectObject,
typeWildCard, &playlistDescriptor);
+ if (err != noErr)
+ {
+ DescType playlistDesc;
+ int replyValue = -1;
+ Size resultSize;
+ err = AEGetParamPtr(replyEvent, keyErrorNumber, typeWildCard,
&playlistDesc,
+ &replyValue, sizeof(replyValue), &resultSize);
+ if (replyValue != errAENoSuchObject)
+ {
+ ETLog(@"ERROR in -[ETPlaylist parentplaylist] \"%@\" -- replyEvent: %s
(AEGetParamPtr result %d)", [self name], *stringHandle, err);
+ }
+ return nil;
+ }
+
+ ETPlaylist * parentPlaylist = [[[ETPlaylist alloc]
initWithDescriptor:&playlistDescriptor] autorelease];
+ AEDisposeDesc(replyEvent);
+ free(replyEvent);
+
+ return parentPlaylist;
+}
+


- (NSEnumerator *)trackEnumerator

Reply all
Reply to author
Forward
0 new messages