本文整理汇总了C++中taglib::File::isValid方法的典型用法代码示例。如果您正苦于以下问题:C++ File::isValid方法的具体用法?C++ File::isValid怎么用?C++ File::isValid使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类taglib::File
的用法示例。
在下文中一共展示了File::isValid方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
/**
* Open a file via taglib and add file type information
*
* Open files, that taglib supports but taggit doesn't have specific support
* for using TagLibs generic interface only. That will stop us from working
* with multi-artist files for those types, but it's better than nothing.
*
* @param file file name to open
*
* @return copy of the generated struct taggit_file; *NOT* a pointer
* to it! Destroy using taggit_file_destroy().
* @sideeffects none
*/
struct taggit_file
taggit_file_open(const char *file)
{
struct taggit_file rc;
char *ext;
ext = (char *)strrchr(file, (int)'.');
if (ext == NULL || *(ext + 1) == '\0')
goto err;
ext++;
if (strcaseeq(ext, (char *)"mp3")) {
rc.data = reinterpret_cast<TagLib_File *>
(new TagLib::MPEG::File(file));
rc.type = FT_MPEG;
} else if (strcaseeq(ext, (char *)"ogg")) {
rc.data = reinterpret_cast<TagLib_File *>
(new TagLib::Ogg::Vorbis::File(file));
rc.type = FT_OGGVORBIS;
} else if (strcaseeq(ext, (char *)"oga")) {
TagLib::File *f;
f = new TagLib::Ogg::FLAC::File(file);
if (f->isValid()) {
rc.data = reinterpret_cast<TagLib_File *>(f);
rc.type = FT_OGGFLAC;
} else {
delete f;
rc.data = reinterpret_cast<TagLib_File *>
(new TagLib::Ogg::Vorbis::File(file));
rc.type = FT_OGGVORBIS;
}
} else if (strcaseeq(ext, (char *)"flac")) {
rc.data = reinterpret_cast<TagLib_File *>
(new TagLib::FLAC::File(file));
rc.type = FT_FLAC;
} else {
TagLib_File *f;
f = taglib_file_new(file);
if (!taglib_file_is_valid(f)) {
taglib_file_free(f);
goto err;
} else {
rc.data = f;
rc.type = FT_UNKNOWN;
}
}
return rc;
err:
fprintf(stderr, "Cannot handle file: \"%s\" - skipping.\n", file);
rc.data = NULL;
rc.type = FT_INVALID;
return rc;
}
示例2: Load
bool CTagLoaderTagLib::Load(const std::string& strFileName, CMusicInfoTag& tag, const std::string& fallbackFileExtension, MUSIC_INFO::EmbeddedArt *art /* = NULL */)
{
std::string strExtension = URIUtils::GetExtension(strFileName);
StringUtils::TrimLeft(strExtension, ".");
if (strExtension.empty())
{
strExtension = fallbackFileExtension;
if (strExtension.empty())
return false;
}
StringUtils::ToLower(strExtension);
TagLibVFSStream* stream = new TagLibVFSStream(strFileName, true);
if (!stream)
{
CLog::Log(LOGERROR, "could not create TagLib VFS stream for: %s", strFileName.c_str());
return false;
}
ID3v1::Tag::setStringHandler(&ID3v1StringHandler);
ID3v2::Tag::setLatin1StringHandler(&ID3v2StringHandler);
TagLib::File* file = NULL;
TagLib::APE::File* apeFile = NULL;
TagLib::ASF::File* asfFile = NULL;
TagLib::FLAC::File* flacFile = NULL;
TagLib::IT::File* itFile = NULL;
TagLib::Mod::File* modFile = NULL;
TagLib::MP4::File* mp4File = NULL;
TagLib::MPC::File* mpcFile = NULL;
TagLib::MPEG::File* mpegFile = NULL;
TagLib::Ogg::Vorbis::File* oggVorbisFile = NULL;
TagLib::Ogg::FLAC::File* oggFlacFile = NULL;
TagLib::S3M::File* s3mFile = NULL;
TagLib::TrueAudio::File* ttaFile = NULL;
TagLib::WavPack::File* wvFile = NULL;
TagLib::XM::File* xmFile = NULL;
TagLib::RIFF::WAV::File * wavFile = NULL;
TagLib::RIFF::AIFF::File * aiffFile = NULL;
if (strExtension == "ape")
file = apeFile = new APE::File(stream);
else if (strExtension == "asf" || strExtension == "wmv" || strExtension == "wma")
file = asfFile = new ASF::File(stream);
else if (strExtension == "flac")
file = flacFile = new FLAC::File(stream, ID3v2::FrameFactory::instance());
else if (strExtension == "it")
file = itFile = new IT::File(stream);
else if (strExtension == "mod" || strExtension == "module" || strExtension == "nst" || strExtension == "wow")
file = modFile = new Mod::File(stream);
else if (strExtension == "mp4" || strExtension == "m4a" ||
strExtension == "m4r" || strExtension == "m4b" ||
strExtension == "m4p" || strExtension == "3g2")
file = mp4File = new MP4::File(stream);
else if (strExtension == "mpc")
file = mpcFile = new MPC::File(stream);
else if (strExtension == "mp3" || strExtension == "aac")
file = mpegFile = new MPEG::File(stream, ID3v2::FrameFactory::instance());
else if (strExtension == "s3m")
file = s3mFile = new S3M::File(stream);
else if (strExtension == "tta")
file = ttaFile = new TrueAudio::File(stream, ID3v2::FrameFactory::instance());
else if (strExtension == "wv")
file = wvFile = new WavPack::File(stream);
else if (strExtension == "aif" || strExtension == "aiff")
file = aiffFile = new RIFF::AIFF::File(stream);
else if (strExtension == "wav")
file = wavFile = new RIFF::WAV::File(stream);
else if (strExtension == "xm")
file = xmFile = new XM::File(stream);
else if (strExtension == "ogg")
file = oggVorbisFile = new Ogg::Vorbis::File(stream);
else if (strExtension == "oga") // Leave this madness until last - oga container can have Vorbis or FLAC
{
file = oggFlacFile = new Ogg::FLAC::File(stream);
if (!file || !file->isValid())
{
delete file;
oggFlacFile = NULL;
file = oggVorbisFile = new Ogg::Vorbis::File(stream);
}
}
if (!file || !file->isOpen())
{
delete file;
delete stream;
CLog::Log(LOGDEBUG, "file could not be opened for tag reading");
return false;
}
APE::Tag *ape = NULL;
ASF::Tag *asf = NULL;
MP4::Tag *mp4 = NULL;
ID3v1::Tag *id3v1 = NULL;
ID3v2::Tag *id3v2 = NULL;
Ogg::XiphComment *xiph = NULL;
Tag *generic = NULL;
if (apeFile)
//.........这里部分代码省略.........
示例3: processTaglibFile
bool SoundSource::processTaglibFile(TagLib::File& f) {
if (s_bDebugMetadata)
qDebug() << "Parsing" << getFilename();
if (f.isValid()) {
TagLib::Tag *tag = f.tag();
if (tag) {
QString title = TStringToQString(tag->title());
setTitle(title);
QString artist = TStringToQString(tag->artist());
setArtist(artist);
QString album = TStringToQString(tag->album());
setAlbum(album);
QString comment = TStringToQString(tag->comment());
setComment(comment);
QString genre = TStringToQString(tag->genre());
setGenre(genre);
int iYear = tag->year();
QString year = "";
if (iYear > 0) {
year = QString("%1").arg(iYear);
setYear(year);
}
int iTrack = tag->track();
QString trackNumber = "";
if (iTrack > 0) {
trackNumber = QString("%1").arg(iTrack);
setTrackNumber(trackNumber);
}
if (s_bDebugMetadata)
qDebug() << "TagLib" << "title" << title << "artist" << artist << "album" << album << "comment" << comment << "genre" << genre << "year" << year << "trackNumber" << trackNumber;
}
TagLib::AudioProperties *properties = f.audioProperties();
if (properties) {
int lengthSeconds = properties->length();
int bitrate = properties->bitrate();
int sampleRate = properties->sampleRate();
int channels = properties->channels();
if (s_bDebugMetadata)
qDebug() << "TagLib" << "length" << lengthSeconds << "bitrate" << bitrate << "sampleRate" << sampleRate << "channels" << channels;
setDuration(lengthSeconds);
setBitrate(bitrate);
setSampleRate(sampleRate);
setChannels(channels);
}
// If we didn't get any audio properties, this was a failure.
return (properties!=NULL);
}
return false;
}
示例4: if
TagLib::File *Meta::Tag::FileTypeResolver::createFile(TagLib::FileName fileName,
bool readProperties,
TagLib::AudioProperties::ReadStyle propertiesStyle) const
{
TagLib::File* result = 0;
QString fn = QFile::decodeName(fileName);
QString suffix = QFileInfo(fn).suffix();
#ifdef ENABLE_KDE_SUPPORT
KMimeType::Ptr mimetype = KMimeType::findByPath(fn);
// -- check by mime type
if (mimetype->is(QLatin1String("audio/mpeg")) || mimetype->is(QLatin1String("audio/x-mpegurl"))
|| mimetype->is(QLatin1String("audio/mpeg"))) {
result = new TagLib::MPEG::File(fileName, readProperties, propertiesStyle);
} else if (mimetype->is(QLatin1String("audio/mp4")) || mimetype->is(QLatin1String("video/mp4"))) {
result = new TagLib::MP4::File(fileName, readProperties, propertiesStyle);
} else if (mimetype->is(QLatin1String("audio/x-ms-wma")) /*|| mimetype->is(QLatin1String("video/x-ms-asf"))
|| mimetype->is(QLatin1String("video/x-msvideo")) || mimetype->is(QLatin1String("video/x-ms-wmv"))*/) {
result = new TagLib::ASF::File(fileName, readProperties, propertiesStyle);
}
#ifdef TAGLIB_EXTRAS_FOUND
else if (mimetype->is(QLatin1String("audio/vnd.rn-realaudio")) || mimetype->is(QLatin1String("audio/x-pn-realaudioplugin"))
/*|| mimetype->is(QLatin1String("audio/vnd.rn-realvideo"))*/) {
result = new TagLibExtras::RealMedia::File(fileName, readProperties, propertiesStyle);
}
#endif
#ifdef TAGLIB_OPUS_FOUND
else if (mimetype->is(QLatin1String("audio/opus")) || mimetype->is(QLatin1String("audio/x-opus+ogg"))) {
result = new TagLib::Ogg::Opus::File(fileName, readProperties, propertiesStyle);
}
#endif
else if (mimetype->is(QLatin1String("audio/x-vorbis+ogg"))) {
result = new TagLib::Ogg::Vorbis::File(fileName, readProperties, propertiesStyle);
} else if (mimetype->is(QLatin1String("audio/x-flac+ogg"))) {
result = new TagLib::Ogg::FLAC::File(fileName, readProperties, propertiesStyle);
} else if (mimetype->is(QLatin1String("audio/x-aiff"))) {
result = new TagLib::RIFF::AIFF::File(fileName, readProperties, propertiesStyle);
} else if (mimetype->is(QLatin1String("audio/x-flac"))) {
result = new TagLib::FLAC::File(fileName, readProperties, propertiesStyle);
} else if (mimetype->is(QLatin1String("audio/x-musepack"))) {
result = new TagLib::MPC::File(fileName, readProperties, propertiesStyle);
} else if (mimetype->is(QLatin1String("audio/x-wav"))) {
result = new TagLib::RIFF::WAV::File(fileName, readProperties, propertiesStyle);
} else if (mimetype->is(QLatin1String("audio/x-wavpack"))) {
result = new TagLib::WavPack::File(fileName, readProperties, propertiesStyle);
} else if (mimetype->is(QLatin1String("audio/x-tta"))) {
result = new TagLib::TrueAudio::File(fileName, readProperties, propertiesStyle);
} else if (mimetype->is(QLatin1String("audio/x-speex")) || mimetype->is(QLatin1String("audio/x-speex+ogg"))) {
result = new TagLib::TrueAudio::File(fileName, readProperties, propertiesStyle);
} else if (mimetype->is(QLatin1String("audio/x-speex")) || mimetype->is(QLatin1String("audio/x-speex+ogg"))) {
result = new TagLib::TrueAudio::File(fileName, readProperties, propertiesStyle);
} else if (mimetype->is(QLatin1String("audio/x-ape"))) {
result = new TagLib::APE::File(fileName, readProperties, propertiesStyle);
}
// -- check by extension
#else // ENABLE_KDE_SUPPORT
if (suffix == QLatin1String("mp3")) {
result = new TagLib::MPEG::File(fileName, readProperties, propertiesStyle);
} else if (suffix == QLatin1String("flac")) {
result = new TagLib::FLAC::File(fileName, readProperties, propertiesStyle);
} else if (suffix == QLatin1String("ogg")) {
result = new TagLib::Ogg::Vorbis::File(fileName, readProperties, propertiesStyle);
if (!result->isValid()) {
delete result;
result = new TagLib::Ogg::FLAC::File(fileName, readProperties, propertiesStyle);
}
if (!result->isValid()) {
delete result;
result = new TagLib::TrueAudio::File(fileName, readProperties, propertiesStyle);
}
#ifdef TAGLIB_OPUS_FOUND
if (!result->isValid()) {
delete result;
result = new TagLib::Ogg::Opus::File(fileName, readProperties, propertiesStyle);
}
#endif
}
#endif //
else if (suffix == QLatin1String("m4a") || suffix == QLatin1String("m4b")
|| suffix == QLatin1String("m4p") || suffix == QLatin1String("mp4")
/*|| suffix == QLatin1String("m4v") || suffix == QLatin1String("mp4v") */) {
result = new TagLib::MP4::File(fileName, readProperties, propertiesStyle);
} else if (suffix == QLatin1String("wav")) {
result = new TagLib::RIFF::WAV::File(fileName, readProperties, propertiesStyle);
} else if (suffix == QLatin1String("wma") /*|| suffix == QLatin1String("asf")*/) {
result = new TagLib::ASF::File(fileName, readProperties, propertiesStyle);
} else if (suffix == QLatin1String("wvp") || suffix == QLatin1String("wv")) {
result = new TagLib::WavPack::File(fileName, readProperties, propertiesStyle);
} else if (suffix == QLatin1String("ape")) {
result = new TagLib::APE::File(fileName, readProperties, propertiesStyle);
} else if (suffix == QLatin1String("spx")) {
result = new TagLib::TrueAudio::File(fileName, readProperties, propertiesStyle);
} else if (suffix == QLatin1String("tta")) {
result = new TagLib::TrueAudio::File(fileName, readProperties, propertiesStyle);
} else if (suffix == QLatin1String("aiff") || suffix == QLatin1String("aif") || suffix == QLatin1String("aifc")) {
result = new TagLib::RIFF::AIFF::File(fileName, readProperties, propertiesStyle);
} else if (suffix == QLatin1String("mpc") || suffix == QLatin1String("mpp") || suffix == QLatin1String("mp+")) {
//.........这里部分代码省略.........
示例5: readInfo
bool KFlacPlugin::readInfo( KFileMetaInfo& info, uint what )
{
if ( info.path().isEmpty() ) // remote file
return false;
bool readComment = false;
bool readTech = false;
if (what & (KFileMetaInfo::Fastest |
KFileMetaInfo::DontCare |
KFileMetaInfo::ContentInfo)) readComment = true;
if (what & (KFileMetaInfo::Fastest |
KFileMetaInfo::DontCare |
KFileMetaInfo::TechnicalInfo)) readTech = true;
TagLib::File *file = 0;
if (info.mimeType() == "audio/x-flac")
file = new TagLib::FLAC::File(QFile::encodeName(info.path()).data(), readTech);
#ifdef TAGLIB_1_2
else
file = new TagLib::Ogg::FLAC::File(QFile::encodeName(info.path()).data(), readTech);
#endif
if (!file || !file->isValid())
{
kdDebug(7034) << "Couldn't open " << file->name() << endl;
delete file;
return false;
}
if(readComment && file->tag())
{
KFileMetaInfoGroup commentgroup = appendGroup(info, "Comment");
QString date = file->tag()->year() > 0 ? QString::number(file->tag()->year()) : QString::null;
QString track = file->tag()->track() > 0 ? QString::number(file->tag()->track()) : QString::null;
appendItem(commentgroup, "Title", TStringToQString(file->tag()->title()).stripWhiteSpace());
appendItem(commentgroup, "Artist", TStringToQString(file->tag()->artist()).stripWhiteSpace());
appendItem(commentgroup, "Album", TStringToQString(file->tag()->album()).stripWhiteSpace());
appendItem(commentgroup, "Date", date);
appendItem(commentgroup, "Comment", TStringToQString(file->tag()->comment()).stripWhiteSpace());
appendItem(commentgroup, "Tracknumber", track);
appendItem(commentgroup, "Genre", TStringToQString(file->tag()->genre()).stripWhiteSpace());
}
if (readTech && file->audioProperties())
{
KFileMetaInfoGroup techgroup = appendGroup(info, "Technical");
TagLib::FLAC::Properties *properties =
(TagLib::FLAC::Properties*)(file->audioProperties());
appendItem(techgroup, "Bitrate", properties->bitrate());
appendItem(techgroup, "Sample Rate", properties->sampleRate());
appendItem(techgroup, "Sample Width", properties->sampleWidth());
appendItem(techgroup, "Channels", properties->channels());
appendItem(techgroup, "Length", properties->length());
}
delete file;
return true;
}