本文整理汇总了C++中CGUIDialogExtendedProgressBar::GetHandle方法的典型用法代码示例。如果您正苦于以下问题:C++ CGUIDialogExtendedProgressBar::GetHandle方法的具体用法?C++ CGUIDialogExtendedProgressBar::GetHandle怎么用?C++ CGUIDialogExtendedProgressBar::GetHandle使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CGUIDialogExtendedProgressBar
的用法示例。
在下文中一共展示了CGUIDialogExtendedProgressBar::GetHandle方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: DoWork
bool CFileOperationJob::DoWork()
{
FileOperationList ops;
double totalTime = 0.0;
if (m_displayProgress && GetProgressDialog() == NULL)
{
CGUIDialogExtendedProgressBar* dialog =
(CGUIDialogExtendedProgressBar*)g_windowManager.GetWindow(WINDOW_DIALOG_EXT_PROGRESS);
SetProgressBar(dialog->GetHandle(GetActionString(m_action)));
}
bool success = DoProcess(m_action, m_items, m_strDestFile, ops, totalTime);
unsigned int size = ops.size();
double opWeight = 100.0 / totalTime;
double current = 0.0;
for (unsigned int i = 0; i < size && success; i++)
success &= ops[i].ExecuteOperation(this, current, opWeight);
MarkFinished();
return success;
}
示例2: ShowProgressDialog
void CEpgContainer::ShowProgressDialog(bool bUpdating /* = true */)
{
if (!m_progressHandle)
{
CGUIDialogExtendedProgressBar *progressDialog = (CGUIDialogExtendedProgressBar *)g_windowManager.GetWindow(WINDOW_DIALOG_EXT_PROGRESS);
if (progressDialog)
m_progressHandle = progressDialog->GetHandle(bUpdating ? g_localizeStrings.Get(19004) : g_localizeStrings.Get(19250));
}
}
示例3: ShowProgressDialog
void CPVRManager::ShowProgressDialog(const CStdString &strText, int iProgress)
{
if (!m_progressHandle)
{
CGUIDialogExtendedProgressBar *loadingProgressDialog = (CGUIDialogExtendedProgressBar *)g_windowManager.GetWindow(WINDOW_DIALOG_EXT_PROGRESS);
m_progressHandle = loadingProgressDialog->GetHandle(g_localizeStrings.Get(19235)); // PVR manager is starting up
}
m_progressHandle->SetPercentage((float)iProgress);
m_progressHandle->SetText(strText);
}
示例4: ShowProgressDialog
void CGUIWindowPVRBase::ShowProgressDialog(const std::string &strText, int iProgress)
{
if (!m_progressHandle)
{
CGUIDialogExtendedProgressBar *loadingProgressDialog = dynamic_cast<CGUIDialogExtendedProgressBar *>(g_windowManager.GetWindow(WINDOW_DIALOG_EXT_PROGRESS));
if (!loadingProgressDialog)
{
CLog::Log(LOGERROR, "CGUIWindowPVRBase - %s - unable to get WINDOW_DIALOG_EXT_PROGRESS!", __FUNCTION__);
return;
}
m_progressHandle = loadingProgressDialog->GetHandle(g_localizeStrings.Get(19235)); // PVR manager is starting up
}
m_progressHandle->SetPercentage(static_cast<float>(iProgress));
m_progressHandle->SetText(strText);
}
示例5: Process
void CMusicInfoScanner::Process()
{
ANNOUNCEMENT::CAnnouncementManager::Announce(ANNOUNCEMENT::AudioLibrary, "xbmc", "OnScanStarted");
try
{
unsigned int tick = XbmcThreads::SystemClockMillis();
m_musicDatabase.Open();
if (m_showDialog && !g_guiSettings.GetBool("musiclibrary.backgroundupdate"))
{
CGUIDialogExtendedProgressBar* dialog =
(CGUIDialogExtendedProgressBar*)g_windowManager.GetWindow(WINDOW_DIALOG_EXT_PROGRESS);
m_handle = dialog->GetHandle(g_localizeStrings.Get(314));
}
m_bCanInterrupt = true;
if (m_scanType == 0) // load info from files
{
CLog::Log(LOGDEBUG, "%s - Starting scan", __FUNCTION__);
if (m_handle)
m_handle->SetTitle(g_localizeStrings.Get(505));
// Reset progress vars
m_currentItem=0;
m_itemCount=-1;
// Create the thread to count all files to be scanned
SetPriority( GetMinPriority() );
CThread fileCountReader(this, "CMusicInfoScanner");
if (m_handle)
fileCountReader.Create();
// Database operations should not be canceled
// using Interupt() while scanning as it could
// result in unexpected behaviour.
m_bCanInterrupt = false;
m_needsCleanup = false;
bool commit = false;
bool cancelled = false;
while (!cancelled && m_pathsToScan.size())
{
/*
* A copy of the directory path is used because the path supplied is
* immediately removed from the m_pathsToScan set in DoScan(). If the
* reference points to the entry in the set a null reference error
* occurs.
*/
CStdString directory = *m_pathsToScan.begin();
if (!DoScan(directory))
cancelled = true;
commit = !cancelled;
}
if (commit)
{
g_infoManager.ResetLibraryBools();
if (m_needsCleanup)
{
if (m_handle)
{
m_handle->SetTitle(g_localizeStrings.Get(700));
m_handle->SetText("");
}
m_musicDatabase.CleanupOrphanedItems();
if (m_handle)
m_handle->SetTitle(g_localizeStrings.Get(331));
m_musicDatabase.Compress(false);
}
}
fileCountReader.StopThread();
m_musicDatabase.EmptyCache();
m_musicDatabase.Close();
CLog::Log(LOGDEBUG, "%s - Finished scan", __FUNCTION__);
tick = XbmcThreads::SystemClockMillis() - tick;
CLog::Log(LOGNOTICE, "My Music: Scanning for music info using worker thread, operation took %s", StringUtils::SecondsToTimeString(tick / 1000).c_str());
}
bool bCanceled;
if (m_scanType == 1) // load album info
{
int iCurrentItem = 1;
for (set<CAlbum>::iterator it=m_albumsToScan.begin();it != m_albumsToScan.end();++it)
{
if (m_handle)
{
m_handle->SetText(StringUtils::Join(it->artist, g_advancedSettings.m_musicItemSeparator)+" - "+it->strAlbum);
m_handle->SetPercentage(iCurrentItem++/(float)m_albumsToScan.size());
}
//.........这里部分代码省略.........
示例6: Process
void CEdenVideoArtUpdater::Process()
{
// grab all movies...
CVideoDatabase db;
if (!db.Open())
return;
CFileItemList items;
CGUIDialogExtendedProgressBar* dialog =
(CGUIDialogExtendedProgressBar*)g_windowManager.GetWindow(WINDOW_DIALOG_EXT_PROGRESS);
CGUIDialogProgressBarHandle *handle = dialog->GetHandle(g_localizeStrings.Get(314));
handle->SetTitle(g_localizeStrings.Get(12349));
// movies
db.GetMoviesByWhere("videodb://movies/titles/", CDatabase::Filter(), items);
for (int i = 0; i < items.Size(); i++)
{
CFileItemPtr item = items[i];
handle->SetProgress(i, items.Size());
handle->SetText(StringUtils::Format(g_localizeStrings.Get(12350).c_str(), item->GetLabel().c_str()));
string cachedThumb = GetCachedVideoThumb(*item);
string cachedFanart = GetCachedFanart(*item);
item->SetPath(item->GetVideoInfoTag()->m_strFileNameAndPath);
item->GetVideoInfoTag()->m_fanart.Unpack();
item->GetVideoInfoTag()->m_strPictureURL.Parse();
map<string, string> artwork;
if (!db.GetArtForItem(item->GetVideoInfoTag()->m_iDbId, item->GetVideoInfoTag()->m_type, artwork)
|| (artwork.size() == 1 && artwork.find("thumb") != artwork.end()))
{
CStdString art = CVideoInfoScanner::GetImage(item.get(), true, item->GetVideoInfoTag()->m_basePath != item->GetPath(), "thumb");
std::string type;
if (CacheTexture(art, cachedThumb, item->GetLabel(), type))
artwork.insert(make_pair(type, art));
art = CVideoInfoScanner::GetFanart(item.get(), true);
if (CacheTexture(art, cachedFanart, item->GetLabel()))
artwork.insert(make_pair("fanart", art));
if (artwork.empty())
artwork.insert(make_pair("thumb", ""));
db.SetArtForItem(item->GetVideoInfoTag()->m_iDbId, item->GetVideoInfoTag()->m_type, artwork);
}
}
items.Clear();
// music videos
db.GetMusicVideosNav("videodb://musicvideos/titles/", items, false);
for (int i = 0; i < items.Size(); i++)
{
CFileItemPtr item = items[i];
handle->SetProgress(i, items.Size());
handle->SetText(StringUtils::Format(g_localizeStrings.Get(12350).c_str(), item->GetLabel().c_str()));
string cachedThumb = GetCachedVideoThumb(*item);
string cachedFanart = GetCachedFanart(*item);
item->SetPath(item->GetVideoInfoTag()->m_strFileNameAndPath);
item->GetVideoInfoTag()->m_fanart.Unpack();
item->GetVideoInfoTag()->m_strPictureURL.Parse();
map<string, string> artwork;
if (!db.GetArtForItem(item->GetVideoInfoTag()->m_iDbId, item->GetVideoInfoTag()->m_type, artwork)
|| (artwork.size() == 1 && artwork.find("thumb") != artwork.end()))
{
CStdString art = CVideoInfoScanner::GetImage(item.get(), true, item->GetVideoInfoTag()->m_basePath != item->GetPath(), "thumb");
std::string type;
if (CacheTexture(art, cachedThumb, item->GetLabel(), type))
artwork.insert(make_pair(type, art));
art = CVideoInfoScanner::GetFanart(item.get(), true);
if (CacheTexture(art, cachedFanart, item->GetLabel()))
artwork.insert(make_pair("fanart", art));
if (artwork.empty())
artwork.insert(make_pair("thumb", ""));
db.SetArtForItem(item->GetVideoInfoTag()->m_iDbId, item->GetVideoInfoTag()->m_type, artwork);
}
}
items.Clear();
// tvshows
// count the number of episodes
db.GetTvShowsNav("videodb://tvshows/titles/", items);
for (int i = 0; i < items.Size(); i++)
{
CFileItemPtr item = items[i];
handle->SetText(StringUtils::Format(g_localizeStrings.Get(12350).c_str(), item->GetLabel().c_str()));
string cachedThumb = GetCachedVideoThumb(*item);
string cachedFanart = GetCachedFanart(*item);
item->SetPath(item->GetVideoInfoTag()->m_strPath);
item->GetVideoInfoTag()->m_fanart.Unpack();
item->GetVideoInfoTag()->m_strPictureURL.Parse();
map<string, string> artwork;
if (!db.GetArtForItem(item->GetVideoInfoTag()->m_iDbId, item->GetVideoInfoTag()->m_type, artwork)
|| (artwork.size() == 1 && artwork.find("thumb") != artwork.end()))
//.........这里部分代码省略.........
示例7: AutoconfigureClients
bool CPVRClients::AutoconfigureClients(void)
{
bool bReturn(false);
std::vector<PVR_CLIENT> autoConfigAddons;
PVR_CLIENT addon;
VECADDONS map;
CAddonMgr::GetInstance().GetInstalledAddons(map, ADDON_PVRDLL);
/** get the auto-configurable add-ons */
for (VECADDONS::iterator it = map.begin(); it != map.end(); ++it)
{
if (CAddonMgr::GetInstance().IsAddonDisabled((*it)->ID()))
{
addon = std::dynamic_pointer_cast<CPVRClient>(*it);
if (addon->CanAutoconfigure())
autoConfigAddons.push_back(addon);
}
}
/** no configurable add-ons found */
if (autoConfigAddons.empty())
return bReturn;
/** display a progress bar while trying to auto-configure add-ons */
CGUIDialogExtendedProgressBar *loadingProgressDialog = (CGUIDialogExtendedProgressBar *)g_windowManager.GetWindow(WINDOW_DIALOG_EXT_PROGRESS);
CGUIDialogProgressBarHandle* progressHandle = loadingProgressDialog->GetHandle(g_localizeStrings.Get(19688)); // Scanning for PVR services
progressHandle->SetPercentage(0);
progressHandle->SetText(g_localizeStrings.Get(19688)); //Scanning for PVR services
/** start zeroconf and wait a second to get some responses */
CZeroconfBrowser::GetInstance()->Start();
for (std::vector<PVR_CLIENT>::iterator it = autoConfigAddons.begin(); !bReturn && it != autoConfigAddons.end(); ++it)
(*it)->AutoconfigureRegisterType();
unsigned iIterations(0);
float percentage(0.0f);
float percentageStep(100.0f / PVR_CLIENT_AVAHI_SCAN_ITERATIONS);
progressHandle->SetPercentage(percentage);
/** while no add-ons were configured within 20 iterations */
while (!bReturn && iIterations++ < PVR_CLIENT_AVAHI_SCAN_ITERATIONS)
{
/** check each disabled add-on */
for (std::vector<PVR_CLIENT>::iterator it = autoConfigAddons.begin(); !bReturn && it != autoConfigAddons.end(); ++it)
{
if (addon->Autoconfigure())
{
progressHandle->SetPercentage(100.0f);
progressHandle->MarkFinished();
/** enable the add-on */
CAddonMgr::GetInstance().EnableAddon((*it)->ID());
CSingleLock lock(m_critSection);
m_addons.push_back(*it);
bReturn = true;
}
}
/** wait a while and try again */
if (!bReturn)
{
percentage += percentageStep;
progressHandle->SetPercentage(percentage);
Sleep(PVR_CLIENT_AVAHI_SLEEP_TIME_MS);
}
}
progressHandle->SetPercentage(100.0f);
progressHandle->MarkFinished();
return bReturn;
}
示例8: SearchAndSetChannelIcons
void CPVRChannelGroup::SearchAndSetChannelIcons(bool bUpdateDb /* = false */)
{
std::string iconPath = CSettings::GetInstance().GetString(CSettings::SETTING_PVRMENU_ICONPATH);
if (iconPath.empty())
return;
CPVRDatabase *database = GetPVRDatabase();
if (!database)
return;
/* fetch files in icon path for fast lookup */
CFileItemList fileItemList;
XFILE::CDirectory::GetDirectory(iconPath, fileItemList, ".jpg|.png|.tbn");
if (fileItemList.IsEmpty())
return;
CGUIDialogExtendedProgressBar* dlgProgress = (CGUIDialogExtendedProgressBar*)g_windowManager.GetWindow(WINDOW_DIALOG_EXT_PROGRESS);
CGUIDialogProgressBarHandle* dlgProgressHandle = dlgProgress ? dlgProgress->GetHandle(g_localizeStrings.Get(19287)) : NULL;
CSingleLock lock(m_critSection);
/* create a map for fast lookup of normalized file base name */
std::map<std::string, std::string> fileItemMap;
const VECFILEITEMS &items = fileItemList.GetList();
for(VECFILEITEMS::const_iterator it = items.begin(); it != items.end(); ++it)
{
std::string baseName = URIUtils::GetFileName((*it)->GetPath());
URIUtils::RemoveExtension(baseName);
StringUtils::ToLower(baseName);
fileItemMap.insert(std::make_pair(baseName, (*it)->GetPath()));
}
int channelIndex = 0;
CPVRChannelPtr channel;
for(PVR_CHANNEL_GROUP_MEMBERS::const_iterator it = m_members.begin(); it != m_members.end(); ++it)
{
channel = it->second.channel;
/* update progress dialog */
if (dlgProgressHandle)
{
dlgProgressHandle->SetProgress(channelIndex++, m_members.size());
dlgProgressHandle->SetText(channel->ChannelName());
}
/* skip if an icon is already set and exists */
if (channel->IsIconExists())
continue;
/* reset icon before searching for a new one */
channel->SetIconPath("");
std::string strChannelUid = StringUtils::Format("%08d", channel->UniqueID());
std::string strLegalClientChannelName = CUtil::MakeLegalFileName(channel->ClientChannelName());
StringUtils::ToLower(strLegalClientChannelName);
std::string strLegalChannelName = CUtil::MakeLegalFileName(channel->ChannelName());
StringUtils::ToLower(strLegalChannelName);
std::map<std::string, std::string>::iterator itItem;
if ((itItem = fileItemMap.find(strLegalClientChannelName)) != fileItemMap.end() ||
(itItem = fileItemMap.find(strLegalChannelName)) != fileItemMap.end() ||
(itItem = fileItemMap.find(strChannelUid)) != fileItemMap.end())
{
channel->SetIconPath(itItem->second, g_advancedSettings.m_bPVRAutoScanIconsUserSet);
}
if (bUpdateDb)
channel->Persist();
/* TODO: start channel icon scraper here if nothing was found */
}
if (dlgProgressHandle)
dlgProgressHandle->MarkFinished();
}
示例9: Process
void CMusicInfoScanner::Process()
{
ANNOUNCEMENT::CAnnouncementManager::Get().Announce(ANNOUNCEMENT::AudioLibrary, "xbmc", "OnScanStarted");
try
{
if (m_bClean)
{
CleanDatabase(false);
m_bRunning = false;
return;
}
unsigned int tick = XbmcThreads::SystemClockMillis();
m_musicDatabase.Open();
if (m_showDialog && !CSettings::Get().GetBool("musiclibrary.backgroundupdate"))
{
CGUIDialogExtendedProgressBar* dialog =
(CGUIDialogExtendedProgressBar*)g_windowManager.GetWindow(WINDOW_DIALOG_EXT_PROGRESS);
if (dialog)
m_handle = dialog->GetHandle(g_localizeStrings.Get(314));
}
m_bClean = g_advancedSettings.m_bMusicLibraryCleanOnUpdate;
m_bCanInterrupt = true;
if (m_scanType == 0) // load info from files
{
CLog::Log(LOGDEBUG, "%s - Starting scan", __FUNCTION__);
if (m_handle)
m_handle->SetTitle(g_localizeStrings.Get(505));
// Reset progress vars
m_currentItem=0;
m_itemCount=-1;
// Create the thread to count all files to be scanned
SetPriority( GetMinPriority() );
if (m_handle)
m_fileCountReader.Create();
// Database operations should not be canceled
// using Interupt() while scanning as it could
// result in unexpected behaviour.
m_bCanInterrupt = false;
m_needsCleanup = false;
bool commit = true;
for (std::set<std::string>::const_iterator it = m_pathsToScan.begin(); it != m_pathsToScan.end(); it++)
{
if (!CDirectory::Exists(*it) && !m_bClean)
{
/*
* Note that this will skip scanning (if m_bClean is disabled) if the directory really
* doesn't exist. Since the music scanner is fed with a list of existing paths from the DB
* and cleans out all songs under that path as its first step before re-adding files, if
* the entire source is offline we totally empty the music database in one go.
*/
CLog::Log(LOGWARNING, "%s directory '%s' does not exist - skipping scan.", __FUNCTION__, it->c_str());
m_seenPaths.insert(*it);
continue;
}
else if (!DoScan(*it))
{
commit = false;
break;
}
}
if (commit)
{
g_infoManager.ResetLibraryBools();
if (m_needsCleanup)
{
if (m_handle)
{
m_handle->SetTitle(g_localizeStrings.Get(700));
m_handle->SetText("");
}
m_musicDatabase.CleanupOrphanedItems();
if (m_handle)
m_handle->SetTitle(g_localizeStrings.Get(331));
m_musicDatabase.Compress(false);
}
}
m_fileCountReader.StopThread();
m_musicDatabase.EmptyCache();
tick = XbmcThreads::SystemClockMillis() - tick;
CLog::Log(LOGNOTICE, "My Music: Scanning for music info using worker thread, operation took %s", StringUtils::SecondsToTimeString(tick / 1000).c_str());
//.........这里部分代码省略.........
示例10: DoWork
bool CCDDARipJob::DoWork()
{
CLog::Log(LOGINFO, "Start ripping track %s to %s", m_input.c_str(),
m_output.c_str());
// if we are ripping to a samba share, rip it to hd first and then copy it it the share
CFileItem file(m_output, false);
if (file.IsRemote())
m_output = SetupTempFile();
if (m_output.empty())
{
CLog::Log(LOGERROR, "CCDDARipper: Error opening file");
return false;
}
// init ripper
CFile reader;
CEncoder* encoder = nullptr;
if (!reader.Open(m_input,READ_CACHED) || !(encoder=SetupEncoder(reader)))
{
CLog::Log(LOGERROR, "Error: CCDDARipper::Init failed");
return false;
}
// setup the progress dialog
CGUIDialogExtendedProgressBar* pDlgProgress =
CServiceBroker::GetGUI()->GetWindowManager().GetWindow<CGUIDialogExtendedProgressBar>(WINDOW_DIALOG_EXT_PROGRESS);
CGUIDialogProgressBarHandle* handle = pDlgProgress->GetHandle(g_localizeStrings.Get(605));
int iTrack = atoi(m_input.substr(13, m_input.size() - 13 - 5).c_str());
std::string strLine0 = StringUtils::Format("%02i. %s - %s", iTrack,
m_tag.GetArtistString().c_str(),
m_tag.GetTitle().c_str());
handle->SetText(strLine0);
// start ripping
int percent=0;
int oldpercent=0;
bool cancelled(false);
int result;
while (!cancelled && (result=RipChunk(reader, encoder, percent)) == 0)
{
cancelled = ShouldCancel(percent,100);
if (percent > oldpercent)
{
oldpercent = percent;
handle->SetPercentage(static_cast<float>(percent));
}
}
// close encoder ripper
encoder->CloseEncode();
delete encoder;
reader.Close();
if (file.IsRemote() && !cancelled && result == 2)
{
// copy the ripped track to the share
if (!CFile::Copy(m_output, file.GetPath()))
{
CLog::Log(LOGERROR, "CDDARipper: Error copying file from %s to %s",
m_output.c_str(), file.GetPath().c_str());
CFile::Delete(m_output);
return false;
}
// delete cached file
CFile::Delete(m_output);
}
if (cancelled)
{
CLog::Log(LOGWARNING, "User Cancelled CDDA Rip");
CFile::Delete(m_output);
}
else if (result == 1)
CLog::Log(LOGERROR, "CDDARipper: Error ripping %s", m_input.c_str());
else if (result < 0)
CLog::Log(LOGERROR, "CDDARipper: Error encoding %s", m_input.c_str());
else
{
CLog::Log(LOGINFO, "Finished ripping %s", m_input.c_str());
if (m_eject)
{
CLog::Log(LOGINFO, "Ejecting CD");
g_mediaManager.EjectTray();
}
}
handle->MarkFinished();
return !cancelled && result == 2;
}