aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlwin Esch <alwin.esch@web.de>2020-06-14 22:41:45 +0200
committerGitHub <noreply@github.com>2020-06-14 22:41:45 +0200
commitf85e6af91134b86a2d0b2fbb5cb3dc04231fde0e (patch)
tree68acfe2796fde22800f2e41aa212e5cc4355e10f
parent06d904b5aab0ede4a777ac644051fc52fd74dc61 (diff)
parent27895ccd6bf83cb402e1dc07b408eed7e141489c (diff)
Merge pull request #18059 from AlwinEsch/fix-pvr
[addons] Reinit binary addon manager when loading a profile; fixes non working pvr addons.
-rw-r--r--xbmc/addons/binary-addons/BinaryAddonManager.h5
-rw-r--r--xbmc/profiles/ProfileManager.cpp3
-rw-r--r--xbmc/pvr/addons/PVRClients.cpp1
3 files changed, 9 insertions, 0 deletions
diff --git a/xbmc/addons/binary-addons/BinaryAddonManager.h b/xbmc/addons/binary-addons/BinaryAddonManager.h
index d271cae401..ca8d520b5b 100644
--- a/xbmc/addons/binary-addons/BinaryAddonManager.h
+++ b/xbmc/addons/binary-addons/BinaryAddonManager.h
@@ -32,6 +32,11 @@ namespace ADDON
CBinaryAddonManager(const CBinaryAddonManager&) = delete;
~CBinaryAddonManager();
+ bool ReInit()
+ {
+ DeInit();
+ return Init();
+ }
bool Init();
void DeInit();
diff --git a/xbmc/profiles/ProfileManager.cpp b/xbmc/profiles/ProfileManager.cpp
index 14fbc37663..29f6ff37b6 100644
--- a/xbmc/profiles/ProfileManager.cpp
+++ b/xbmc/profiles/ProfileManager.cpp
@@ -19,6 +19,7 @@
#include "ServiceBroker.h"
#include "Util.h"
#include "addons/Skin.h"
+#include "addons/binary-addons/BinaryAddonManager.h"
#include "dialogs/GUIDialogKaiToast.h"
#include "dialogs/GUIDialogYesNo.h"
#include "events/EventLog.h"
@@ -374,6 +375,7 @@ void CProfileManager::FinalizeLoadProfile()
PVR::CPVRManager &pvrManager = CServiceBroker::GetPVRManager();
CNetworkBase &networkManager = CServiceBroker::GetNetwork();
ADDON::CAddonMgr &addonManager = CServiceBroker::GetAddonMgr();
+ ADDON::CBinaryAddonManager& binAddonManager = CServiceBroker::GetBinaryAddonManager();
CWeatherManager &weatherManager = CServiceBroker::GetWeatherManager();
CFavouritesService &favouritesManager = CServiceBroker::GetFavouritesService();
PLAYLIST::CPlayListPlayer &playlistManager = CServiceBroker::GetPlaylistPlayer();
@@ -390,6 +392,7 @@ void CProfileManager::FinalizeLoadProfile()
// reload the add-ons, or we will first load all add-ons from the master account without checking disabled status
addonManager.ReInit();
+ binAddonManager.ReInit();
// let CApplication know that we are logging into a new profile
g_application.SetLoggingIn(true);
diff --git a/xbmc/pvr/addons/PVRClients.cpp b/xbmc/pvr/addons/PVRClients.cpp
index 31cf05d859..2c0a0ed9cf 100644
--- a/xbmc/pvr/addons/PVRClients.cpp
+++ b/xbmc/pvr/addons/PVRClients.cpp
@@ -10,6 +10,7 @@
#include "ServiceBroker.h"
#include "addons/binary-addons/BinaryAddonBase.h"
+#include "addons/binary-addons/BinaryAddonManager.h"
#include "guilib/LocalizeStrings.h"
#include "messaging/ApplicationMessenger.h"
#include "pvr/PVREventLogJob.h"