-
-
Notifications
You must be signed in to change notification settings - Fork 6.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[pvr] Rewrite of PVR window integration #4753
Conversation
skin changes look ok to me. |
iWindow != WINDOW_PVR_TIMERS || | ||
iWindow != WINDOW_PVR_SEARCH || | ||
(iWindow == WINDOW_PVR_RECORDINGS && StringUtils::StartsWith(m_vecItems->GetPath(), "pvr://recordings/"))) | ||
m_history.AddPath(m_vecItems->GetPath(), m_strFilterPath); |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
@ronie thanks for reviewing the confluence part, removed the include and unused language keys. |
i've reviewed the first commit, but don't have time to review the rest right now. in general: great work, but try to split the changes in smaller commits instead of a huge one next time, since this makes it nearly impossible to review. |
thanks so far .. this was a rework of my old PR and i'm lazy to split things up. |
@opdenkamp i've now added the unique window ids (WINDOW_TV_CHANNELS, WINDOW_RADIO_CHANNELS) + action mappings (tvchannels, radiochannels) for each type of pvr window. |
CPVRChannelGroupPtr m_selectedGroup; | ||
bool m_bShowHiddenChannels; | ||
bool m_bRadio; | ||
bool m_bShowHiddenChannels = false; |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
@opdenkamp i've done most of the stuff you chalked up. would be nice if you take a look at the rest of this PR, so i can rebase against master |
@opdenkamp done, let me know if i could start a rebase. |
@@ -421,8 +419,11 @@ bool CPVRTimers::GetDirectory(const CStdString& strPath, CFileItemList &items) c | |||
for (vector<CPVRTimerInfoTagPtr>::const_iterator timerIt = it->second->begin(); timerIt != it->second->end(); timerIt++) | |||
{ | |||
CPVRTimerInfoTagPtr current = *timerIt; | |||
item.reset(new CFileItem(*current)); | |||
items.Add(item); | |||
if(bRadio == current->m_bIsRadio) |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
Apart from the minor stuff I suggested I believe this is okay, like others have said it's so big that it's hard to get a grip of what's changed or not (especially since some files show as completely removed and completely added respectively). I say we get this in sooner rather than later and fix whatever issues crop up after that as we go. We desperately need a more solid codebase to work with in this area, it's hard to fix bugs and change behavior without it. |
Righto, been long enough. @xhaggi please create a new branch, squash in fixes where appropriate, rebase to master, PR and jenkins build, then hit the button. @opdenkamp if you do have time to do any further review, this branch will remain available - anything you find can always be fixed in master - no big deal. |
I've talked to @xhaggi on irc, will review the rest this week end. Little patience please. |
Much appreciated. |
if (pWindow) | ||
pWindow->SetInvalid(); | ||
/* make sure the pvr windows are updated */ | ||
g_PVRManager.SetWindowsInvalid(); |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
@@ -1581,3 +1622,14 @@ bool CPVRManager::CreateChannelEpgs(void) | |||
m_bEpgsCreated = m_channelGroups->CreateChannelEpgs(); | |||
return m_bEpgsCreated; | |||
} | |||
|
|||
void CPVRManager::SetWindowsInvalid(void) |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
right, for as far as it is reviewable like this, it looks okay. let's do the magic numbers later and get this rebased and squashed. could you try removing the hack from dvdplayer that i commented about, and check if it selects the correct channel that you're playing in the window. would be nice if that one could go. other than that, press the button. |
@opdenkamp thanks for your time ;) .. i've removed the dvd/omxplayer hack, sqashed and rebased everything. jenkins build this please |
[pvr] Rewrite of PVR window integration
As pointed out on IRC i'm working on a rewrite of the current PVR window integration. I've refactored all "sub windows"
(channels, guide, recordings, timers, seach) out of CGUIWindowPVR to be normal windows which inherit from a CGUIWindowPVRBase class
(same it is done on other parts of XBMC). Each window has its own new window id depends on the type tv or radio (WINDOW_TV_CHANNELS, WINDOW_RADIO_CHANNELS, WINDOW_TV_GUIDE etc.)
and is mapped to an action command (TVChannels, RadioChannels, TVGuide etc.) within the CButtonTranslator. You could activate such a window by calling
ActivateWindow(TVGuide)
orActivateWindow(RadioGuide)
.I also changed the implementation of views to be dynamic such as the video views are, except the guide views which need static ID refs (10 = epggrid, 11 = now, 12 = next, 13 = channel epg).
But the skinners will have control over which views are used by adding them to the
<views>
node. So now it's possible to add different views for channel list,recordings etc. or for example only provide the guide grid view for the guide window by adding the ID 11 to
<views>
only.There are several other changes, so here is complete overview:
ActivateWindow(TVGuide)
instead ofActivateWindowAndFocus(MyPVR, 31,0, 10,0)
<onclick>ActivateWindow(TVGuide)</onclick>
is used.It would be nice to get some feedback especially from @jmarshallnz for the gui part, @opdenkamp and @Jalle19 for the PVR related parts and @ronie for the changes I made to confluence.