MP3-Tag

 view release on metacpan or  search on metacpan

lib/MP3/Tag/Inf.pm  view on Meta::CPAN

package MP3::Tag::Inf;

use strict;
use vars qw /$VERSION @ISA/;

$VERSION="1.00";
@ISA = 'MP3::Tag::__hasparent';

=pod

=head1 NAME

MP3::Tag::Inf - Module for parsing F<.inf> files associated with music tracks.

=head1 SYNOPSIS

  my $mp3inf = MP3::Tag::Inf->new($filename);	# Name of MP3 or .INF file
						# or an MP3::Tag::File object

  ($title, $artist, $album, $year, $comment, $track) = $mp3inf->parse();

see L<MP3::Tag>

=head1 DESCRIPTION

MP3::Tag::Inf is designed to be called from the MP3::Tag module.

It parses the content of F<.inf> file (created, e.g., by cdda2wav).

=over 4

=cut


# Constructor

sub new_with_parent {
    my ($class, $filename, $parent) = @_;
    my $self = bless {parent => $parent}, $class;

    $filename = $filename->filename if ref $filename;
    my $ext_rex = $self->get_config('extension')->[0];
    $filename =~ s/($ext_rex)|$/.inf/;		# replace extension
    return unless -f $filename;
    $self->{filename} = $filename;
    $self;
}

# Destructor

sub DESTROY {}

=item parse()

  ($title, $artist, $album, $year, $comment, $track) =
     $mp3inf->parse($what);

parse_filename() extracts information about artist, title, track number,
album and year from the F<.inf> file.  $what is optional; it maybe title,
track, artist, album, year or comment. If $what is defined parse() will return
only this element.

As a side effect of this call, $mp3inf->{info} is set to the hash reference
with the content of particular elements of the F<.inf> file.  Typically present
are the following fields:

  CDINDEX_DISCID
  CDDB_DISCID
  MCN
  ISRC
  Albumperformer
  Performer
  Albumtitle
  Tracktitle
  Tracknumber
  Trackstart
  Tracklength
  Pre-emphasis
  Channels
  Copy_permitted
  Endianess
  Index

The following fields are also recognized:

  Year



( run in 0.424 second using v1.01-cache-2.11-cpan-d7a12ab2c7f )