kodi: update to kodi-15.0-beta1-7dacc6e

This commit is contained in:
Stefan Saraev
2015-04-26 16:25:11 +03:00
parent 906b50301c
commit 9beeeebd4a
8 changed files with 125 additions and 1131 deletions

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="kodi-theme-Confluence"
PKG_VERSION="15.0-beta1-fea3e6c"
PKG_VERSION="15.0-beta1-7dacc6e"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="kodi"
PKG_VERSION="15.0-beta1-fea3e6c"
PKG_VERSION="15.0-beta1-7dacc6e"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -1,31 +1,35 @@
From c39ded1793ba6839bc53cd9a28956d8cc8630c82 Mon Sep 17 00:00:00 2001
From fb58bfbb6a87666d35fde23ff08cf9a47071e188 Mon Sep 17 00:00:00 2001
From: Stefan Saraev <stefan@saraev.ca>
Date: Mon, 2 Mar 2015 23:50:40 +0200
Subject: [PATCH 05/12] make binary addons executable
add executable mode to all files in addon's bin folder
---
xbmc/addons/AddonInstaller.cpp | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/xbmc/addons/AddonInstaller.cpp b/xbmc/addons/AddonInstaller.cpp
index 2af33a3..b8ec673 100644
--- a/xbmc/addons/AddonInstaller.cpp
+++ b/xbmc/addons/AddonInstaller.cpp
@@ -40,6 +40,9 @@
#include "dialogs/GUIDialogOK.h"
#include "dialogs/GUIDialogProgress.h"
#include "URL.h"
credits to vpeter4 for the patch
---
xbmc/addons/Addon.cpp | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/xbmc/addons/Addon.cpp b/xbmc/addons/Addon.cpp
index bf5c584..03325dd 100644
--- a/xbmc/addons/Addon.cpp
+++ b/xbmc/addons/Addon.cpp
@@ -44,6 +44,10 @@
#include <string.h>
#include <ostream>
+#include <iostream>
+#include <dirent.h>
+#include <sys/stat.h>
+
using XFILE::CDirectory;
using XFILE::CFile;
using namespace std;
@@ -674,6 +678,28 @@ void OnPostInstall(const AddonPtr& addon, bool update, bool modal)
if (CAddonMgr::Get().GetAddon(addon->ID(), localAddon, ADDON_CONTEXT_ITEM))
CContextMenuManager::Get().Register(std::static_pointer_cast<CContextItemAddon>(localAddon));
#include <functional>
@@ -869,6 +872,26 @@ bool CAddonInstallJob::Install(const std::string &installFrom, const AddonPtr& r
void CAddonInstallJob::OnPostInstall(bool reloadAddon)
{
+ // OE: make binary addons executable, creddits to vpeter4
+ std::string addonDirPath;
+ std::string chmodFilePath;
+ DIR *addonsDir;
@@ -33,7 +37,7 @@ index 2af33a3..b8ec673 100644
+ struct stat fileStat;
+ int statRet;
+
+ addonDirPath = "/storage/.kodi/addons/" + m_addon->ID() + "/bin/";
+ addonDirPath = "/storage/.kodi/addons/" + addon->ID() + "/bin/";
+ if ((addonsDir = opendir(addonDirPath.c_str())) != NULL)
+ {
+ while ((fileDirent = readdir(addonsDir)) != NULL)
@@ -45,10 +49,11 @@ index 2af33a3..b8ec673 100644
+ }
+ closedir(addonsDir);
+ }
+ // OE
+
if (!IsModal() && CSettings::Get().GetBool("general.addonnotifications"))
CGUIDialogKaiToast::QueueNotification(m_addon->Icon(), m_addon->Name(),
g_localizeStrings.Get(m_update ? 24065 : 24064),
addon->OnPostInstall(update, modal);
}
--
2.1.4

View File

@@ -1,86 +1,95 @@
From 0a2ae6dd9fe63c713e1ea2336ca3263c00fa9bfc Mon Sep 17 00:00:00 2001
From ba906db17bdb834aedf88ca35b1ce30ea2d2bbd4 Mon Sep 17 00:00:00 2001
From: Stefan Saraev <stefan@saraev.ca>
Date: Fri, 8 Aug 2014 18:22:44 +0300
Date: Fri, 24 Apr 2015 19:45:20 +0300
Subject: [PATCH 09/12] use a wrapper to setup systemd services
---
xbmc/addons/Service.cpp | 22 ++++++++++++++++++++++
xbmc/addons/Service.h | 1 +
2 files changed, 23 insertions(+)
xbmc/addons/Addon.cpp | 30 ++++++++++++++++++++++++++++++
xbmc/addons/Addon.h | 2 ++
2 files changed, 32 insertions(+)
diff --git a/xbmc/addons/Service.cpp b/xbmc/addons/Service.cpp
index 2fc7670..9126ce7 100644
--- a/xbmc/addons/Service.cpp
+++ b/xbmc/addons/Service.cpp
@@ -53,6 +53,10 @@ AddonPtr CService::Clone() const
bool CService::Start()
{
bool ret = true;
+
+ // systemctl enable but dont force start
+ CallOEWrapper(ID(), false, true);
+
switch (m_type)
{
#ifdef HAS_PYTHON
@@ -113,13 +117,24 @@ void CService::BuildServiceType()
}
diff --git a/xbmc/addons/Addon.cpp b/xbmc/addons/Addon.cpp
index 03325dd..b2bfafa 100644
--- a/xbmc/addons/Addon.cpp
+++ b/xbmc/addons/Addon.cpp
@@ -626,6 +626,13 @@ AddonVersion CAddon::GetDependencyVersion(const std::string &dependencyID) const
return AddonVersion("0.0.0");
}
+void CService::CallOEWrapper(const std::string& ID, bool disable, bool check)
+void CallOEWrapper(const std::string& ID, bool disable)
+{
+ char cmd[255];
+ snprintf(cmd, sizeof(cmd), "/usr/lib/openelec/systemd-addon-wrapper %s %d %d", ID.c_str(), disable, check);
+ snprintf(cmd, sizeof(cmd), "/usr/lib/openelec/systemd-addon-wrapper %s %d %d", ID.c_str(), disable);
+ system(cmd);
+}
+
void CService::OnDisabled()
void OnEnabled(const std::string& id)
{
Stop();
+ // systemctl stop & disable on addon disable
+ CallOEWrapper(ID(), true, false);
}
// If the addon is a special, call enabled handler
@@ -633,6 +640,11 @@ void OnEnabled(const std::string& id)
if (CAddonMgr::Get().GetAddon(id, addon, ADDON_PVRDLL))
return addon->OnEnabled();
void CService::OnEnabled()
+ // OE: systemctl enable & start on addon enable
+ if (CAddonMgr::Get().GetAddon(id, addon, ADDON_SERVICE))
+ CallOEWrapper(addon->ID(), false);
+ // OE
+
if (CAddonMgr::Get().GetAddon(id, addon, ADDON_SERVICE))
std::static_pointer_cast<CService>(addon)->Start();
@@ -649,6 +661,11 @@ void OnDisabled(const std::string& id)
if (CAddonMgr::Get().GetAddon(id, addon, ADDON_SERVICE, false))
std::static_pointer_cast<CService>(addon)->Stop();
+ // OE: systemctl stop & disable on addon disable
+ if (CAddonMgr::Get().GetAddon(id, addon, ADDON_SERVICE, false))
+ CallOEWrapper(addon->ID(), true);
+ // OE
+
if (CAddonMgr::Get().GetAddon(id, addon, ADDON_CONTEXT_ITEM, false))
CContextMenuManager::Get().Unregister(std::static_pointer_cast<CContextItemAddon>(addon));
}
@@ -672,6 +689,14 @@ void OnPreInstall(const AddonPtr& addon)
void OnPostInstall(const AddonPtr& addon, bool update, bool modal)
{
+ // systemctl enable & start on addon enable
+ CallOEWrapper(ID(), false, false);
Start();
}
AddonPtr localAddon;
+ // OE: systemctl stop & disable / enable & start on addon upgrade
+ if (CAddonMgr::Get().GetAddon(addon->ID(), localAddon, ADDON_SERVICE))
+ {
+ CallOEWrapper(addon->ID(), true);
+ CallOEWrapper(addon->ID(), false);
+ }
+ // OE
+
if (CAddonMgr::Get().GetAddon(addon->ID(), localAddon, ADDON_SERVICE))
std::static_pointer_cast<CService>(localAddon)->Start();
@@ -145,13 +160,20 @@ void CService::OnPostInstall(bool restart, bool update, bool modal)
{
std::shared_ptr<CService> service = std::dynamic_pointer_cast<CService>(localAddon);
if (service)
+ {
+ // systemctl stop & disable / enable & start on addon upgrade
+ CallOEWrapper(ID(), true, false);
+ CallOEWrapper(ID(), false, false);
service->Start();
+ }
}
}
}
void CService::OnPreUnInstall()
@@ -706,6 +731,11 @@ void OnPostInstall(const AddonPtr& addon, bool update, bool modal)
void OnPreUnInstall(const AddonPtr& addon)
{
+ // systemctl stop & disable on addon ininstall
+ CallOEWrapper(ID(), true, false);
Stop();
}
AddonPtr localAddon;
+ // OE: systemctl stop & disable on addon ininstall
+ if (CAddonMgr::Get().GetAddon(addon->ID(), localAddon, ADDON_SERVICE))
+ CallOEWrapper(addon->ID(), true);
+ // OE
+
if (CAddonMgr::Get().GetAddon(addon->ID(), localAddon, ADDON_SERVICE))
std::static_pointer_cast<CService>(localAddon)->Stop();
diff --git a/xbmc/addons/Service.h b/xbmc/addons/Service.h
index f7394de..1ba3f27 100644
--- a/xbmc/addons/Service.h
+++ b/xbmc/addons/Service.h
@@ -47,6 +47,7 @@ namespace ADDON
bool Stop();
TYPE GetServiceType() { return m_type; }
START_OPTION GetStartOption() { return m_startOption; }
+ void CallOEWrapper(const std::string& ID, bool disable, bool check);
virtual void OnDisabled();
virtual void OnEnabled();
virtual bool OnPreInstall();
diff --git a/xbmc/addons/Addon.h b/xbmc/addons/Addon.h
index ca9cddb..46e30d3 100644
--- a/xbmc/addons/Addon.h
+++ b/xbmc/addons/Addon.h
@@ -171,6 +171,8 @@ public:
const InfoMap &ExtraInfo() const { return m_props.extrainfo; }
const ADDONDEPS &GetDeps() const { return m_props.dependencies; }
+ void CallOEWrapper(const std::string& ID, bool disable);
+
/*! \brief get the required version of a dependency.
\param dependencyID the addon ID of the dependency.
\return the version this addon requires.
--
2.1.4

View File

@@ -1,20 +1,28 @@
From 411b2097affa681e22e8e0fe1a1c30bebd574a0e Mon Sep 17 00:00:00 2001
From aabc63419df8aa69f156afdafb28820c3c9ccdc7 Mon Sep 17 00:00:00 2001
From: fritsch <Peter.Fruehberger@gmail.com>
Date: Sat, 1 Nov 2014 12:44:54 +0100
Subject: [PATCH] AdvancedSettings: Add minimalSampleRate to ActiveAE cause of
broken AVRs out there
---
xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp | 7 +++++++
xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp | 8 ++++++++
xbmc/settings/AdvancedSettings.cpp | 3 +++
xbmc/settings/AdvancedSettings.h | 2 ++
3 files changed, 12 insertions(+)
3 files changed, 13 insertions(+)
diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
index 0e4d8da..b9d74bf 100644
index bf7e439..1687bad 100644
--- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
+++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
@@ -1505,6 +1505,13 @@ void CActiveAE::ApplySettingsToFormat(AEAudioFormat &format, AudioSettings &sett
@@ -28,6 +28,7 @@ using namespace ActiveAE;
#include "cores/AudioEngine/Encoders/AEEncoderFFmpeg.h"
#include "settings/Settings.h"
+#include "settings/AdvancedSettings.h"
#include "windowing/WindowingFactory.h"
#define MAX_CACHE_LEVEL 0.5 // total cache time of stream in seconds
@@ -1504,6 +1505,13 @@ void CActiveAE::ApplySettingsToFormat(AEAudioFormat &format, AudioSettings &sett
format.m_channelLayout = AE_CH_LAYOUT_2_0;
}
@@ -29,19 +37,19 @@ index 0e4d8da..b9d74bf 100644
{
format.m_sampleRate = m_settings.samplerate;
diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp
index 7d04872..3d5432a 100644
index c4fa298..35728e4 100644
--- a/xbmc/settings/AdvancedSettings.cpp
+++ b/xbmc/settings/AdvancedSettings.cpp
@@ -107,6 +107,8 @@ void CAdvancedSettings::Initialize()
@@ -108,6 +108,8 @@ void CAdvancedSettings::Initialize()
return;
m_audioHeadRoom = 0;
+ // OpenELEC workaround for broken AVRs
+ m_minimumSampleRate = 8000;
m_ac3Gain = 12.0f;
m_audioApplyDrc = true;
m_audioApplyDrc = -1.0f;
m_dvdplayerIgnoreDTSinWAV = false;
@@ -475,6 +477,7 @@ void CAdvancedSettings::ParseSettingsFile(const CStdString &file)
@@ -464,6 +466,7 @@ void CAdvancedSettings::ParseSettingsFile(const std::string &file)
{
XMLUtils::GetFloat(pElement, "ac3downmixgain", m_ac3Gain, -96.0f, 96.0f);
XMLUtils::GetInt(pElement, "headroom", m_audioHeadRoom, 0, 12);
@@ -50,18 +58,18 @@ index 7d04872..3d5432a 100644
// 101 on purpose - can be used to never automark as watched
XMLUtils::GetFloat(pElement, "playcountminimumpercent", m_audioPlayCountMinimumPercent, 0.0f, 101.0f);
diff --git a/xbmc/settings/AdvancedSettings.h b/xbmc/settings/AdvancedSettings.h
index 7df586e..9b79a8a 100644
index b0b4df1..7137614 100644
--- a/xbmc/settings/AdvancedSettings.h
+++ b/xbmc/settings/AdvancedSettings.h
@@ -136,6 +136,8 @@ class CAdvancedSettings : public ISettingCallback, public ISettingsHandler
@@ -140,6 +140,8 @@ class CAdvancedSettings : public ISettingCallback, public ISettingsHandler
static void SettingOptionsLoggingComponentsFiller(const CSetting *setting, std::vector< std::pair<std::string, int> > &list, int &current, void *data);
int m_audioHeadRoom;
+ // OpenELEC workaround for minimum sample Rate
+ int m_minimumSampleRate;
float m_ac3Gain;
CStdString m_audioDefaultPlayer;
std::string m_audioDefaultPlayer;
float m_audioPlayCountMinimumPercent;
--
1.9.1
2.1.4

View File

@@ -22,13 +22,7 @@ if [ ! -d /storage/.config/system.d ] ; then
fi
if [ -f "/storage/.kodi/addons/$1/system.d/$1.service" ] ; then
if [ "_$3" = "_1" ] ; then
# check if enabled, on kodi start
if ! systemctl is-enabled "$1.service" &>/dev/null ; then
systemctl enable "/storage/.kodi/addons/$1/system.d/$1.service"
systemctl start "$1.service"
fi
elif [ "_$2" = "_1" ] ; then
if [ "_$2" = "_1" ] ; then
# disable = true: cleanup
systemctl stop "$1.service"
systemctl disable "/storage/.kodi/addons/$1/system.d/$1.service"