package Audio::TagLib::MPC::File; use 5.008003; use strict; use warnings; our $VERSION = '1.63'; use Audio::TagLib; ## no critic (ProhibitPackageVars) ## no critic (ProhibitMixedCaseVars) our %_TagTypes = ( "NoTags" => "0x0000", "ID3v1" => "0x0001", "ID3v2" => "0x0002", "APE" => "0x0004", "AllTags" => "0xffff", ); sub tag_types { return \%_TagTypes; } use base qw(Audio::TagLib::File); 1; __END__ =pod =begin stopwords Dongxu =end stopwords =head1 NAME Audio::TagLib::MPC::File - An implementation of Audio::TagLib::File with MPC specific methods =head1 SYNOPSIS use Audio::TagLib; my $i = Audio::TagLib::MPC::File->new("sample mpc file.mpc"); print $i->tag()->title()->toCString(), "\n"; # got title =head1 DESCRIPTION This implements and provides an interface for MPC files to the Audio::TagLib::Tag and Audio::TagLib::AudioProperties interfaces by way of implementing the abstract Audio::TagLib::File API as well as providing some additional information specific to MPC files. The only invalid tag combination supported is an ID3v1 tag after an APE tag. =over =item I Constructs an MPC file from $file. If $readProperties is true the file's audio properties will also be read using $propertiesStyle. If false, $propertiesStyle is ignored. =item I Destroys this instance of the File. =item I tag()> Returns the Tag for this file. This will be an APE tag, an ID3v1 tag or a combination of the two. =item I audioProperties()> Returns the MPC::Properties for this file. If no audio properties were read then this will return undef. =item I Save the file. =item I ID3v1Tag(BOOL $create = FALSE)> Returns the ID3v1 tag of the file. If $create is false (the default) this will return undef if there is no valid ID3v1 tag. If $create is true it will create an ID3v1 tag if one does not exist. If there is already an APE tag, the new ID3v1 tag will be placed after it. B The Tag is B owned by the APE::File and should not be deleted by the user. It will be deleted when the file (object) is destroyed. =item I APETag(BOOL $create = FALSE)> Returns the APE tag of the file. If $create is false (the default) this will return undef if there is no valid APE tag. If $create is true it will create a APE tag if one does not exist. If there is already an ID3v1 tag, the new APE tag will be placed before it. B The Tag is B owned by the APE::File and should not be deleted by the user. It will be deleted when the file (object) is destroyed. =item I This will remove the tag that matches TagTypes from the file. By default it removes all tags. B This will also invalidate pointers to the tags as their memory will be freed. B In order to make the removal permanent save() still needs to be called. =item %_TagTypes Deprecated. See L =item = tag_types() This set of flags is used for various operations. C lists all available values used in Perl code. B The values are not allowed to be OR-ed together in Perl. =back =head2 EXPORT None by default. =head1 SEE ALSO L L =head1 AUTHOR Dongxu Ma, Edongxu@cpan.orgE =head1 MAINTAINER Geoffrey Leach GLEACH@cpan.org =head1 COPYRIGHT AND LICENSE Copyright (C) 2005-2010 by Dongxu Ma Copyright (C) 2011 - 2012 Geoffrey Leach This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.7 or, at your option, any later version of Perl 5 you may have available. =cut