File tree Expand file tree Collapse file tree 2 files changed +28
-0
lines changed
Expand file tree Collapse file tree 2 files changed +28
-0
lines changed Original file line number Diff line number Diff line change @@ -263,4 +263,26 @@ extension CommonMetadataSetters on ParserTag {
263263 break ;
264264 }
265265 }
266+
267+ /// Has no effect on RIFF metadata (`.wav` )
268+ void setCD (int ? cdNumber, int ? discTotal) {
269+ switch (this ) {
270+ case Mp3Metadata m:
271+ if (cdNumber != null && discTotal == null )
272+ m.partOfSet = "$cdNumber " ;
273+ else if (cdNumber != null && discTotal != null )
274+ m.partOfSet = "$cdNumber /$discTotal " ;
275+ break ;
276+ case Mp4Metadata m:
277+ m.discNumber = cdNumber;
278+ m.totalDiscs = discTotal;
279+ break ;
280+ case VorbisMetadata m:
281+ m.discNumber = cdNumber;
282+ m.discTotal = discTotal;
283+ break ;
284+ case RiffMetadata ():
285+ break ;
286+ }
287+ }
266288}
Original file line number Diff line number Diff line change @@ -173,6 +173,12 @@ class Id3v4Writer extends BaseMetadataWriter<Mp3Metadata> {
173173 if (metadata.year != null ) {
174174 _writeFrame (builder, "TYER" , metadata.year! .toString ());
175175 }
176+ if (metadata.genres.isNotEmpty) {
177+ final genresString = metadata.genres.join ('/' );
178+ _writeFrame (builder, "TCON" , genresString);
179+ } else if (metadata.contentType != null ) {
180+ _writeFrame (builder, "TCON" , metadata.contentType! );
181+ }
176182 }
177183
178184 void _writeFrame (BytesBuilder builder, String frameId, String data) {
You can’t perform that action at this time.
0 commit comments