当前位置: 首页>>代码示例>>C++>>正文


C++ AttachedPictureFrame::type方法代码示例

本文整理汇总了C++中taglib::id3v2::AttachedPictureFrame::type方法的典型用法代码示例。如果您正苦于以下问题:C++ AttachedPictureFrame::type方法的具体用法?C++ AttachedPictureFrame::type怎么用?C++ AttachedPictureFrame::type使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在taglib::id3v2::AttachedPictureFrame的用法示例。


在下文中一共展示了AttachedPictureFrame::type方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: if

QImage
ID3v2TagHelper::embeddedCover() const
{
    TagLib::ID3v2::FrameList apicList = m_tag->frameListMap()[fieldName( Meta::valHasCover ).toCString()];
    TagLib::ID3v2::AttachedPictureFrame *cover = NULL;
    TagLib::ID3v2::AttachedPictureFrame *otherCover = NULL;

    for( TagLib::ID3v2::FrameList::ConstIterator it = apicList.begin(); it != apicList.end(); ++it )
    {
        TagLib::ID3v2::AttachedPictureFrame *currFrame =
                dynamic_cast< TagLib::ID3v2::AttachedPictureFrame * >( *it );

        if( currFrame->picture().size() < MIN_COVER_SIZE )
            continue;

        if( currFrame->type() == TagLib::ID3v2::AttachedPictureFrame::FrontCover )
        {
            cover = currFrame;
        }
        else if( currFrame->type() == TagLib::ID3v2::AttachedPictureFrame::Other )
        {
            otherCover = currFrame;
        }
    }

    if( !cover && otherCover )
        cover = otherCover;

    if( !cover )
        return QImage();

    return QImage::fromData( ( uchar * )( cover->picture().data() ), cover->picture().size() );
}
开发者ID:netrunner-debian-kde-extras,项目名称:amarok,代码行数:33,代码来源:ID3v2TagHelper.cpp

示例2: exportPictures

bool MetaDSF::exportPictures(const char *prefix) const
{
  std::map<std::string, unsigned int> counter;
  TagLib::ID3v2::FrameList l = _i->_file.ID3v2Tag()->frameList("APIC");
  TagLib::ID3v2::FrameList::ConstIterator it;
  for (it = l.begin(); it != l.end(); ++it) {
    TagLib::ID3v2::AttachedPictureFrame *f =
      static_cast<TagLib::ID3v2::AttachedPictureFrame *>(*it);
    std::string fname = prefix;
    std::string tname = picTypeDesc[f->type()].toCString();
    std::string ext = MIMETypeToExtMap[f->mimeType()].toCString();
    if (counter.find(tname) == counter.end())
      counter[tname] = 1;
    else
      counter[tname] += 1;
    fname += "_";
    fname += tname;
    fname += "_";
    fname += std::to_string(counter[tname]);
    fname += ".";
    fname += ext;
    //std::cout << "fname = " << fname << std::endl;
    writeFileFromVector(fname.c_str(), f->picture());
  }
  return true;
}
开发者ID:pekingduck,项目名称:metadsf,代码行数:26,代码来源:metadsf.cpp

示例3: malloc

/* GET ALBUM COVER
 */
const char * tag_data_get_cover (TagDatac * data, uint * len)
{
    TagLib::ID3v2::AttachedPictureFrame * pic = NULL;
    if (!(reinterpret_cast<TagData *>(data))->id3v2 || (reinterpret_cast<TagData *>(data))->id3v2->frameListMap()["APIC"].isEmpty())
    {
        *len = 0;
        return NULL;
    }

    TagLib::ID3v2::FrameList::ConstIterator it;
    TagLib::ID3v2::FrameList l = (reinterpret_cast<TagData *>(data))->id3v2->frameListMap()["APIC"];
    for(it=l.begin(); it!=l.end(); ++it)
    {
        TagLib::ID3v2::AttachedPictureFrame * t = dynamic_cast<TagLib::ID3v2::AttachedPictureFrame*>(*it);
        if (pic == NULL)
            pic = t;
        if (t->type () == TagLib::ID3v2::AttachedPictureFrame::FrontCover)
        {
            pic = t;
            break;
        }
    }
    if (pic == NULL)
    {
        *len = 0;
        return NULL;
    }
    *len = pic->picture ().size ();
	const char * out = (const char *) malloc (*len);
    memcpy ((void *) out, pic->picture ().data(), *len);
    return out;
}
开发者ID:jamesyan84,项目名称:zbase,代码行数:34,代码来源:tagwriter.cpp

示例4:

