From aed9b5057fc685608d8b9f0b6dde48d31bf688bf Mon Sep 17 00:00:00 2001 From: Brian Wells Date: Mon, 21 Feb 2011 23:17:56 -0500 Subject: [PATCH] Edit Tags: Image subtitle with type, dimensions --- Edit MPEG-4 Metadata Tags/AlbumArt.h | 1 + Edit MPEG-4 Metadata Tags/AlbumArt.m | 41 +++++++++++++++++++ .../English.lproj/main.xib | 2 +- 3 files changed, 43 insertions(+), 1 deletion(-) diff --git a/Edit MPEG-4 Metadata Tags/AlbumArt.h b/Edit MPEG-4 Metadata Tags/AlbumArt.h index 7aaf740..ca7f3ef 100644 --- a/Edit MPEG-4 Metadata Tags/AlbumArt.h +++ b/Edit MPEG-4 Metadata Tags/AlbumArt.h @@ -39,6 +39,7 @@ @interface AlbumArt : NSManagedObject { NSUInteger imageVersion; + NSString *imageTitle; } @property NSUInteger imageVersion; diff --git a/Edit MPEG-4 Metadata Tags/AlbumArt.m b/Edit MPEG-4 Metadata Tags/AlbumArt.m index 778c4aa..93fbdf7 100644 --- a/Edit MPEG-4 Metadata Tags/AlbumArt.m +++ b/Edit MPEG-4 Metadata Tags/AlbumArt.m @@ -41,6 +41,13 @@ @implementation AlbumArt @synthesize imageVersion; @dynamic primitiveImageRepresentation; +- (void) dealloc +{ + [imageTitle release]; + imageTitle = nil; + [super dealloc]; +} + - (void)setImageRepresentation:(NSData *)data { [self willChangeValueForKey:@"imageRepresentation"]; [self setPrimitiveImageRepresentation:data]; @@ -56,6 +63,40 @@ - (NSString *)imageUID { return [[[self objectID] URIRepresentation] description]; } +- (NSString *)imageSubtitle { + if (!imageTitle) { + NSUInteger artwork_type = [[self valueForKey:@"imageType"] unsignedIntegerValue]; + NSString *imageType; + switch (artwork_type) { + case MP4_ART_JPEG: + imageType = @"JPEG"; + break; + case MP4_ART_PNG: + imageType = @"PNG"; + break; + case MP4_ART_BMP: + imageType = @"BMP"; + break; + case MP4_ART_GIF: + imageType = @"GIF"; + break; + default: + imageType = @"Image"; + break; + } + // get image size + NSData *imageData = [self valueForKey:@"imageRepresentation"]; + NSImage *image = [[NSImage alloc] initWithData:imageData]; + if (image) { + NSSize imageSize = [image size]; + imageTitle = [NSString stringWithFormat:@"%@ (%.0f x %.0f)",imageType,imageSize.width,imageSize.height]; + } else { + imageTitle = [NSString stringWithString:imageType]; + } + } + return imageTitle; +} + - (NSArray *)writableTypesForPasteboard:(NSPasteboard *)pasteboard { NSUInteger artwork_type = [[self valueForKey:@"imageType"] unsignedIntegerValue]; NSString *dataType = nil; diff --git a/Edit MPEG-4 Metadata Tags/English.lproj/main.xib b/Edit MPEG-4 Metadata Tags/English.lproj/main.xib index adc06d5..38c4468 100644 --- a/Edit MPEG-4 Metadata Tags/English.lproj/main.xib +++ b/Edit MPEG-4 Metadata Tags/English.lproj/main.xib @@ -1877,7 +1877,7 @@ {466, 98} NO - NO + YES NO NO YES