本文整理汇总了C++中MetadataLookup::SetStep方法的典型用法代码示例。如果您正苦于以下问题:C++ MetadataLookup::SetStep方法的具体用法?C++ MetadataLookup::SetStep怎么用?C++ MetadataLookup::SetStep使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MetadataLookup
的用法示例。
在下文中一共展示了MetadataLookup::SetStep方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Lookup
void MetadataFactory::Lookup(ProgramInfo *pginfo, bool automatic,
bool getimages, bool allowgeneric)
{
if (!pginfo)
return;
MetadataLookup *lookup = new MetadataLookup();
lookup->SetStep(kLookupSearch);
lookup->SetType(kMetadataRecording);
lookup->SetSubtype(GuessLookupType(pginfo));
lookup->SetData(qVariantFromValue(pginfo));
lookup->SetAutomatic(automatic);
lookup->SetHandleImages(getimages);
lookup->SetAllowGeneric(allowgeneric);
lookup->SetHost(gCoreContext->GetMasterHostName());
lookup->SetTitle(pginfo->GetTitle());
lookup->SetSubtitle(pginfo->GetSubtitle());
lookup->SetSeason(pginfo->GetSeason());
lookup->SetEpisode(pginfo->GetEpisode());
lookup->SetInetref(pginfo->GetInetRef());
if (m_lookupthread->isRunning())
m_lookupthread->prependLookup(lookup);
else
m_lookupthread->addLookup(lookup);
}
示例2: SynchronousLookup
META_PUBLIC MetadataLookupList MetadataFactory::SynchronousLookup(QString title,
QString subtitle,
QString inetref,
int season,
int episode,
QString grabber,
bool allowgeneric)
{
MetadataLookup *lookup = new MetadataLookup();
lookup->SetStep(kLookupSearch);
lookup->SetType(kMetadataRecording);
lookup->SetAutomatic(false);
lookup->SetHandleImages(false);
lookup->SetAllowGeneric(allowgeneric);
lookup->SetTitle(title);
lookup->SetSubtitle(subtitle);
lookup->SetSeason(season);
lookup->SetEpisode(episode);
lookup->SetInetref(inetref);
if (grabber.toLower() == "movie")
lookup->SetSubtype(kProbableMovie);
else if (grabber.toLower() == "tv" ||
grabber.toLower() == "television")
lookup->SetSubtype(kProbableTelevision);
else
lookup->SetSubtype(GuessLookupType(lookup));
return SynchronousLookup(lookup);
}
示例3: Lookup
void MetadataFactory::Lookup(VideoMetadata *metadata, bool automatic,
bool getimages, bool allowgeneric)
{
if (!metadata)
return;
MetadataLookup *lookup = new MetadataLookup();
lookup->SetStep(kLookupSearch);
lookup->SetType(kMetadataVideo);
lookup->SetSubtype(GuessLookupType(metadata));
lookup->SetData(qVariantFromValue(metadata));
lookup->SetAutomatic(automatic);
lookup->SetHandleImages(getimages);
lookup->SetAllowGeneric(allowgeneric);
lookup->SetHost(metadata->GetHost());
lookup->SetTitle(metadata->GetTitle());
lookup->SetSubtitle(metadata->GetSubtitle());
lookup->SetSeason(metadata->GetSeason());
lookup->SetEpisode(metadata->GetEpisode());
lookup->SetInetref(metadata->GetInetRef());
lookup->SetFilename(generate_file_url("Videos", metadata->GetHost(),
metadata->GetFilename()));
if (m_lookupthread->isRunning())
m_lookupthread->prependLookup(lookup);
else
m_lookupthread->addLookup(lookup);
}
示例4: FindNetArt
void EditMetadataDialog::FindNetArt(VideoArtworkType type)
{
QString msg = tr("Searching for available artwork...");
createBusyDialog(msg);
MetadataLookup *lookup = new MetadataLookup();
lookup->SetStep(kLookupSearch);
lookup->SetType(kMetadataVideo);
lookup->SetAutomatic(true);
if (m_workingMetadata->GetSeason() > 0 ||
m_workingMetadata->GetEpisode() > 0)
lookup->SetSubtype(kProbableTelevision);
else if (m_workingMetadata->GetSubtitle().isEmpty())
lookup->SetSubtype(kProbableMovie);
else
lookup->SetSubtype(kUnknownVideo);
lookup->SetData(qVariantFromValue<VideoArtworkType>(type));
lookup->SetTitle(m_workingMetadata->GetTitle());
lookup->SetSubtitle(m_workingMetadata->GetSubtitle());
lookup->SetSeason(m_workingMetadata->GetSeason());
lookup->SetEpisode(m_workingMetadata->GetEpisode());
lookup->SetInetref(m_workingMetadata->GetInetRef());
m_query->addLookup(lookup);
}
示例5: findBestMatch
bool MetadataDownload::findBestMatch(MetadataLookupList list,
QString originaltitle)
{
QStringList titles;
// Build a list of all the titles
for (MetadataLookupList::const_iterator i = list.begin();
i != list.end(); ++i)
{
titles.append((*i)->GetTitle());
}
// Apply Levenshtein distance algorithm to determine closest match
QString bestTitle = nearestName(originaltitle, titles);
// If no "best" was chosen, give up.
if (bestTitle.isEmpty())
{
LOG(VB_GENERAL, LOG_ERR,
QString("No adequate match or multiple "
"matches found for %1. Update manually.")
.arg(originaltitle));
return false;
}
LOG(VB_GENERAL, LOG_INFO, QString("Best Title Match For %1: %2")
.arg(originaltitle).arg(bestTitle));
// Grab the one item that matches the besttitle (IMPERFECT)
for (MetadataLookupList::const_iterator i = list.begin();
i != list.end(); ++i)
{
if ((*i)->GetTitle() == bestTitle)
{
MetadataLookup *newlookup = (*i);
newlookup->SetStep(kLookupData);
prependLookup(newlookup);
return true;
}
}
return false;
}
示例6: gameSearch
void GameUI::gameSearch(MythGenericTree *node,
bool automode)
{
if (!node)
node = m_gameUITree->GetCurrentNode();
if (!node)
return;
RomInfo *metadata = qVariantValue<RomInfo *>(node->GetData());
if (!metadata)
return;
MetadataLookup *lookup = new MetadataLookup();
lookup->SetStep(kLookupSearch);
lookup->SetType(kMetadataGame);
lookup->SetData(qVariantFromValue(node));
if (automode)
{
lookup->SetAutomatic(true);
}
lookup->SetTitle(metadata->Gamename());
lookup->SetInetref(metadata->Inetref());
if (m_query->isRunning())
m_query->prependLookup(lookup);
else
m_query->addLookup(lookup);
if (!automode)
{
//: %1 is the game name
QString msg = tr("Fetching details for %1")
.arg(metadata->Gamename());
createBusyDialog(msg);
}
}
示例7: run
void MetadataDownload::run()
{
RunProlog();
MetadataLookup* lookup;
while ((lookup = moreWork()) != NULL)
{
MetadataLookupList list;
// Go go gadget Metadata Lookup
if (lookup->GetType() == kMetadataVideo)
{
if (lookup->GetSubtype() == kProbableTelevision)
list = handleTelevision(lookup);
else if (lookup->GetSubtype() == kProbableMovie)
list = handleMovie(lookup);
else
list = handleVideoUndetermined(lookup);
if (!list.size() &&
lookup->GetSubtype() == kUnknownVideo)
{
list = handleMovie(lookup);
}
}
else if (lookup->GetType() == kMetadataRecording)
{
if (lookup->GetSubtype() == kProbableTelevision)
{
if (lookup->GetSeason() > 0 || lookup->GetEpisode() > 0)
list = handleTelevision(lookup);
else if (!lookup->GetSubtitle().isEmpty())
list = handleVideoUndetermined(lookup);
if (!list.size())
list = handleRecordingGeneric(lookup);
}
else if (lookup->GetSubtype() == kProbableMovie)
{
list = handleMovie(lookup);
if (lookup->GetInetref().isEmpty())
list.append(handleRecordingGeneric(lookup));
}
else
{
list = handleRecordingGeneric(lookup);
if (lookup->GetInetref().isEmpty())
list.append(handleMovie(lookup));
}
}
else if (lookup->GetType() == kMetadataGame)
list = handleGame(lookup);
// inform parent we have lookup ready for it
if (m_parent && list.count() >= 1)
{
// If there's only one result, don't bother asking
// our parent about it, just add it to the back of
// the queue in kLookupData mode.
if (list.count() == 1 && list.at(0)->GetStep() == kLookupSearch)
{
MetadataLookup *newlookup = list.takeFirst();
newlookup->SetStep(kLookupData);
prependLookup(newlookup);
continue;
}
// If we're in automatic mode, we need to make
// these decisions on our own. Pass to title match.
if (list.at(0)->GetAutomatic() && list.count() > 1)
{
if (!findBestMatch(list, lookup->GetTitle()))
QCoreApplication::postEvent(m_parent,
new MetadataLookupFailure(MetadataLookupList() << lookup));
continue;
}
LOG(VB_GENERAL, LOG_INFO,
QString("Returning Metadata Results: %1 %2 %3")
.arg(lookup->GetTitle()).arg(lookup->GetSeason())
.arg(lookup->GetEpisode()));
QCoreApplication::postEvent(m_parent,
new MetadataLookupEvent(list));
}
else
{
list.append(lookup);
QCoreApplication::postEvent(m_parent,
new MetadataLookupFailure(list));
}
}
RunEpilog();
}