.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "MP3::Tag::Cue 3pm" .TH MP3::Tag::Cue 3pm "2022-12-30" "perl v5.36.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" MP3::Tag::Cue \- Module for parsing .cue files. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& my $db = MP3::Tag::Cue\->new($filename, $track); # Name of audio file \& my $db = MP3::Tag::Cue\->new_from($record, $track); # Contents of .cue file \& \& ($title, $artist, $album, $year, $comment, $track) = $db\->parse(); .Ve .PP see MP3::Tag .SH "DESCRIPTION" .IX Header "DESCRIPTION" MP3::Tag::Cue is designed to be called from the MP3::Tag module. .PP It parses the content of a \fI.cue\fR file. .PP The \fI.cue\fR file is looked for in the same directory as audio file; one of the following conditions must be satisfied: .IP "\(bu" 4 The \*(L"audio\*(R" file is specified is actually a \fI.cue\fR file; .IP "\(bu" 4 There is exactly one \fI.cue\fR file in the directory of audio file; .IP "\(bu" 4 There is exactly one \fI.cue\fR file in the directory of audio file with basename which is a beginning of the name of audio file. .IP "\(bu" 4 There is exactly one \fI.cue\fR file in the directory of audio file with basename which matches (case-insensitive) a beginning of the name of audio file. .PP If no \fI.cue\fR file is found in the directory of audio file, the same process is repeated once one directory uplevel, with the name of the file's directory used instead of the file name. E.g., with the files like this .PP .Vb 2 \& Foo/bar.cue \& Foo/bar/04.wav .Ve .PP audio file \fIFoo/bar/04.wav\fR will be associated with \fIFoo/bar.cue\fR. .IP "\fBparse()\fR" 4 .IX Item "parse()" .Vb 2 \& ($title, $artist, $album, $year, $comment, $track) = \& $db\->parse($what); .Ve .Sp \&\fBparse_filename()\fR extracts information about artist, title, track number, album and year from the \fI.cue\fR file. \f(CW$what\fR is optional; it maybe title, track, artist, album, year, genre or comment. If \f(CW$what\fR is defined \fBparse()\fR will return only this element. .Sp Additionally, \f(CW$what\fR can take values \f(CW\*(C`artist_collection\*(C'\fR (returns the value of artist in the whole-disk-info field \f(CW\*(C`PERFORMER\*(C'\fR, \f(CW\*(C`songwriter\*(C'\fR. .IP "\fBtitle()\fR" 4 .IX Item "title()" .Vb 1 \& $title = $db\->title(); .Ve .Sp Returns the title, obtained from the \f(CW\*(AqTracktitle\*(Aq\fR entry of the file. .IP "\fBartist()\fR" 4 .IX Item "artist()" .Vb 1 \& $artist = $db\->artist(); .Ve .Sp Returns the artist name, obtained from the \f(CW\*(AqPerformer\*(Aq\fR or \&\f(CW\*(AqAlbumperformer\*(Aq\fR entries (the first which is present) of the file. .IP "\fBtrack()\fR" 4 .IX Item "track()" .Vb 1 \& $track = $db\->track(); .Ve .Sp Returns the track number, stored during object creation, or queried from the parent. .IP "\fByear()\fR" 4 .IX Item "year()" .Vb 1 \& $year = $db\->year(); .Ve .Sp Returns the year, obtained from the \f(CW\*(AqYear\*(Aq\fR entry of the file. (Often not present.) .IP "\fBalbum()\fR" 4 .IX Item "album()" .Vb 1 \& $album = $db\->album(); .Ve .Sp Returns the album name, obtained from the \f(CW\*(AqAlbumtitle\*(Aq\fR entry of the file. .IP "\fBcomment()\fR" 4 .IX Item "comment()" .Vb 1 \& $comment = $db\->comment(); .Ve .Sp Returns the \f(CW\*(AqREM COMMENT\*(Aq\fR entry of the file. (Often not present.) .IP "\fBgenre()\fR" 4 .IX Item "genre()" .Vb 1 \& $genre = $db\->genre($filename); .Ve .SH "POD ERRORS" .IX Header "POD ERRORS" Hey! \fBThe above document had some coding errors, which are explained below:\fR .IP "Around line 131:" 4 .IX Item "Around line 131:" =over without closing =back