diff --git a/Frameworks/TagLib/TagLib.xcodeproj/project.pbxproj b/Frameworks/TagLib/TagLib.xcodeproj/project.pbxproj index b36ba0de1..7b427f5a1 100644 --- a/Frameworks/TagLib/TagLib.xcodeproj/project.pbxproj +++ b/Frameworks/TagLib/TagLib.xcodeproj/project.pbxproj @@ -152,6 +152,7 @@ 4872B8881A675CCB00674347 /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4872B8871A675CCB00674347 /* libiconv.dylib */; }; 83790D241809E8CA0073CF51 /* opusfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83790D201809E8CA0073CF51 /* opusfile.cpp */; }; 83790D261809E8CA0073CF51 /* opusproperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83790D221809E8CA0073CF51 /* opusproperties.cpp */; }; + 83942C67269116530058BD3B /* flacfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 32AE59BF14E70ED600420CA0 /* flacfile.h */; settings = {ATTRIBUTES = (Public, ); }; }; 83AF2CBE2622643300538240 /* apegenfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83AF2CBC2622643300538240 /* apegenfile.cpp */; }; 83AF2CBF2622643300538240 /* apegenfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 83AF2CBD2622643300538240 /* apegenfile.h */; }; 8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C1666FE841158C02AAC07 /* InfoPlist.strings */; }; @@ -1084,6 +1085,7 @@ 32AE5A6D14E70ED600420CA0 /* asfproperties.h in Headers */, 32AE5A6F14E70ED600420CA0 /* asftag.h in Headers */, 32AE5A7114E70ED600420CA0 /* audioproperties.h in Headers */, + 83942C67269116530058BD3B /* flacfile.h in Headers */, 32AE5A7314E70ED600420CA0 /* fileref.h in Headers */, 32AE5A7714E70ED600420CA0 /* flacmetadatablock.h in Headers */, 32AE5A7914E70ED600420CA0 /* flacpicture.h in Headers */, diff --git a/Plugins/TagLib/TagLibMetadataReader.m b/Plugins/TagLib/TagLibMetadataReader.m index b17d043fa..93e52aa8b 100644 --- a/Plugins/TagLib/TagLibMetadataReader.m +++ b/Plugins/TagLib/TagLibMetadataReader.m @@ -15,6 +15,7 @@ #import #import #import +#import #import #import @@ -162,6 +163,22 @@ } } + TagLib::FLAC::File *flac = dynamic_cast(f.file()); + if (flac) { + auto list = flac->pictureList(); + if (!list.isEmpty()) { + // Just get the first image for now. + TagLib::FLAC::Picture* coverArt = list.front(); + if (coverArt) { + // Look into TagLib::FLAC::Picture::Type for type description. + NSLog(@"Loading image metadata from FLAC, type = %d", + static_cast(coverArt->type())); + image = [NSData dataWithBytes:coverArt->data().data() + length:coverArt->data().size()]; + } + } + } + if (nil == image) { // Try to load image from external file