Audio-TagLib
view release on metacpan or search on metacpan
xs/flacfile.xs view on Meta::CPAN
readProperties);
} else {
readProperties = SvTRUE(ST(2));
if(SvPOK(ST(3)))
style = SvPV_nolen(ST(3));
else
croak("ST(3) is not of type AudioProperties::ReadStyle");
if(strncasecmp(style, "Fast", 4) == 0)
propertiesStyle = TagLib::AudioProperties::Fast;
else if(strncasecmp(style, "Average", 7) == 0)
propertiesStyle = TagLib::AudioProperties::Average;
else if(strncasecmp(style, "Accurate", 8) == 0)
propertiesStyle = TagLib::AudioProperties::Accurate;
else
croak("ST(3) is not a valid value of ReadStyle");
RETVAL = new TagLib::FLAC::File(file, readProperties,
propertiesStyle);
}
break;
default:
/* items == 5 */
if(SvPOK(ST(1)))
file = SvPV_nolen(ST(1));
else
croak("ST(1) is not a valid string");
if(sv_isobject(ST(2)) &&
sv_derived_from(ST(2), "Audio::TagLib::ID3v2::FrameFactory"))
frameFactory = INT2PTR(TagLib::ID3v2::FrameFactory *,
SvIV(SvRV(ST(2))));
else
croak("ST(2) is not of type ID3v2::FrameFactory");
readProperties = SvTRUE(ST(3));
if(SvPOK(ST(4)))
style = SvPV_nolen(ST(4));
else
croak("ST(4) is not of type AudioProperties::ReadStyle");
if(strncasecmp(style, "Fast", 4) == 0)
propertiesStyle = TagLib::AudioProperties::Fast;
else if(strncasecmp(style, "Average", 7) == 0)
propertiesStyle = TagLib::AudioProperties::Average;
else if(strncasecmp(style, "Accurate", 8) == 0)
propertiesStyle = TagLib::AudioProperties::Accurate;
else
croak("ST(4) is not a valid value of ReadStyle");
RETVAL = new TagLib::FLAC::File(file, frameFactory,
readProperties, propertiesStyle);
}
OUTPUT:
RETVAL
void
TagLib::FLAC::File::DESTROY()
CODE:
if(!SvREADONLY(SvRV(ST(0))))
delete THIS;
void
TagLib::FLAC::File::tag()
INIT:
TagLib::Tag * tag = THIS->tag();
PPCODE:
if(tag != NULL) {
ST(0) = sv_newmortal();
sv_setref_pv(ST(0), "Audio::TagLib::Tag", (void *)tag);
SvREADONLY_on(SvRV(ST(0)));
XSRETURN(1);
} else
XSRETURN_UNDEF;
void
TagLib::FLAC::File::audioProperties()
INIT:
TagLib::AudioProperties * p = THIS->audioProperties();
PPCODE:
if(p != NULL) {
ST(0) = sv_newmortal();
sv_setref_pv(ST(0), "Audio::TagLib::FLAC::Properties", (void *)p);
SvREADONLY_on(SvRV(ST(0)));
XSRETURN(1);
} else
XSRETURN_UNDEF;
bool
TagLib::FLAC::File::save()
CODE:
RETVAL = THIS->save();
OUTPUT:
RETVAL
void
TagLib::FLAC::File::ID3v2Tag(create=false)
bool create
INIT:
TagLib::ID3v2::Tag * tag = THIS->ID3v2Tag(create);
PPCODE:
if(tag != NULL) {
ST(0) = sv_newmortal();
sv_setref_pv(ST(0), "Audio::TagLib::ID3v2::Tag", (void *)tag);
SvREADONLY_on(SvRV(ST(0)));
XSRETURN(1);
} else
XSRETURN_UNDEF;
void
TagLib::FLAC::File::ID3v1Tag(create=false)
bool create
INIT:
TagLib::ID3v1::Tag * tag = THIS->ID3v1Tag(create);
PPCODE:
if(tag != NULL) {
ST(0) = sv_newmortal();
sv_setref_pv(ST(0), "Audio::TagLib::ID3v1::Tag", (void *)tag);
SvREADONLY_on(SvRV(ST(0)));
XSRETURN(1);
} else
XSRETURN_UNDEF;
void
TagLib::FLAC::File::xiphComment(create=false)
bool create
INIT:
TagLib::Ogg::XiphComment * xc = THIS->xiphComment(create);
PPCODE:
if(xc != NULL) {
ST(0) = sv_newmortal();
sv_setref_pv(ST(0), "Audio::TagLib::Ogg::XiphComment", (void *)xc);
SvREADONLY_on(SvRV(ST(0)));
XSRETURN(1);
} else
XSRETURN_UNDEF;
void
TagLib::FLAC::File::setID3v2FrameFactory(factory)
TagLib::ID3v2::FrameFactory * factory
CODE:
THIS->setID3v2FrameFactory(factory);
TagLib::ByteVector *
TagLib::FLAC::File::streamInfoData()
CODE:
RETVAL = new TagLib::ByteVector(THIS->streamInfoData());
OUTPUT:
RETVAL
long
TagLib::FLAC::File::streamLength()
CODE:
RETVAL = THIS->streamLength();
OUTPUT:
RETVAL
( run in 0.354 second using v1.01-cache-2.11-cpan-71847e10f99 )