Skip to content

Commit

Permalink
added ToggleAddonEnabled to CBuiltins, to enable/disable an add-on (t…
Browse files Browse the repository at this point in the history
…oggle)
  • Loading branch information
opdenkamp committed Sep 30, 2012
1 parent f4d8117 commit 4803228
Showing 1 changed file with 26 additions and 0 deletions.
26 changes: 26 additions & 0 deletions xbmc/interfaces/Builtins.cpp
Expand Up @@ -54,6 +54,7 @@
#include "utils/URIUtils.h"
#include "Util.h"
#include "URL.h"
#include "pvr/PVRManager.h"

#include "filesystem/PluginDirectory.h"
#ifdef HAS_FILESYSTEM_RAR
Expand Down Expand Up @@ -92,6 +93,7 @@
using namespace std;
using namespace XFILE;
using namespace ADDON;
using namespace PVR;

#ifdef HAS_DVD_DRIVE
using namespace MEDIA_DETECT;
Expand Down Expand Up @@ -215,6 +217,7 @@ const BUILT_IN commands[] = {
{ "ToggleDebug", false, "Enables/disables debug mode" },
{ "StartPVRManager", false, "(Re)Starts the PVR manager" },
{ "StopPVRManager", false, "Stops the PVR manager" },
{ "ToggleAddonEnabled", true, "Enables/disables an add-on" },
};

bool CBuiltins::HasCommand(const CStdString& execString)
Expand Down Expand Up @@ -1630,6 +1633,29 @@ int CBuiltins::Execute(const CStdString& execString)
{
g_application.StopPVRManager();
}
else if (execute.Equals("toggleaddonenabled") && params.size() == 1)
{
AddonPtr addon;
if (CAddonMgr::Get().GetAddon(params[0], addon))
{
bool enable = !addon->Enabled();
CLog::Log(LOGDEBUG, "%s - %s add-on '%s'", __FUNCTION__, enable ? "enabling" : "disabling", addon->Name().c_str());

// enable/disable in the addon db
CAddonDatabase database;
database.Open();
database.DisableAddon(addon->ID(), !enable);
database.Close();

// reset pvrmanager
if (addon->Type() == ADDON_PVRDLL && g_PVRManager.IsStarted())
g_PVRManager.Start();
}
else
{
CLog::Log(LOGDEBUG, "%s - add-on '%s' was not found", __FUNCTION__, params[0].c_str());
}
}
else
return -1;
return 0;
Expand Down

0 comments on commit 4803228

Please sign in to comment.