// // TagLibMetadataReader.m // TagLib // // Created by Vincent Spader on 2/24/07. // Copyright 2007 __MyCompanyName__. All rights reserved. // #import "TagLibMetadataReader.h" #import "TagLib/tag_c.h" @implementation TagLibMetadataReader + (NSDictionary *)metadataForURL:(NSURL *)url { NSString *lArtist = @"", *lTitle = @"", *lAlbum = @"", *lGenre = @""; int lYear = 0, lTrack = 0; TagLib_File *tagFile = taglib_file_new((const char *)[[url path] UTF8String]); if (tagFile) { TagLib_Tag *tag = taglib_file_tag(tagFile); if (tag) { char *pArtist, *pTitle, *pAlbum, *pGenre, *pComment; pArtist = taglib_tag_artist(tag); pTitle = taglib_tag_title(tag); pAlbum = taglib_tag_album(tag); pGenre = taglib_tag_genre(tag); pComment = taglib_tag_comment(tag); lYear = taglib_tag_year(tag); lTrack = taglib_tag_track(tag); if (pArtist != NULL) lArtist = [NSString stringWithUTF8String:(char *)pArtist]; else lArtist = @""; if (pAlbum != NULL) lAlbum = [NSString stringWithUTF8String:(char *)pAlbum]; else lAlbum = @""; if (pTitle != NULL) lTitle = [NSString stringWithUTF8String:(char *)pTitle]; else lTitle = @""; if (pGenre != NULL) lGenre = [NSString stringWithUTF8String:(char *)pGenre]; else lGenre = @""; taglib_tag_free_strings(); } taglib_file_free(tagFile); } return [NSDictionary dictionaryWithObjectsAndKeys: lArtist, @"artist", lTitle, @"title", lAlbum, @"album", lGenre, @"genre", [[NSNumber numberWithInt: lYear] stringValue], @"year", [NSNumber numberWithInt: lTrack], @"track", nil]; } + (NSArray *)fileTypes { //May be a way to get a list of supported formats return [NSArray arrayWithObjects:@"ogg", @"mpc", @"flac", @"m4a", @"mp3", nil]; } + (NSArray *)mimeTypes { return [NSArray arrayWithObjects:@"application/ogg", @"application/x-ogg", @"audio/x-vorbis+ogg", @"audio/x-musepack", @"audio/x-flac", @"audio/x-m4a", @"audio/mpeg", @"audio/x-mp3", nil]; } @end