Changeset 41 in flacrip


Ignore:
Timestamp:
05/08/15 20:00:01 (7 years ago)
Author:
peter
Message:

Use Audio::FLAC::Header to write the tags to the FLAC file instead of making
external calls to metaflac. In addition, rip_to_flac now returns a
DiscFlacFile object.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/cd2flac

    r38 r41  
    3737$CD_DEVICE ||= '/dev/cdrom'; 
    3838 
     39my $tags = $BARCODE ? { BARCODE => $BARCODE } : {}; 
    3940my $ripper = Ripper->new({ device => $CD_DEVICE }); 
    40 $ripper->rip_to_flac($archive_flac); 
    41  
    42 if ($BARCODE) { 
    43     print "Writing barcode\n"; 
    44     system 'metaflac', '--set-tag', "BARCODE=$BARCODE", $archive_flac; 
    45 } 
     41$ripper->rip_to_flac($archive_flac, $tags); 
    4642 
    4743print "Rip saved as $archive_flac\n"; 
  • trunk/lib/Ripper.pm

    r29 r41  
    44 
    55use Tracks; 
     6use DiscFlacFile; 
    67 
    78use File::Temp qw{tempdir}; 
     
    2021 
    2122sub rip_to_flac { 
    22     my ($self, $archive_flac) = @_; 
     23    my ($self, $archive_flac, $tags) = @_; 
    2324 
    2425    $self->tracks(Tracks->new); 
     
    5051    # copy to permanent location 
    5152    copy($flac_file, $archive_flac); 
    52     system 'metaflac', '--set-tag', "MUSICBRAINZ_DISCID=$discid", $archive_flac; 
     53 
     54    # tag the archive flac 
     55    $tags ||= {}; 
     56    $tags->{MUSICBRAINZ_DISCID} = $discid; 
     57    my $flac_disc = DiscFlacFile->new({ file => $archive_flac }); 
     58    $flac_disc->flac->{tags}{$_} = $tags->{$_} foreach keys %{$tags}; 
     59    $flac_disc->flac->write; 
     60 
     61    return $flac_disc; 
    5362} 
    5463 
Note: See TracChangeset for help on using the changeset viewer.