本文整理汇总了C++中Metadata::getAlbumArtImages方法的典型用法代码示例。如果您正苦于以下问题:C++ Metadata::getAlbumArtImages方法的具体用法?C++ Metadata::getAlbumArtImages怎么用?C++ Metadata::getAlbumArtImages使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Metadata
的用法示例。
在下文中一共展示了Metadata::getAlbumArtImages方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: AddFileToDB
/*!
* \brief Insert file details into database.
* If it is an audio file, read the metadata and insert
* that information at the same time.
*
* If it is an image file, just insert the filename and
* type.
*
* \param filename Full path to file.
*
* \returns Nothing.
*/
void FileScanner::AddFileToDB(const QString &filename)
{
QString extension = filename.section( '.', -1 ) ;
QString directory = filename;
directory.remove(0, m_startdir.length());
directory = directory.section( '/', 0, -2);
QString nameFilter = gCoreContext->GetSetting("AlbumArtFilter",
"*.png;*.jpg;*.jpeg;*.gif;*.bmp");
// If this file is an image, insert the details into the music_albumart table
if (nameFilter.indexOf(extension.toLower()) > -1)
{
QString name = filename.section( '/', -1);
MSqlQuery query(MSqlQuery::InitCon());
query.prepare("INSERT INTO music_albumart SET filename = :FILE, "
"directory_id = :DIRID, imagetype = :TYPE;");
query.bindValue(":FILE", name);
query.bindValue(":DIRID", m_directoryid[directory]);
query.bindValue(":TYPE", AlbumArtImages::guessImageType(name));
if (!query.exec() || query.numRowsAffected() <= 0)
{
MythDB::DBError("music insert artwork", query);
}
return;
}
Decoder *decoder = Decoder::create(filename, NULL, NULL, true);
if (decoder)
{
LOG(VB_FILE, LOG_INFO,
QString("Reading metadata from %1").arg(filename));
Metadata *data = decoder->readMetadata();
if (data)
{
QString album_cache_string;
// Set values from cache
int did = m_directoryid[directory];
if (did > 0)
data->setDirectoryId(did);
int aid = m_artistid[data->Artist().toLower()];
if (aid > 0)
{
data->setArtistId(aid);
// The album cache depends on the artist id
album_cache_string = data->getArtistId() + "#"
+ data->Album().toLower();
if (m_albumid[album_cache_string] > 0)
data->setAlbumId(m_albumid[album_cache_string]);
}
int gid = m_genreid[data->Genre().toLower()];
if (gid > 0)
data->setGenreId(gid);
// Commit track info to database
data->dumpToDatabase();
// Update the cache
m_artistid[data->Artist().toLower()] =
data->getArtistId();
m_genreid[data->Genre().toLower()] =
data->getGenreId();
album_cache_string = data->getArtistId() + "#"
+ data->Album().toLower();
m_albumid[album_cache_string] = data->getAlbumId();
// read any embedded images from the tag
MetaIO *tagger = data->getTagger();
if (tagger && tagger->supportsEmbeddedImages())
{
AlbumArtList artList = tagger->getAlbumArtList(data->Filename());
data->setEmbeddedAlbumArt(artList);
data->getAlbumArtImages()->dumpToDatabase();
}
delete data;
}
//.........这里部分代码省略.........
示例2: addPressed
void ImportMusicDialog::addPressed()
{
if (m_tracks->size() == 0)
return;
Metadata *meta = m_tracks->at(m_currentTrack)->metadata;
// is the current track a new file?
if (m_tracks->at(m_currentTrack)->isNewTune)
{
// get the save filename - this also creates the correct directory stucture
QString saveFilename = Ripper::filenameFromMetadata(meta);
// we need to manually copy the file extension
QFileInfo fi(meta->Filename());
saveFilename += "." + fi.suffix();
// copy the file to the new location
if (!copyFile(meta->Filename(), saveFilename))
{
ShowOkPopup(tr("Copy Failed\nCould not copy file to: %1")
.arg(saveFilename));
return;
}
meta->setFilename(saveFilename);
// do we need to update the tags?
if (m_tracks->at(m_currentTrack)->metadataHasChanged)
{
Decoder *decoder = Decoder::create(saveFilename, NULL, NULL, true);
if (decoder)
{
decoder->commitMetadata(meta);
delete decoder;
}
}
// update the database
meta->dumpToDatabase();
// read any embedded images from the tag
MetaIO *tagger = meta->getTagger();
if (tagger && tagger->supportsEmbeddedImages())
{
AlbumArtList artList = tagger->getAlbumArtList(meta->Filename());
meta->setEmbeddedAlbumArt(artList);
meta->getAlbumArtImages()->dumpToDatabase();
}
m_somethingWasImported = true;
m_tracks->at(m_currentTrack)->isNewTune = Ripper::isNewTune(
meta->Artist(), meta->Album(), meta->Title());
// update the UI
fillWidgets();
}
else
ShowOkPopup(tr("This track is already in the database"));
}