bool
ID3v2TagHelper::hasEmbeddedCover() const
{
    TagLib::ID3v2::FrameList apicList = m_tag->frameListMap()[fieldName( Meta::valHasCover ).toCString()];

    for( TagLib::ID3v2::FrameList::ConstIterator it = apicList.begin(); it != apicList.end(); ++it )
    {
        TagLib::ID3v2::AttachedPictureFrame *currFrame =
                dynamic_cast< TagLib::ID3v2::AttachedPictureFrame * >( *it );

        if( currFrame->picture().size() < MIN_COVER_SIZE )
            continue;

        if( currFrame->type() == TagLib::ID3v2::AttachedPictureFrame::FrontCover ||
            currFrame->type() == TagLib::ID3v2::AttachedPictureFrame::Other )
            return true;
    }

    return false;
}
开发者ID:netrunner-debian-kde-extras,项目名称:amarok,代码行数:20,代码来源:ID3v2TagHelper.cpp

示例5: deletePictures

int MetaDSF::deletePictures(const TagLib::String &ptype) 
{
  TagLib::ID3v2::FrameList l = _i->_file.ID3v2Tag()->frameList("APIC");
  TagLib::ID3v2::FrameList dl; // a list of frames to be deleted
  TagLib::ID3v2::FrameList::ConstIterator it;
  std::string pt = ptype.toCString();
  // retrieve a list of frames that matches the given type
  for (it = l.begin(); it != l.end(); it++) {
    TagLib::ID3v2::AttachedPictureFrame *f = 
      static_cast<TagLib::ID3v2::AttachedPictureFrame *>(*it);
    TagLib::ID3v2::AttachedPictureFrame::Type t = 
      static_cast<TagLib::ID3v2::AttachedPictureFrame::Type>(std::stoi(pt, 
								       0, 16));
    if (f->type() == t) {
      dl.append(f);
    }
  }  

  _i->deleteFrames(dl);
  _i->_changed = true;
  return dl.size();
}
开发者ID:pekingduck,项目名称:metadsf,代码行数:22,代码来源:metadsf.cpp

示例6: if


//.........这里部分代码省略.........

	// Preference is TXXX frames, RVA2 frame, then LAME header
	auto trackGainFrame = TagLib::ID3v2::UserTextIdentificationFrame::find(const_cast<TagLib::ID3v2::Tag *>(tag), "REPLAYGAIN_TRACK_GAIN");
	auto trackPeakFrame = TagLib::ID3v2::UserTextIdentificationFrame::find(const_cast<TagLib::ID3v2::Tag *>(tag), "REPLAYGAIN_TRACK_PEAK");
	auto albumGainFrame = TagLib::ID3v2::UserTextIdentificationFrame::find(const_cast<TagLib::ID3v2::Tag *>(tag), "REPLAYGAIN_ALBUM_GAIN");
	auto albumPeakFrame = TagLib::ID3v2::UserTextIdentificationFrame::find(const_cast<TagLib::ID3v2::Tag *>(tag), "REPLAYGAIN_ALBUM_PEAK");

	if(!trackGainFrame)
		trackGainFrame = TagLib::ID3v2::UserTextIdentificationFrame::find(const_cast<TagLib::ID3v2::Tag *>(tag), "replaygain_track_gain");
	if(trackGainFrame) {
		SFB::CFString str(trackGainFrame->fieldList().back().toCString(true), kCFStringEncodingUTF8);
		double num = CFStringGetDoubleValue(str);

		AddDoubleToDictionary(dictionary, Metadata::kTrackGainKey, num);
		AddDoubleToDictionary(dictionary, Metadata::kReferenceLoudnessKey, 89.0);

		foundReplayGain = true;
	}

	if(!trackPeakFrame)
		trackPeakFrame = TagLib::ID3v2::UserTextIdentificationFrame::find(const_cast<TagLib::ID3v2::Tag *>(tag), "replaygain_track_peak");
	if(trackPeakFrame) {
		SFB::CFString str(trackPeakFrame->fieldList().back().toCString(true), kCFStringEncodingUTF8);
		double num = CFStringGetDoubleValue(str);

		AddDoubleToDictionary(dictionary, Metadata::kTrackPeakKey, num);
	}

	if(!albumGainFrame)
		albumGainFrame = TagLib::ID3v2::UserTextIdentificationFrame::find(const_cast<TagLib::ID3v2::Tag *>(tag), "replaygain_album_gain");
	if(albumGainFrame) {
		SFB::CFString str(albumGainFrame->fieldList().back().toCString(true), kCFStringEncodingUTF8);
		double num = CFStringGetDoubleValue(str);

		AddDoubleToDictionary(dictionary, Metadata::kAlbumGainKey, num);
		AddDoubleToDictionary(dictionary, Metadata::kReferenceLoudnessKey, 89.0);

		foundReplayGain = true;
	}

	if(!albumPeakFrame)
		albumPeakFrame = TagLib::ID3v2::UserTextIdentificationFrame::find(const_cast<TagLib::ID3v2::Tag *>(tag), "replaygain_album_peak");
	if(albumPeakFrame) {
		SFB::CFString str(albumPeakFrame->fieldList().back().toCString(true), kCFStringEncodingUTF8);
		double num = CFStringGetDoubleValue(str);

		AddDoubleToDictionary(dictionary, Metadata::kAlbumPeakKey, num);
	}

	// If nothing found check for RVA2 frame
	if(!foundReplayGain) {
		frameList = tag->frameListMap()["RVA2"];

		for(auto frameIterator : tag->frameListMap()["RVA2"]) {
			TagLib::ID3v2::RelativeVolumeFrame *relativeVolume = dynamic_cast<TagLib::ID3v2::RelativeVolumeFrame *>(frameIterator);
			if(!relativeVolume)
				continue;

			// Attempt to use the master volume if present
			auto channels		= relativeVolume->channels();
			auto channelType	= TagLib::ID3v2::RelativeVolumeFrame::MasterVolume;

			// Fall back on whatever else exists in the frame
			if(!channels.contains(TagLib::ID3v2::RelativeVolumeFrame::MasterVolume))
				channelType = channels.front();

			float volumeAdjustment = relativeVolume->volumeAdjustment(channelType);

			if(TagLib::String("track", TagLib::String::Latin1) == relativeVolume->identification()) {
				if((int)volumeAdjustment)
					AddFloatToDictionary(dictionary, Metadata::kTrackGainKey, volumeAdjustment);
			}
			else if(TagLib::String("album", TagLib::String::Latin1) == relativeVolume->identification()) {
				if((int)volumeAdjustment)
					AddFloatToDictionary(dictionary, Metadata::kAlbumGainKey, volumeAdjustment);
			}
			// Fall back to track gain if identification is not specified
			else {
				if((int)volumeAdjustment)
					AddFloatToDictionary(dictionary, Metadata::kTrackGainKey, volumeAdjustment);
			}
		}
	}

	// Extract album art if present
	for(auto it : tag->frameListMap()["APIC"]) {
		TagLib::ID3v2::AttachedPictureFrame *frame = dynamic_cast<TagLib::ID3v2::AttachedPictureFrame *>(it);
		if(frame) {
			SFB::CFData data((const UInt8 *)frame->picture().data(), (CFIndex)frame->picture().size());

			SFB::CFString description;
			if(!frame->description().isEmpty())
				description = CFString(frame->description().toCString(true), kCFStringEncodingUTF8);

			attachedPictures.push_back(std::make_shared<AttachedPicture>(data, (AttachedPicture::Type)frame->type(), description));
		}
	}

	return true;
}
开发者ID:notjosh,项目名称:SFBAudioEngine,代码行数:101,代码来源:AddID3v2TagToDictionary.cpp

