Skip to content
Permalink
Browse files

Bump nightly build

  • Loading branch information...
StormTrooper committed Mar 11, 2019
1 parent c52807d commit ff869d812b405258c7733c7a747593286517686e
@@ -7,5 +7,5 @@ Description: Media Center debug package for OSMC
Architecture: armhf
Installed-Size: 32203
Package: rbp1-mediacenter-debug-osmc
Version: 17.8-430
Version: 17.8-432
Depends: rbp1-mediacenter-osmc (=16.8-144)
@@ -1,5 +1,5 @@
Origin: OSMC
Version: 17.8-431
Version: 17.8-432
Section: video
Essential: No
Priority: required
@@ -0,0 +1,66 @@
From 6c187f8aadc1606253327a686e91ddb17bb33654 Mon Sep 17 00:00:00 2001
From: Kai Sommerfeld <kai.sommerfeld@gmx.com>
Date: Fri, 8 Mar 2019 11:36:33 +0100
Subject: [PATCH] [PVR] Speedup first open of Guide window.

---
xbmc/pvr/windows/GUIWindowPVRGuide.cpp | 26 +++++++++++++++++++++++---
xbmc/pvr/windows/GUIWindowPVRGuide.h | 1 +
2 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/xbmc/pvr/windows/GUIWindowPVRGuide.cpp b/xbmc/pvr/windows/GUIWindowPVRGuide.cpp
index 8bb36abccabf..e0ac55de5586 100644
--- a/xbmc/pvr/windows/GUIWindowPVRGuide.cpp
+++ b/xbmc/pvr/windows/GUIWindowPVRGuide.cpp
@@ -34,7 +34,8 @@ using namespace PVR;

CGUIWindowPVRGuideBase::CGUIWindowPVRGuideBase(bool bRadio, int id, const std::string &xmlFile) :
CGUIWindowPVRBase(bRadio, id, xmlFile),
- m_bChannelSelectionRestored(false)
+ m_bChannelSelectionRestored(false),
+ m_bFirstOpen(true)
{
m_bRefreshTimelineItems = false;
m_bSyncRefreshTimelineItems = false;
@@ -616,8 +617,27 @@ bool CGUIWindowPVRGuideBase::RefreshTimelineItems()

std::unique_ptr<CFileItemList> timeline(new CFileItemList);

- // can be very expensive. never call with lock acquired.
- group->GetEPGAll(*timeline, true);
+ if (m_bFirstOpen)
+ {
+ m_bFirstOpen = false;
+
+ // very first open of the window. come up with some data very fast...
+ const std::vector<PVRChannelGroupMember> groupMembers = group->GetMembers();
+ for (const auto& groupMember : groupMembers)
+ {
+ // fake a channel without epg
+ const std::shared_ptr<CPVREpgInfoTag> gapTag = std::make_shared<CPVREpgInfoTag>(groupMember.channel);
+ timeline->Add(std::make_shared<CFileItem>(gapTag));
+ }
+
+ // next, fetch actual data.
+ m_bRefreshTimelineItems = true;
+ }
+ else
+ {
+ // can be very expensive. never call with lock acquired.
+ group->GetEPGAll(*timeline, true);
+ }

CDateTime startDate(group->GetFirstEPGDate());
CDateTime endDate(group->GetLastEPGDate());
diff --git a/xbmc/pvr/windows/GUIWindowPVRGuide.h b/xbmc/pvr/windows/GUIWindowPVRGuide.h
index c194b661f091..1890638bb54c 100644
--- a/xbmc/pvr/windows/GUIWindowPVRGuide.h
+++ b/xbmc/pvr/windows/GUIWindowPVRGuide.h
@@ -78,6 +78,7 @@ namespace PVR
std::unique_ptr<CFileItemList> m_newTimeline;

bool m_bChannelSelectionRestored;
+ std::atomic_bool m_bFirstOpen;
};

class CGUIWindowPVRTVGuide : public CGUIWindowPVRGuideBase

0 comments on commit ff869d8

Please sign in to comment.
You can’t perform that action at this time.