本文整理汇总了C++中MythEvent::ExtraDataList方法的典型用法代码示例。如果您正苦于以下问题:C++ MythEvent::ExtraDataList方法的具体用法?C++ MythEvent::ExtraDataList怎么用?C++ MythEvent::ExtraDataList使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MythEvent
的用法示例。
在下文中一共展示了MythEvent::ExtraDataList方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: customEvent
void VideoSetupWizard::customEvent(QEvent *e)
{
if ((MythEvent::Type)(e->type()) == MythEvent::MythEventMessage)
{
MythEvent *me = (MythEvent *)e;
QStringList tokens = me->Message().split(" ", QString::SkipEmptyParts);
if (tokens.isEmpty())
return;
if (tokens[0] == "DOWNLOAD_FILE")
{
QStringList args = me->ExtraDataList();
if ((tokens.size() != 2) ||
(args[1] != m_downloadFile))
return;
if (tokens[1] == "UPDATE")
{
QString message = tr("Downloading Video Sample...\n"
"(%1 of %2 MB)")
.arg(QString::number(args[2].toInt() / 1024.0 / 1024.0, 'f', 2))
.arg(QString::number(args[3].toInt() / 1024.0 / 1024.0, 'f', 2));
m_progressDialog->SetMessage(message);
m_progressDialog->SetTotal(args[3].toInt());
m_progressDialog->SetProgress(args[2].toInt());
}
else if (tokens[1] == "FINISHED")
{
int fileSize = args[2].toInt();
int errorCode = args[4].toInt();
if (m_progressDialog)
m_progressDialog->Close();
QFileInfo file(m_downloadFile);
if ((m_downloadFile.startsWith("myth://")))
{
if ((errorCode == 0) &&
(fileSize > 0))
{
if (m_testType == ttHighDefinition)
testHDVideo();
else if (m_testType == ttStandardDefinition)
testSDVideo();
}
else
{
ShowOkPopup(tr("Error downloading sample to backend."));
}
}
}
}
}
}
示例2: RemoteSendEvent
void RemoteSendEvent(const MythEvent &event)
{
if (gCoreContext->IsBackend())
{
gCoreContext->dispatch(event);
return;
}
QStringList strlist( "MESSAGE" );
strlist << event.Message();
strlist << event.ExtraDataList();
gCoreContext->SendReceiveStringList(strlist);
}
示例3: customEvent
void DecoderHandler::customEvent(QEvent *event)
{
if (DecoderHandlerEvent *dhe = dynamic_cast<DecoderHandlerEvent*>(event))
{
// Proxy all DecoderHandlerEvents
return dispatch(*dhe);
}
else if (event->type() == MythEvent::MythEventMessage)
{
MythEvent *me = (MythEvent *)event;
QStringList tokens = me->Message().split(" ", QString::SkipEmptyParts);
if (tokens.isEmpty())
return;
if (tokens[0] == "DOWNLOAD_FILE")
{
QStringList args = me->ExtraDataList();
if (tokens[1] == "UPDATE")
{
}
else if (tokens[1] == "FINISHED")
{
QString downloadUrl = args[0];
int fileSize = args[2].toInt();
int errorCode = args[4].toInt();
QString filename = args[1];
if ((errorCode != 0) || (fileSize == 0))
{
LOG(VB_GENERAL, LOG_ERR, QString("DecoderHandler: failed to download playlist from '%1'")
.arg(downloadUrl));
QUrl url(downloadUrl);
m_state = STOPPED;
doOperationStop();
doFailed(url, "Could not get playlist");
}
else
{
QUrl fileUrl(filename);
createPlaylistFromFile(fileUrl);
}
}
}
}
}
示例4: customEvent
/**
* \brief Handle custom events
* \param event The custom event
*/
void GallerySlideView::customEvent(QEvent *event)
{
if ((MythEvent::Type)(event->type()) == MythEvent::MythEventMessage)
{
MythEvent *me = (MythEvent *)event;
QString message = me->Message();
QStringList extra = me->ExtraDataList();
if (message == "IMAGE_METADATA" && !extra.isEmpty())
{
int id = extra[0].toInt();
ImagePtrK selected = m_view->GetSelected();
if (selected && selected->m_id == id)
m_infoList.Display(*selected, extra.mid(1));
}
else if (message == "THUMB_AVAILABLE")
{
if (!extra.isEmpty() && m_view->Update(extra[0].toInt()))
ShowSlide(0);
}
}
else if (event->type() == DialogCompletionEvent::kEventType)
{
DialogCompletionEvent *dce = (DialogCompletionEvent *)(event);
QString resultid = dce->GetId();
int buttonnum = dce->GetResult();
if (resultid == "metadatamenu")
{
switch (buttonnum)
{
case 0: Transform(kRotateCW); break;
case 1: Transform(kRotateCCW); break;
case 2: Transform(kFlipHorizontal); break;
case 3: Transform(kFlipVertical); break;
case 4: Transform(kResetToExif); break;
case 5: Zoom(10); break;
case 6: Zoom(-10); break;
}
}
}
}
示例5: customEvent
//.........这里部分代码省略.........
}
// pass it on to the default handler in MusicCommon
handled = false;
}
else if (event->type() == OutputEvent::Stopped)
{
if (m_streamList)
{
MythUIButtonListItem *item = m_streamList->GetItemAt(m_currentTrack);
if (item)
{
item->SetFontState("normal");
item->DisplayState("stopped", "playstate");
}
}
// pass it on to the default handler in MusicCommon
handled = false;
}
else if (event->type() == OutputEvent::Buffering)
{
}
else if (event->type() == MythEvent::MythEventMessage)
{
MythEvent *me = (MythEvent *)event;
QStringList tokens = me->Message().split(" ", QString::SkipEmptyParts);
if (tokens.isEmpty())
return;
if (tokens[0] == "DOWNLOAD_FILE")
{
QStringList args = me->ExtraDataList();
if (tokens[1] == "UPDATE")
{
}
else if (tokens[1] == "FINISHED")
{
QString url = args[0];
int fileSize = args[2].toInt();
int errorCode = args[4].toInt();
QString filename = args[1];
if ((errorCode != 0) || (fileSize == 0))
LOG(VB_GENERAL, LOG_ERR, QString("StreamView: failed to download radio icon from '%1'").arg(url));
else
{
for (int x = 0; x < m_streamList->GetCount(); x++)
{
MythUIButtonListItem *item = m_streamList->GetItemAt(x);
Metadata *mdata = qVariantValue<Metadata*> (item->GetData());
if (mdata && mdata->LogoUrl() == url)
item->SetImage(filename);
}
}
}
}
}
else if (event->type() == DecoderHandlerEvent::OperationStart)
{
DecoderHandlerEvent *dhe = dynamic_cast<DecoderHandlerEvent*>(event);
if (!dhe)
return;
if (dhe->getMessage() && m_bufferStatus)
示例6: customEvent
void NewsSite::customEvent(QEvent *event)
{
if ((MythEvent::Type)(event->type()) == MythEvent::MythEventMessage)
{
MythEvent *me = (MythEvent *)event;
QStringList tokens = me->Message().split(" ", QString::SkipEmptyParts);
if (tokens.isEmpty())
return;
if (tokens[0] == "DOWNLOAD_FILE")
{
QStringList args = me->ExtraDataList();
if (tokens[1] == "UPDATE")
{
// could update a progressbar here
}
else if (tokens[1] == "FINISHED")
{
QString filename = args[1];
int fileSize = args[2].toInt();
QString errorStr = args[3];
int errorCode = args[4].toInt();
if ((errorCode != 0) || (fileSize == 0))
{
LOG(VB_GENERAL, LOG_ERR, LOC + "HTTP Connection Error" +
QString("\n\t\t\tExplanation: %1: %2")
.arg(errorCode).arg(errorStr));
m_state = NewsSite::RetrieveFailed;
m_updateErrorString = QString("%1: %2").arg(errorCode).arg(errorStr);
emit finished(this);
return;
}
else
{
m_updateErrorString = QString::null;
//m_data = data;
if (m_name.isEmpty())
{
m_state = NewsSite::WriteFailed;
}
else
{
if (QFile::exists(filename))
{
m_updated = MythDate::current();
m_state = NewsSite::Success;
}
else
{
m_state = NewsSite::WriteFailed;
}
}
emit finished(this);
}
}
}
}
}
示例7: event
bool PreviewGeneratorQueue::event(QEvent *e)
{
if (e->type() != (QEvent::Type) MythEvent::MythEventMessage)
return QObject::event(e);
MythEvent *me = (MythEvent*)e;
if (me->Message() == "GET_PREVIEW")
{
const QStringList list = me->ExtraDataList();
QStringList::const_iterator it = list.begin();
ProgramInfo evinfo(it, list.end());
QString token;
QSize outputsize;
QString outputfile;
long long time = -1LL;
bool time_fmt_sec;
if (it != list.end())
token = (*it++);
if (it != list.end())
outputsize.setWidth((*it++).toInt());
if (it != list.end())
outputsize.setHeight((*it++).toInt());
if (it != list.end())
outputfile = (*it++);
if (it != list.end())
time = (*it++).toLongLong();
QString fn;
if (it != list.end())
{
time_fmt_sec = (*it++).toInt() != 0;
fn = GeneratePreviewImage(evinfo, outputsize, outputfile,
time, time_fmt_sec, token);
}
return true;
}
else if (me->Message() == "PREVIEW_SUCCESS" ||
me->Message() == "PREVIEW_FAILED")
{
QString pginfokey = me->ExtraData(0); // pginfo->MakeUniqueKey()
QString filename = me->ExtraData(1); // outFileName
QString msg = me->ExtraData(2);
QString datetime = me->ExtraData(3);
QString token = me->ExtraData(4);
{
QMutexLocker locker(&m_lock);
QMap<QString,QString>::iterator kit = m_tokenToKeyMap.find(token);
if (kit == m_tokenToKeyMap.end())
{
LOG(VB_GENERAL, LOG_ERR, LOC +
QString("Failed to find token %1 in map.").arg(token));
return true;
}
PreviewMap::iterator it = m_previewMap.find(*kit);
if (it == m_previewMap.end())
{
LOG(VB_GENERAL, LOG_ERR, LOC +
QString("Failed to find key %1 in map.").arg(*kit));
return true;
}
if ((*it).gen)
(*it).gen->deleteLater();
(*it).gen = NULL;
(*it).genStarted = false;
if (me->Message() == "PREVIEW_SUCCESS")
{
(*it).attempts = 0;
(*it).lastBlockTime = 0;
(*it).blockRetryUntil = QDateTime();
}
else
{
(*it).lastBlockTime =
max(m_minBlockSeconds, (*it).lastBlockTime * 2);
(*it).blockRetryUntil =
MythDate::current().addSecs((*it).lastBlockTime);
}
QStringList list;
list.push_back(pginfokey);
list.push_back(filename);
list.push_back(msg);
list.push_back(datetime);
QSet<QString>::const_iterator tit = (*it).tokens.begin();
for (; tit != (*it).tokens.end(); ++tit)
{
kit = m_tokenToKeyMap.find(*tit);
if (kit != m_tokenToKeyMap.end())
m_tokenToKeyMap.erase(kit);
list.push_back(*tit);
}
if (list.size() > 4)
{
QSet<QObject*>::iterator sit = m_listeners.begin();
for (; sit != m_listeners.end(); ++sit)
{
MythEvent *e = new MythEvent(me->Message(), list);
QCoreApplication::postEvent(*sit, e);
//.........这里部分代码省略.........
示例8: customEvent
void ThemeChooser::customEvent(QEvent *e)
{
if ((MythEvent::Type)(e->type()) == MythEvent::MythEventMessage)
{
MythEvent *me = (MythEvent *)e;
QStringList tokens = me->Message().split(" ", QString::SkipEmptyParts);
if (tokens.isEmpty())
return;
if (tokens[0] == "DOWNLOAD_FILE")
{
QStringList args = me->ExtraDataList();
if ((m_downloadState == dsIdle) ||
(tokens.size() != 2) ||
(!m_downloadTheme) ||
(args[1] != m_downloadFile))
return;
if (tokens[1] == "UPDATE")
{
updateProgressBar(args[2].toInt(), args[3].toInt());
}
else if (tokens[1] == "FINISHED")
{
bool remoteFileIsLocal = false;
int fileSize = args[2].toInt();
int errorCode = args[4].toInt();
CloseBusyPopup();
QFileInfo file(m_downloadFile);
if ((m_downloadState == dsDownloadingOnBackend) &&
(m_downloadFile.startsWith("myth://")))
{
// The backend download is finished so start the
// frontend download
if ((errorCode == 0) &&
(fileSize > 0))
{
m_downloadState = dsDownloadingOnFrontend;
QString localFile = GetConfDir() + "/tmp/" +
file.fileName();
file.setFile(localFile);
if (file.exists())
{
remoteFileIsLocal = true;
m_downloadFile = localFile;
}
else
{
GetMythDownloadManager()->queueDownload(
m_downloadFile, localFile, this);
OpenBusyPopup(tr("Copying %1 Theme Package")
.arg(m_downloadTheme->GetName()));
m_downloadFile = localFile;
return;
}
}
else
{
m_downloadState = dsIdle;
ShowOkPopup(tr("ERROR downloading theme package on master backend."));
}
}
if ((m_downloadState == dsDownloadingOnFrontend) &&
(file.exists()))
{
// The frontend download is finished
if ((errorCode == 0) &&
(fileSize > 0))
{
m_downloadState = dsExtractingTheme;
ThemeExtractThread *extractThread =
new ThemeExtractThread(this, m_downloadFile,
GetConfDir() + "/themes");
MThreadPool::globalInstance()->start(
extractThread, "ThemeExtract");
if (!remoteFileIsLocal)
RemoteFile::DeleteFile(args[0]);
OpenBusyPopup(tr("Installing %1 Theme")
.arg(m_downloadTheme->GetName()));
}
else
{
m_downloadState = dsIdle;
ShowOkPopup(tr("ERROR downloading theme package from master backend."));
}
}
}
}
else if ((me->Message() == "THEME_INSTALLED") &&
(m_downloadTheme) &&
(m_downloadState == dsExtractingTheme))
{
m_downloadState = dsIdle;
//.........这里部分代码省略.........
示例9: customEvent
void NetTree::customEvent(QEvent *event)
{
if (event->type() == ThumbnailDLEvent::kEventType)
{
ThumbnailDLEvent *tde = (ThumbnailDLEvent *)event;
if (!tde)
return;
ThumbnailData *data = tde->thumb;
if (!data)
return;
QString title = data->title;
QString file = data->url;
uint pos = qVariantValue<uint>(data->data);
if (file.isEmpty())
return;
if (m_type == DLG_TREE)
{
if (title == m_siteMap->GetCurrentNode()->getString() &&
m_thumbImage)
{
m_thumbImage->SetFilename(file);
m_thumbImage->Load();
m_thumbImage->Show();
}
}
else
{
if (!((uint)m_siteButtonList->GetCount() >= pos))
{
delete data;
return;
}
MythUIButtonListItem *item =
m_siteButtonList->GetItemAt(pos);
if (item && item->GetText() == title)
{
item->SetImage(file);
}
}
delete data;
}
else if (event->type() == kGrabberUpdateEventType)
{
doTreeRefresh();
}
else if ((MythEvent::Type)(event->type()) == MythEvent::MythEventMessage)
{
MythEvent *me = (MythEvent *)event;
QStringList tokens = me->Message().split(" ", QString::SkipEmptyParts);
if (tokens.isEmpty())
return;
if (tokens[0] == "DOWNLOAD_FILE")
{
QStringList args = me->ExtraDataList();
if ((tokens.size() != 2) ||
(args[1] != m_downloadFile))
return;
if (tokens[1] == "UPDATE")
{
QString message = tr("Downloading Video...\n"
"(%1 of %2 MB)")
.arg(QString::number(args[2].toInt() / 1024.0 / 1024.0, 'f', 2))
.arg(QString::number(args[3].toInt() / 1024.0 / 1024.0, 'f', 2));
m_progressDialog->SetMessage(message);
m_progressDialog->SetTotal(args[3].toInt());
m_progressDialog->SetProgress(args[2].toInt());
}
else if (tokens[1] == "FINISHED")
{
int fileSize = args[2].toInt();
int errorCode = args[4].toInt();
if (m_progressDialog)
m_progressDialog->Close();
QFileInfo file(m_downloadFile);
if ((m_downloadFile.startsWith("myth://")))
{
if ((errorCode == 0) &&
(fileSize > 0))
{
doPlayVideo(m_downloadFile);
}
else
{
ShowOkPopup(tr("Error downloading video to backend."));
}
}
//.........这里部分代码省略.........