示例7: if

void cMediaInfo::readTagV2(ID3v2::Tag* lpTag)
{
	m_iID3v2Version		= lpTag->header()->majorVersion();
	m_iID3v2Revision	= lpTag->header()->revisionNumber();
	m_iID3v2Size		= lpTag->header()->tagSize();

	for(ID3v2::FrameList::ConstIterator	it = lpTag->frameList().begin();it != lpTag->frameList().end();it++)
	{
		QString	szID	= QString("%1").arg((*it)->frameID().data()).left(4);

		if(!szID.compare("TIT1"))
			m_szContentGroupDescription				= QString::fromStdWString((*it)->toString().toWString());
		else if(!szID.compare("TIT2"))
			m_szTitle								= QString::fromStdWString((*it)->toString().toWString());
		else if(!szID.compare("TIT3"))
			m_szSubTitle							= QString::fromStdWString((*it)->toString().toWString());
		else if(!szID.compare("TALB"))
			m_szAlbum								= QString::fromStdWString((*it)->toString().toWString());
		else if(!szID.compare("TOAL"))
			m_szOriginalAlbum						= QString::fromStdWString((*it)->toString().toWString());
		else if(!szID.compare("TRCK"))
			m_szTrackNumber							= QString::fromStdWString((*it)->toString().toWString());
		else if(!szID.compare("TPOS"))
			m_szPartOfSet							= QString::fromStdWString((*it)->toString().toWString());
		else if(!szID.compare("TSST"))
			m_szSubTitleOfSet						= QString::fromStdWString((*it)->toString().toWString());
		else if(!szID.compare("TSRC"))
			m_szInternationalStandardRecordingCode	= QString::fromStdWString((*it)->toString().toWString());
		else if(!szID.compare("TPE1"))
			m_szLeadArtist							= QString::fromStdWString((*it)->toString().toWString());
		else if(!szID.compare("TPE2"))
			m_szBand								= QString::fromStdWString((*it)->toString().toWString());
		else if(!szID.compare("TPE3"))
			m_szConductor							= QString::fromStdWString((*it)->toString().toWString());
		else if(!szID.compare("TPE4"))
			m_szInterpret							= QString::fromStdWString((*it)->toString().toWString()).split("\r\n");
		else if(!szID.compare("TOPE"))
			m_szOriginalArtist						= QString::fromStdWString((*it)->toString().toWString());
		else if(!szID.compare("TEXT"))
			m_szTextWriter							= QString::fromStdWString((*it)->toString().toWString());
		else if(!szID.compare("TOLY"))
			m_szOriginalTextWriter					= QString::fromStdWString((*it)->toString().toWString());
		else if(!szID.compare("TCOM"))
			m_szComposer							= QString::fromStdWString((*it)->toString().toWString());
		else if(!szID.compare("TENC"))
			m_szEncodedBy							= QString::fromStdWString((*it)->toString().toWString());
		else if(!szID.compare("TBPM"))
			m_iBeatsPerMinute						= QString::fromStdWString((*it)->toString().toWString()).toInt();
		else if(!szID.compare("TLEN") && m_iLength == 0)
			m_iLength								= QString::fromStdWString((*it)->toString().toWString()).toInt();
		else if(!szID.compare("TLAN"))
				m_szLanguage						= QString::fromStdWString((*it)->toString().toWString()).split("\r\n");
		else if(!szID.compare("TCON"))
				m_szContentType						= QString::fromStdWString((*it)->toString().toWString()).split("\r\n");
		else if(!szID.compare("TFLT"))
			m_szFileType							= QString::fromStdWString((*it)->toString().toWString());
		else if(!szID.compare("TMED"))
				m_szMediaType						= QString::fromStdWString((*it)->toString().toWString()).split("\r\n");
		else if(!szID.compare("TMOO"))
			m_szMood								= QString::fromStdWString((*it)->toString().toWString());
		else if(!szID.compare("TCOP"))
			m_szCopyright							= QString::fromStdWString((*it)->toString().toWString());
		else if(!szID.compare("TPRO"))
			m_szProducedNotice						= QString::fromStdWString((*it)->toString().toWString());
		else if(!szID.compare("TPUB"))
			m_szPublisher							= QString::fromStdWString((*it)->toString().toWString());
		else if(!szID.compare("TOWN"))
			m_szFileOwner							= QString::fromStdWString((*it)->toString().toWString());
		else if(!szID.compare("TRSN"))
			m_szInternetRadioStationName			= QString::fromStdWString((*it)->toString().toWString());
		else if(!szID.compare("TRSO"))
			m_szInternetRadioStationOwner			= QString::fromStdWString((*it)->toString().toWString());
		else if(!szID.compare("TOFN"))
			m_szOriginalFilename					= QString::fromStdWString((*it)->toString().toWString());
		else if(!szID.compare("TDLY"))
			m_iPlaylistDelay						= QString::fromStdWString((*it)->toString().toWString()).toInt();
		else if(!szID.compare("TDEN"))
			m_encodingTime							= str2TS(QString::fromStdWString((*it)->toString().toWString()));
		else if(!szID.compare("TDOR"))
			m_originalReleaseTime					= str2TS(QString::fromStdWString((*it)->toString().toWString()));
		else if(!szID.compare("TDRC"))
			m_recordingTime							= str2TS(QString::fromStdWString((*it)->toString().toWString()));
		else if(!szID.compare("TDRL"))
			m_releaseTime							= str2TS(QString::fromStdWString((*it)->toString().toWString()));
		else if(!szID.compare("TDTG"))
			m_taggingTime							= str2TS(QString::fromStdWString((*it)->toString().toWString()));
		else if(!szID.compare("TSSE"))
			m_szswhwSettings						= QString(QString::fromStdWString((*it)->toString().toWString())).split("\r\n");
		else if(!szID.compare("TSOA"))
			m_szAlbumSortOrder						= QString::fromStdWString((*it)->toString().toWString());
		else if(!szID.compare("TSOP"))
			m_szPerformerSortOrder					= QString::fromStdWString((*it)->toString().toWString());
		else if(!szID.compare("TSOT"))
			m_szTitleSortOrder						= QString::fromStdWString((*it)->toString().toWString());
		else if(!szID.compare("SYLT"))
		{
			TagLib::ID3v2::SynchronizedLyricsFrame*	lpLyrics	= static_cast<TagLib::ID3v2::SynchronizedLyricsFrame *> (*it);

			m_szSynchronizedLyricsLanguage			= QString(lpLyrics->language().data()).left(3);
			String::Type	type					= lpLyrics->textEncoding();
//.........这里部分代码省略.........
开发者ID:birkeh,项目名称:qtjukebox,代码行数:101,代码来源:cmediainfo.cpp


注:本文中的taglib::id3v2::AttachedPictureFrame::type方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。