本文整理汇总了C++中CGUIWindowSlideShow::NumSlides方法的典型用法代码示例。如果您正苦于以下问题:C++ CGUIWindowSlideShow::NumSlides方法的具体用法?C++ CGUIWindowSlideShow::NumSlides怎么用?C++ CGUIWindowSlideShow::NumSlides使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CGUIWindowSlideShow
的用法示例。
在下文中一共展示了CGUIWindowSlideShow::NumSlides方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ShowPicture
bool CGUIWindowPictures::ShowPicture(int iItem, bool startSlideShow)
{
if ( iItem < 0 || iItem >= (int)m_vecItems->Size() ) return false;
CFileItemPtr pItem = m_vecItems->Get(iItem);
CStdString strPicture = pItem->GetPath();
#ifdef HAS_DVD_DRIVE
if (pItem->IsDVD())
return MEDIA_DETECT::CAutorun::PlayDiscAskResume(m_vecItems->Get(iItem)->GetPath());
#endif
if (pItem->m_bIsShareOrDrive)
return false;
CGUIWindowSlideShow *pSlideShow = (CGUIWindowSlideShow *)g_windowManager.GetWindow(WINDOW_SLIDESHOW);
if (!pSlideShow)
return false;
if (g_application.m_pPlayer->IsPlayingVideo())
g_application.StopPlaying();
pSlideShow->Reset();
for (int i = 0; i < (int)m_vecItems->Size();++i)
{
CFileItemPtr pItem = m_vecItems->Get(i);
if (!pItem->m_bIsFolder && !(URIUtils::IsRAR(pItem->GetPath()) ||
URIUtils::IsZIP(pItem->GetPath())) && (pItem->IsPicture() || (
CSettings::Get().GetBool("pictures.showvideos") &&
pItem->IsVideo())))
{
pSlideShow->Add(pItem.get());
}
}
if (pSlideShow->NumSlides() == 0)
return false;
pSlideShow->Select(strPicture);
if (startSlideShow)
pSlideShow->StartSlideShow();
else
{
CVariant param;
param["player"]["speed"] = 1;
param["player"]["playerid"] = PLAYLIST_PICTURE;
ANNOUNCEMENT::CAnnouncementManager::Get().Announce(ANNOUNCEMENT::Player, "xbmc", "OnPlay", pSlideShow->GetCurrentSlide(), param);
}
m_slideShowStarted = true;
g_windowManager.ActivateWindow(WINDOW_SLIDESHOW);
return true;
}
示例2: GetPropertyValue
JSONRPC_STATUS CPlaylistOperations::GetPropertyValue(int playlist, const CStdString &property, CVariant &result)
{
if (property.Equals("type"))
{
switch (playlist)
{
case PLAYLIST_MUSIC:
result = "audio";
break;
case PLAYLIST_VIDEO:
result = "video";
break;
case PLAYLIST_PICTURE:
result = "pictures";
break;
default:
result = "unknown";
break;
}
}
else if (property.Equals("size"))
{
CFileItemList list;
CGUIWindowSlideShow *slideshow = NULL;
switch (playlist)
{
case PLAYLIST_MUSIC:
case PLAYLIST_VIDEO:
CApplicationMessenger::Get().PlayListPlayerGetItems(playlist, list);
result = list.Size();
break;
case PLAYLIST_PICTURE:
slideshow = (CGUIWindowSlideShow*)g_windowManager.GetWindow(WINDOW_SLIDESHOW);
if (slideshow)
result = slideshow->NumSlides();
else
result = 0;
break;
default:
result = 0;
break;
}
}
else
return InvalidParams;
return OK;
}
示例3: GetPropertyValue
JSONRPC_STATUS CPlaylistOperations::GetPropertyValue(int playlist, const std::string &property, CVariant &result)
{
if (property == "type")
{
switch (playlist)
{
case PLAYLIST_MUSIC:
result = "audio";
break;
case PLAYLIST_VIDEO:
result = "video";
break;
case PLAYLIST_PICTURE:
result = "pictures";
break;
default:
result = "unknown";
break;
}
}
else if (property == "size")
{
CFileItemList list;
CGUIWindowSlideShow *slideshow = NULL;
switch (playlist)
{
case PLAYLIST_MUSIC:
case PLAYLIST_VIDEO:
CApplicationMessenger::GetInstance().SendMsg(TMSG_PLAYLISTPLAYER_GET_ITEMS, playlist, -1, static_cast<void*>(&list));
result = list.Size();
break;
case PLAYLIST_PICTURE:
slideshow = (CGUIWindowSlideShow*)g_windowManager.GetWindow(WINDOW_SLIDESHOW);
if (slideshow)
result = slideshow->NumSlides();
else
result = 0;
break;
default:
result = 0;
break;
}
}
else
return InvalidParams;
return OK;
}
示例4: ShowPicture
bool CGUIWindowPictures::ShowPicture(int iItem, bool startSlideShow)
{
if ( iItem < 0 || iItem >= (int)m_vecItems->Size() ) return false;
CFileItemPtr pItem = m_vecItems->Get(iItem);
CStdString strPicture = pItem->GetPath();
#ifdef HAS_DVD_DRIVE
if (pItem->IsDVD())
return MEDIA_DETECT::CAutorun::PlayDiscAskResume(m_vecItems->Get(iItem)->GetPath());
#endif
if (pItem->m_bIsShareOrDrive)
return false;
CGUIWindowSlideShow *pSlideShow = (CGUIWindowSlideShow *)g_windowManager.GetWindow(WINDOW_SLIDESHOW);
if (!pSlideShow)
return false;
if (g_application.IsPlayingVideo())
g_application.StopPlaying();
pSlideShow->Reset();
for (int i = 0; i < (int)m_vecItems->Size();++i)
{
CFileItemPtr pItem = m_vecItems->Get(i);
if (!pItem->m_bIsFolder && !(URIUtils::IsRAR(pItem->GetPath()) ||
URIUtils::IsZIP(pItem->GetPath())) && (pItem->IsPicture() || (
g_guiSettings.GetBool("pictures.showvideos") &&
pItem->IsVideo())))
{
pSlideShow->Add(pItem.get());
}
}
if (pSlideShow->NumSlides() == 0)
return false;
pSlideShow->Select(strPicture);
if (startSlideShow)
pSlideShow->StartSlideShow(false);
m_slideShowStarted = true;
g_windowManager.ActivateWindow(WINDOW_SLIDESHOW);
return true;
}
示例5: OnShowPictureRecursive
void CGUIWindowPictures::OnShowPictureRecursive(const CStdString& strPath)
{
CGUIWindowSlideShow *pSlideShow = (CGUIWindowSlideShow *)g_windowManager.GetWindow(WINDOW_SLIDESHOW);
if (pSlideShow)
{
// stop any video
if (g_application.m_pPlayer->IsPlayingVideo())
g_application.StopPlaying();
SortDescription sorting = m_guiState->GetSortMethod();
pSlideShow->AddFromPath(strPath, true,
sorting.sortBy, sorting.sortOrder, sorting.sortAttributes);
if (pSlideShow->NumSlides())
{
m_slideShowStarted = true;
g_windowManager.ActivateWindow(WINDOW_SLIDESHOW);
}
}
}
示例6: OnShowPictureRecursive
void CGUIWindowPictures::OnShowPictureRecursive(const std::string& strPath)
{
CGUIWindowSlideShow *pSlideShow = CServiceBroker::GetGUI()->GetWindowManager().GetWindow<CGUIWindowSlideShow>(WINDOW_SLIDESHOW);
if (pSlideShow)
{
// stop any video
if (g_application.GetAppPlayer().IsPlayingVideo())
g_application.StopPlaying();
SortDescription sorting = m_guiState->GetSortMethod();
pSlideShow->AddFromPath(strPath, true,
sorting.sortBy, sorting.sortOrder, sorting.sortAttributes);
if (pSlideShow->NumSlides())
{
m_slideShowStarted = true;
CServiceBroker::GetGUI()->GetWindowManager().ActivateWindow(WINDOW_SLIDESHOW);
}
}
}
示例7: StartSlideshow
JSON_STATUS CPlayerOperations::StartSlideshow()
{
CGUIWindowSlideShow *slideshow = (CGUIWindowSlideShow*)g_windowManager.GetWindow(WINDOW_SLIDESHOW);
if (!slideshow && slideshow->NumSlides() <= 0)
return FailedToExecute;
if (g_application.IsPlayingVideo())
g_application.StopPlaying();
g_graphicsContext.Lock();
g_application.WakeUpScreenSaverAndDPMS();
slideshow->StartSlideShow();
if (g_windowManager.GetActiveWindow() != WINDOW_SLIDESHOW)
g_windowManager.ActivateWindow(WINDOW_SLIDESHOW);
g_graphicsContext.Unlock();
return ACK;
}
示例8: LoadPlayList
void CGUIWindowPictures::LoadPlayList(const CStdString& strPlayList)
{
CLog::Log(LOGDEBUG,"CGUIWindowPictures::LoadPlayList()... converting playlist into slideshow: %s", strPlayList.c_str());
auto_ptr<CPlayList> pPlayList (CPlayListFactory::Create(strPlayList));
if ( NULL != pPlayList.get())
{
if (!pPlayList->Load(strPlayList))
{
CGUIDialogOK::ShowAndGetInput(6, 0, 477, 0);
return ; //hmmm unable to load playlist?
}
}
CPlayList playlist = *pPlayList;
if (playlist.size() > 0)
{
// set up slideshow
CGUIWindowSlideShow *pSlideShow = (CGUIWindowSlideShow *)g_windowManager.GetWindow(WINDOW_SLIDESHOW);
if (!pSlideShow)
return;
if (g_application.m_pPlayer->IsPlayingVideo())
g_application.StopPlaying();
// convert playlist items into slideshow items
pSlideShow->Reset();
for (int i = 0; i < (int)playlist.size(); ++i)
{
CFileItemPtr pItem = playlist[i];
//CLog::Log(LOGDEBUG,"-- playlist item: %s", pItem->GetPath().c_str());
if (pItem->IsPicture() && !(pItem->IsZIP() || pItem->IsRAR() || pItem->IsCBZ() || pItem->IsCBR()))
pSlideShow->Add(pItem.get());
}
// start slideshow if there are items
pSlideShow->StartSlideShow();
if (pSlideShow->NumSlides())
g_windowManager.ActivateWindow(WINDOW_SLIDESHOW);
}
}
示例9: LoadPlayList
void CGUIWindowPictures::LoadPlayList(const std::string& strPlayList)
{
CLog::Log(LOGDEBUG,"CGUIWindowPictures::LoadPlayList()... converting playlist into slideshow: %s", strPlayList.c_str());
std::unique_ptr<CPlayList> pPlayList (CPlayListFactory::Create(strPlayList));
if ( NULL != pPlayList.get())
{
if (!pPlayList->Load(strPlayList))
{
HELPERS::ShowOKDialogText(CVariant{6}, CVariant{477});
return ; //hmmm unable to load playlist?
}
}
CPlayList playlist = *pPlayList;
if (playlist.size() > 0)
{
// set up slideshow
CGUIWindowSlideShow *pSlideShow = CServiceBroker::GetGUI()->GetWindowManager().GetWindow<CGUIWindowSlideShow>(WINDOW_SLIDESHOW);
if (!pSlideShow)
return;
if (g_application.GetAppPlayer().IsPlayingVideo())
g_application.StopPlaying();
// convert playlist items into slideshow items
pSlideShow->Reset();
for (int i = 0; i < (int)playlist.size(); ++i)
{
CFileItemPtr pItem = playlist[i];
//CLog::Log(LOGDEBUG,"-- playlist item: %s", pItem->GetPath().c_str());
if (pItem->IsPicture() && !(pItem->IsZIP() || pItem->IsRAR() || pItem->IsCBZ() || pItem->IsCBR()))
pSlideShow->Add(pItem.get());
}
// start slideshow if there are items
pSlideShow->StartSlideShow();
if (pSlideShow->NumSlides())
CServiceBroker::GetGUI()->GetWindowManager().ActivateWindow(WINDOW_SLIDESHOW);
}
}
示例10: GetPropertyValue
//.........这里部分代码省略.........
}
case Picture:
MillisecondsToTimeObject(0, result);
break;
default:
return FailedToExecute;
}
}
else if (property.Equals("percentage"))
{
CGUIWindowSlideShow *slideshow = NULL;
switch (player)
{
case Video:
case Audio:
{
if (!IsPVRChannel())
result = g_application.GetPercentage();
else
{
EPG::CEpgInfoTag epg;
if (GetCurrentEpg(epg))
result = epg.ProgressPercentage();
else
result = 0;
}
break;
}
case Picture:
slideshow = (CGUIWindowSlideShow*)g_windowManager.GetWindow(WINDOW_SLIDESHOW);
if (slideshow && slideshow->NumSlides() > 0)
result = (double)slideshow->CurrentSlide() / slideshow->NumSlides();
else
result = 0.0;
break;
default:
return FailedToExecute;
}
}
else if (property.Equals("totaltime"))
{
switch (player)
{
case Video:
case Audio:
{
int ms = 0;
if (!IsPVRChannel())
ms = (int)(g_application.GetTotalTime() * 1000.0);
else
{
EPG::CEpgInfoTag epg;
if (GetCurrentEpg(epg))
ms = epg.GetDuration() * 1000;
}
MillisecondsToTimeObject(ms, result);
break;
}
case Picture:
MillisecondsToTimeObject(0, result);
示例11: lock
/*----------------------------------------------------------------------
| CUPnPRenderer::UpdateState
+---------------------------------------------------------------------*/
void
CUPnPRenderer::UpdateState()
{
NPT_AutoLock lock(m_state);
PLT_Service *avt;
if (NPT_FAILED(FindServiceByType("urn:schemas-upnp-org:service:AVTransport:1", avt)))
return;
/* don't update state while transitioning */
NPT_String state;
avt->GetStateVariableValue("TransportState", state);
if(state == "TRANSITIONING")
return;
avt->SetStateVariable("TransportStatus", "OK");
if (g_application.m_pPlayer->IsPlaying() || g_application.m_pPlayer->IsPausedPlayback()) {
avt->SetStateVariable("NumberOfTracks", "1");
avt->SetStateVariable("CurrentTrack", "1");
std::string buffer = g_infoManager.GetCurrentPlayTime(TIME_FORMAT_HH_MM_SS);
avt->SetStateVariable("RelativeTimePosition", buffer.c_str());
avt->SetStateVariable("AbsoluteTimePosition", buffer.c_str());
buffer = g_infoManager.GetDuration(TIME_FORMAT_HH_MM_SS);
if (buffer.length() > 0) {
avt->SetStateVariable("CurrentTrackDuration", buffer.c_str());
avt->SetStateVariable("CurrentMediaDuration", buffer.c_str());
} else {
avt->SetStateVariable("CurrentTrackDuration", "00:00:00");
avt->SetStateVariable("CurrentMediaDuration", "00:00:00");
}
} else if (g_windowManager.GetActiveWindow() == WINDOW_SLIDESHOW) {
avt->SetStateVariable("TransportState", "PLAYING");
avt->SetStateVariable("AVTransportURI" , g_infoManager.GetPictureLabel(SLIDE_FILE_PATH).c_str());
avt->SetStateVariable("CurrentTrackURI", g_infoManager.GetPictureLabel(SLIDE_FILE_PATH).c_str());
avt->SetStateVariable("TransportPlaySpeed", "1");
CGUIWindowSlideShow *slideshow = g_windowManager.GetWindow<CGUIWindowSlideShow>(WINDOW_SLIDESHOW);
if (slideshow)
{
std::string index;
index = StringUtils::Format("%d", slideshow->NumSlides());
avt->SetStateVariable("NumberOfTracks", index.c_str());
index = StringUtils::Format("%d", slideshow->CurrentSlide());
avt->SetStateVariable("CurrentTrack", index.c_str());
}
avt->SetStateVariable("CurrentTrackMetadata", "");
avt->SetStateVariable("AVTransportURIMetaData", "");
} else {
avt->SetStateVariable("TransportState", "STOPPED");
avt->SetStateVariable("TransportPlaySpeed", "1");
avt->SetStateVariable("NumberOfTracks", "0");
avt->SetStateVariable("CurrentTrack", "0");
avt->SetStateVariable("RelativeTimePosition", "00:00:00");
avt->SetStateVariable("AbsoluteTimePosition", "00:00:00");
avt->SetStateVariable("CurrentTrackDuration", "00:00:00");
avt->SetStateVariable("CurrentMediaDuration", "00:00:00");
avt->SetStateVariable("NextAVTransportURI", "");
avt->SetStateVariable("NextAVTransportURIMetaData", "");
}
}
示例12: GetPropertyValue
//.........这里部分代码省略.........
}
case Picture:
MillisecondsToTimeObject(0, result);
break;
default:
return FailedToExecute;
}
}
else if (property == "percentage")
{
CGUIWindowSlideShow *slideshow = NULL;
switch (player)
{
case Video:
case Audio:
{
if (!IsPVRChannel())
result = g_application.GetPercentage();
else
{
EPG::CEpgInfoTagPtr epg(GetCurrentEpg());
if (epg)
result = epg->ProgressPercentage();
else
result = 0;
}
break;
}
case Picture:
slideshow = (CGUIWindowSlideShow*)g_windowManager.GetWindow(WINDOW_SLIDESHOW);
if (slideshow && slideshow->NumSlides() > 0)
result = (double)slideshow->CurrentSlide() / slideshow->NumSlides();
else
result = 0.0;
break;
default:
return FailedToExecute;
}
}
else if (property == "totaltime")
{
switch (player)
{
case Video:
case Audio:
{
int ms = 0;
if (!IsPVRChannel())
ms = (int)(g_application.GetTotalTime() * 1000.0);
else
{
EPG::CEpgInfoTagPtr epg(GetCurrentEpg());
if (epg)
ms = epg->GetDuration() * 1000;
}
MillisecondsToTimeObject(ms, result);
break;
}
case Picture:
MillisecondsToTimeObject(0, result);
示例13: GetLabel
bool CPicturesGUIInfo::GetLabel(std::string& value, const CFileItem *item, int contextWindow, const CGUIInfo &info, std::string *fallback) const
{
///////////////////////////////////////////////////////////////////////////////////////////////
// LISTITEM_* / SLIDESHOW_* (values directly supported by PictureInfoTag)
///////////////////////////////////////////////////////////////////////////////////////////////
if (item->IsPicture() && info.m_info >= LISTITEM_PICTURE_START && info.m_info <= LISTITEM_PICTURE_END)
{
const auto& it = listitem2slideshow_map.find(info.m_info);
if (it != listitem2slideshow_map.end())
{
value = item->GetPictureInfoTag()->GetInfo(it->second);
return true;
}
else
{
CLog::Log(LOGERROR, "CPicturesGUIInfo::GetLabel - cannot map LISTITEM (%d) to SLIDESHOW label!", info.m_info);
return false;
}
}
else if (m_currentSlide && info.m_info >= SLIDESHOW_LABELS_START && info.m_info <= SLIDESHOW_LABELS_END)
{
value = m_currentSlide->GetPictureInfoTag()->GetInfo(info.m_info);
return true;
}
if (item->IsPicture())
{
/////////////////////////////////////////////////////////////////////////////////////////////////
// LISTITEM_*
/////////////////////////////////////////////////////////////////////////////////////////////////
switch (info.m_info)
{
case LISTITEM_PICTURE_PATH:
{
if (!item->IsZIP() || item->IsRAR() || item->IsCBZ() || item->IsCBR())
{
value = item->GetPath();
return true;
}
break;
}
}
}
if (item->HasPictureInfoTag())
{
switch (info.m_info)
{
///////////////////////////////////////////////////////////////////////////////////////////////
// SLIDESHOW_* (values not directly supported by PictureInfoTag)
///////////////////////////////////////////////////////////////////////////////////////////////
case SLIDESHOW_FILE_NAME:
{
value = URIUtils::GetFileName(item->GetPath());
return true;
}
case SLIDESHOW_FILE_PATH:
{
const std::string path = URIUtils::GetDirectory(item->GetPath());
value = CURL(path).GetWithoutUserDetails();
return true;
}
case SLIDESHOW_FILE_SIZE:
{
if (!item->m_bIsFolder || item->m_dwSize)
{
value = StringUtils::SizeToString(item->m_dwSize);
return true;
}
break;
}
case SLIDESHOW_FILE_DATE:
{
if (item->m_dateTime.IsValid())
{
value = item->m_dateTime.GetAsLocalizedDate();
return true;
}
break;
}
}
}
switch (info.m_info)
{
///////////////////////////////////////////////////////////////////////////////////////////////
// SLIDESHOW_*
///////////////////////////////////////////////////////////////////////////////////////////////
case SLIDESHOW_INDEX:
{
CGUIWindowSlideShow *slideshow = CServiceBroker::GetGUI()->GetWindowManager().GetWindow<CGUIWindowSlideShow>(WINDOW_SLIDESHOW);
if (slideshow && slideshow->NumSlides())
{
value = StringUtils::Format("%d/%d", slideshow->CurrentSlide(), slideshow->NumSlides());
return true;
}
break;
}
}
//.........这里部分代码省略.........