-
-
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] Fixes/Improvements for multiple enable PVR client addons #12959
Conversation
…d channel group members, ignore enabled clients not yet ready (async pvr manager startup) instead of purging their data from pvr and epg database. Despite of a performance dip, this was the reason for 'last played channels' disappearing after Kodi restart (because this data is stored only locally and got erased due to the bug fixed by this commit).
…ace method and implementation in CPVRClients.
… pvr component (e.g. PVR_CLIENT -> CPVRClientPtr).
…d buttons 'Add timer' and 'Record' only if the client behind the selected item supports timers, not if *any* client supports timers.
… backend channel numbers' only, if exactly one PVR client is enabled (because the feature cannot work reliably with multiple backends).
cad053e
to
e85f2d1
Compare
@Jalle19 would be cool if you could find some time to review this, thx. |
#empty string with id 36210 | ||
#: system/settings/settings.xml | ||
msgctxt "#36210" | ||
msgid "Open the client priorities dialog, which allows modifying the priority for the enabled PVR clients, for instance to order channels client by client, according to your personal preferences. Lower value means higher priority" |
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.
xbmc/addons/PVRClient.h
Outdated
@@ -847,6 +847,18 @@ namespace PVR | |||
void OnPowerSavingDeactivated(); | |||
|
|||
/*! | |||
* @brief Get the priority of this client. Higher value means lower priority. |
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.
if (client.GetID() == PVR_INVALID_CLIENT_ID) | ||
return false; | ||
|
||
CLog::Log(LOGDEBUG, "PVR - %s - deleting client '%s' from the database", __FUNCTION__, client.ID().c_str()); |
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.
PVR_CLIENT scanClient; | ||
std::vector<PVR_CLIENT> possibleScanClients = CServiceBroker::GetPVRManager().Clients()->GetClientsSupportingChannelScan(); | ||
CPVRClientPtr scanClient; | ||
std::vector<CPVRClientPtr> possibleScanClients = CServiceBroker::GetPVRManager().Clients()->GetClientsSupportingChannelScan(); |
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.
xbmc/pvr/PVRGUIActions.cpp
Outdated
@@ -1502,10 +1502,14 @@ namespace PVR | |||
|
|||
if (!bResetEPGOnly) | |||
{ | |||
pvrDatabase->DeleteChannelGroups(); | |||
pvrDatabase->DeleteClients(); |
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.
@@ -644,6 +676,26 @@ bool CPVRChannelGroup::AddAndUpdateChannels(const CPVRChannelGroup &channels, bo | |||
return bReturn; | |||
} | |||
|
|||
bool CPVRChannelGroup::IsMissingChannelsFromClient(int iClientId) const | |||
{ | |||
for (int iFailedClientID : m_failedClientsForChannels) |
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.
|
||
bool CPVRChannelGroup::IsMissingChannelGroupMembersFromClient(int iClientId) const | ||
{ | ||
for (auto iFailedClientID : m_failedClientsForChannelGroupMembers) |
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.
e85f2d1
to
7e96720
Compare
…enable and customize ordering channels client by client if multiple clients are enabled.
…r ready to use. All methods accessing the addon must be proteced by this\!
7e96720
to
066d4ca
Compare
@Jalle19 I changed most the stuff you requested. Anything else? |
Fixes:
Improvements:
Cosmetics:
All changes have been runtime tested carefully on macOS and Linux, latest Kodi master
@Jalle19 for review?