diff --git a/Playlist/PlaylistEntry.h b/Playlist/PlaylistEntry.h index 391b60553..dc14a4389 100644 --- a/Playlist/PlaylistEntry.h +++ b/Playlist/PlaylistEntry.h @@ -79,6 +79,7 @@ @property(nonatomic) NSString *_Nullable artist; @property(nonatomic) NSString *_Nullable rawTitle; @property(nonatomic) NSString *_Nullable genre; +@property(nonatomic) NSString *_Nullable composer; @property(nonatomic) int32_t disc; @property(nonatomic) int32_t track; @property(nonatomic) int32_t year; diff --git a/Playlist/PlaylistEntry.m b/Playlist/PlaylistEntry.m index e3bd6a47e..52b839ac7 100644 --- a/Playlist/PlaylistEntry.m +++ b/Playlist/PlaylistEntry.m @@ -686,6 +686,15 @@ NSURL *_Nullable urlForPath(NSString *_Nullable path) { [self setValue:@"artist" fromString:artist]; } +@dynamic composer; +- (NSString *)composer { + return [self readAllValuesAsString:@"composer"]; +} + +- (void)setComposer:(NSString *)composer { + [self setValue:@"composer" fromString:composer]; +} + @dynamic rawTitle; - (NSString *)rawTitle { return [self readAllValuesAsString:@"title"]; diff --git a/Plugins/TagLib/TagLibID3v2Reader.mm b/Plugins/TagLib/TagLibID3v2Reader.mm index f3f9c8936..fcf4ab695 100644 --- a/Plugins/TagLib/TagLibID3v2Reader.mm +++ b/Plugins/TagLib/TagLibID3v2Reader.mm @@ -60,7 +60,7 @@ const TagLib::Tag *tag = f.tag(); if(tag) { - TagLib::String artist, albumartist, title, album, genre, comment, unsyncedlyrics; + TagLib::String artist, albumartist, composer, title, album, genre, comment, unsyncedlyrics; int year, track, disc; float rgAlbumGain, rgAlbumPeak, rgTrackGain, rgTrackPeak; TagLib::String cuesheet; @@ -68,6 +68,7 @@ artist = tag->artist(); albumartist = tag->albumartist(); + composer = tag->composer(); title = tag->title(); album = tag->album(); genre = tag->genre(); @@ -117,6 +118,9 @@ if(!albumartist.isEmpty()) [dict setObject:[NSString stringWithUTF8String:albumartist.toCString(true)] forKey:@"albumartist"]; + if(!composer.isEmpty()) + [dict setObject:[NSString stringWithUTF8String:composer.toCString(true)] forKey:@"composer"]; + if(!album.isEmpty()) [dict setObject:[NSString stringWithUTF8String:album.toCString(true)] forKey:@"album"]; diff --git a/Plugins/TagLib/TagLibMetadataReader.m b/Plugins/TagLib/TagLibMetadataReader.m index 20d783c90..a433184e5 100644 --- a/Plugins/TagLib/TagLibMetadataReader.m +++ b/Plugins/TagLib/TagLibMetadataReader.m @@ -73,7 +73,7 @@ const TagLib::Tag *tag = f.tag(); if(tag) { - TagLib::String artist, albumartist, title, album, genre, comment, unsyncedlyrics; + TagLib::String artist, albumartist, composer, title, album, genre, comment, unsyncedlyrics; int year, track, disc; float rgAlbumGain, rgAlbumPeak, rgTrackGain, rgTrackPeak; TagLib::String cuesheet; @@ -81,6 +81,7 @@ artist = tag->artist(); albumartist = tag->albumartist(); + composer = tag->composer(); title = tag->title(); ; album = tag->album(); @@ -132,6 +133,9 @@ if(!albumartist.isEmpty()) [dict setObject:[NSString stringWithUTF8String:albumartist.toCString(true)] forKey:@"albumartist"]; + if(!composer.isEmpty()) + [dict setObject:[NSString stringWithUTF8String:composer.toCString(true)] forKey:@"composer"]; + if(!album.isEmpty()) [dict setObject:[NSString stringWithUTF8String:album.toCString(true)] forKey:@"album"];