本文整理汇总了C++中MusicMetadata::getAlbumArtFile方法的典型用法代码示例。如果您正苦于以下问题:C++ MusicMetadata::getAlbumArtFile方法的具体用法?C++ MusicMetadata::getAlbumArtFile怎么用?C++ MusicMetadata::getAlbumArtFile使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MusicMetadata
的用法示例。
在下文中一共展示了MusicMetadata::getAlbumArtFile方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: trackVisible
void SearchView::trackVisible(MythUIButtonListItem *item)
{
if (!item)
return;
if (item->GetImageFilename().isEmpty())
{
MusicMetadata *mdata = qVariantValue<MusicMetadata*> (item->GetData());
if (mdata)
{
QString artFile = mdata->getAlbumArtFile();
if (artFile.isEmpty())
item->SetImage("");
else
item->SetImage(mdata->getAlbumArtFile());
}
else
item->SetImage("");
}
}
示例2: GetAlbumArt
QFileInfo Content::GetAlbumArt( int nTrackId, int nWidth, int nHeight )
{
// ----------------------------------------------------------------------
// Read AlbumArt file path from database
// ----------------------------------------------------------------------
MusicMetadata *metadata = MusicMetadata::createFromID(nTrackId);
if (!metadata)
return QFileInfo();
QString sFullFileName = metadata->getAlbumArtFile();
delete metadata;
if (!RemoteFile::Exists(sFullFileName))
return QFileInfo();
QString sNewFileName = QString( "/tmp/%1.%2x%3.jpg" )
.arg( QFileInfo(sFullFileName).fileName() )
.arg( nWidth )
.arg( nHeight );
// ----------------------------------------------------------------------
// check to see if albumart image is already created.
// ----------------------------------------------------------------------
if (QFile::exists( sNewFileName ))
return QFileInfo( sNewFileName );
// ----------------------------------------------------------------------
// Must generate Albumart Image, Generate Image and save.
// ----------------------------------------------------------------------
QImage img;
if (sFullFileName.startsWith("myth://"))
{
RemoteFile rf(sFullFileName, false, false, 0);
QByteArray data;
rf.SaveAs(data);
img.loadFromData(data);
}
else
img.load(sFullFileName);
if (img.isNull())
return QFileInfo();
// We don't need to scale if no height and width were specified
// but still need to save as jpg if it's in another format
if ((nWidth == 0) && (nHeight == 0))
{
QFileInfo fi(sFullFileName);
if (fi.suffix().toLower() == "jpg")
return fi;
}
else if (nWidth > img.width() && nHeight > img.height())
{
// Requested dimensions are larger than the source image, so instead of
// scaling up which will produce horrible results return the fullsize
// image and the user can scale further if they want instead
// NOTE: If this behaviour is changed, for example making it optional,
// then upnp code will need changing to compensate
}
else
{
float fAspect = 0.0;
if (fAspect <= 0)
fAspect = (float)(img.width()) / img.height();
if ( nWidth == 0 || nWidth > img.width() )
nWidth = (int)rint(nHeight * fAspect);
if ( nHeight == 0 || nHeight > img.height() )
nHeight = (int)rint(nWidth / fAspect);
img = img.scaled( nWidth, nHeight, Qt::KeepAspectRatio,
Qt::SmoothTransformation);
}
QString fname = sNewFileName.toLatin1().constData();
// Use JPG not PNG for compatibility with the most uPnP devices and
// faster loading (smaller file to send over network)
if (!img.save( fname, "JPG" ))
return QFileInfo();
return QFileInfo( sNewFileName );
}