本文整理汇总了C++中CGUIDialogProgressBarHandle::SetPercentage方法的典型用法代码示例。如果您正苦于以下问题:C++ CGUIDialogProgressBarHandle::SetPercentage方法的具体用法?C++ CGUIDialogProgressBarHandle::SetPercentage怎么用?C++ CGUIDialogProgressBarHandle::SetPercentage使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CGUIDialogProgressBarHandle
的用法示例。
在下文中一共展示了CGUIDialogProgressBarHandle::SetPercentage方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: update
void DialogProgressBG::update(int percent, const String& heading, const String& message)
{
DelayedCallGuard dcguard(languageHook);
CGUIDialogProgressBarHandle* pHandle = handle;
if (pHandle == NULL)
throw WindowException("Dialog not created.");
if (percent >= 0 && percent <= 100)
pHandle->SetPercentage((float)percent);
if (!heading.empty())
pHandle->SetTitle(heading);
if (!message.empty())
pHandle->SetText(message);
}
示例2: 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;
}
示例3: 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;
}