mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-29 13:46:49 +00:00
xbmc: update to xbmc-30312f1 (RC1)
Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
parent
76b85fdce6
commit
53e731621f
@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="xbmc-theme-Confluence"
|
||||
PKG_VERSION="1fef727"
|
||||
PKG_VERSION="30312f1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -19,7 +19,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="xbmc"
|
||||
PKG_VERSION="1fef727"
|
||||
PKG_VERSION="30312f1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -1,168 +0,0 @@
|
||||
From b8ca2fd400720390d655a9d7d4c63b224c91d6e6 Mon Sep 17 00:00:00 2001
|
||||
From: Lars Op den Kamp <lars@opdenkamp.eu>
|
||||
Date: Thu, 26 Jan 2012 21:58:44 +0100
|
||||
Subject: [PATCH] peripherals: call OnSettingChanged() methods after
|
||||
persisting the new settings and always persist settings
|
||||
directly after they've been changed in the gui. fixes the
|
||||
issue that settings are reset when XBMC is restarted after
|
||||
it crashed. closes trac 12570
|
||||
|
||||
---
|
||||
xbmc/peripherals/devices/Peripheral.cpp | 33 +++++++++++--------
|
||||
xbmc/peripherals/devices/Peripheral.h | 8 +---
|
||||
.../dialogs/GUIDialogPeripheralSettings.cpp | 2 +
|
||||
3 files changed, 23 insertions(+), 20 deletions(-)
|
||||
|
||||
diff --git a/xbmc/peripherals/devices/Peripheral.cpp b/xbmc/peripherals/devices/Peripheral.cpp
|
||||
index cc046dc..d07acaf 100644
|
||||
--- a/xbmc/peripherals/devices/Peripheral.cpp
|
||||
+++ b/xbmc/peripherals/devices/Peripheral.cpp
|
||||
@@ -64,7 +64,7 @@
|
||||
|
||||
CPeripheral::~CPeripheral(void)
|
||||
{
|
||||
- PersistSettings();
|
||||
+ PersistSettings(true);
|
||||
|
||||
for (unsigned int iSubdevicePtr = 0; iSubdevicePtr < m_subDevices.size(); iSubdevicePtr++)
|
||||
delete m_subDevices.at(iSubdevicePtr);
|
||||
@@ -323,7 +323,7 @@ void CPeripheral::SetSetting(const CStdString &strKey, bool bValue)
|
||||
bool bChanged(boolSetting->GetData() != bValue);
|
||||
boolSetting->SetData(bValue);
|
||||
if (bChanged && m_bInitialised)
|
||||
- OnSettingChanged(strKey);
|
||||
+ m_changedSettings.push_back(strKey);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -339,7 +339,7 @@ void CPeripheral::SetSetting(const CStdString &strKey, int iValue)
|
||||
bool bChanged(intSetting->GetData() != iValue);
|
||||
intSetting->SetData(iValue);
|
||||
if (bChanged && m_bInitialised)
|
||||
- OnSettingChanged(strKey);
|
||||
+ m_changedSettings.push_back(strKey);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -355,7 +355,7 @@ void CPeripheral::SetSetting(const CStdString &strKey, float fValue)
|
||||
bool bChanged(floatSetting->GetData() != fValue);
|
||||
floatSetting->SetData(fValue);
|
||||
if (bChanged && m_bInitialised)
|
||||
- OnSettingChanged(strKey);
|
||||
+ m_changedSettings.push_back(strKey);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -373,7 +373,7 @@ void CPeripheral::SetSetting(const CStdString &strKey, const CStdString &strValu
|
||||
bool bChanged(!stringSetting->GetData().Equals(strValue));
|
||||
stringSetting->SetData(strValue);
|
||||
if (bChanged && m_bInitialised)
|
||||
- OnSettingChanged(strKey);
|
||||
+ m_changedSettings.push_back(strKey);
|
||||
}
|
||||
}
|
||||
else if ((*it).second->GetType() == SETTINGS_TYPE_INT)
|
||||
@@ -385,7 +385,7 @@ void CPeripheral::SetSetting(const CStdString &strKey, const CStdString &strValu
|
||||
}
|
||||
}
|
||||
|
||||
-void CPeripheral::PersistSettings(void) const
|
||||
+void CPeripheral::PersistSettings(bool bExiting /* = false */)
|
||||
{
|
||||
TiXmlDocument doc;
|
||||
TiXmlElement node("settings");
|
||||
@@ -433,6 +433,13 @@ void CPeripheral::PersistSettings(void) const
|
||||
}
|
||||
|
||||
doc.SaveFile(m_strSettingsFile);
|
||||
+
|
||||
+ if (!bExiting)
|
||||
+ {
|
||||
+ for (vector<CStdString>::iterator it = m_changedSettings.begin(); it != m_changedSettings.end(); it++)
|
||||
+ OnSettingChanged(*it);
|
||||
+ }
|
||||
+ m_changedSettings.clear();
|
||||
}
|
||||
|
||||
void CPeripheral::LoadPersistedSettings(void)
|
||||
@@ -456,26 +463,24 @@ void CPeripheral::ResetDefaultSettings(void)
|
||||
{
|
||||
ClearSettings();
|
||||
g_peripherals.GetSettingsFromMapping(*this);
|
||||
- OnSettingsChanged();
|
||||
-}
|
||||
|
||||
-void CPeripheral::ClearSettings(void)
|
||||
-{
|
||||
map<CStdString, CSetting *>::iterator it = m_settings.begin();
|
||||
while (it != m_settings.end())
|
||||
{
|
||||
- delete (*it).second;
|
||||
+ m_changedSettings.push_back((*it).first);
|
||||
++it;
|
||||
}
|
||||
- m_settings.clear();
|
||||
+
|
||||
+ PersistSettings();
|
||||
}
|
||||
|
||||
-void CPeripheral::OnSettingsChanged(void)
|
||||
+void CPeripheral::ClearSettings(void)
|
||||
{
|
||||
map<CStdString, CSetting *>::iterator it = m_settings.begin();
|
||||
while (it != m_settings.end())
|
||||
{
|
||||
- OnSettingChanged((*it).first);
|
||||
+ delete (*it).second;
|
||||
++it;
|
||||
}
|
||||
+ m_settings.clear();
|
||||
}
|
||||
diff --git a/xbmc/peripherals/devices/Peripheral.h b/xbmc/peripherals/devices/Peripheral.h
|
||||
index e7860e4..7851554 100644
|
||||
--- a/xbmc/peripherals/devices/Peripheral.h
|
||||
+++ b/xbmc/peripherals/devices/Peripheral.h
|
||||
@@ -87,11 +87,6 @@
|
||||
virtual void OnSettingChanged(const CStdString &strChangedSetting) {};
|
||||
|
||||
/*!
|
||||
- * @brief Called when one or more settings changed. Calls OnSettingChanged for every setting.
|
||||
- */
|
||||
- virtual void OnSettingsChanged(void);
|
||||
-
|
||||
- /*!
|
||||
* @brief Get all subdevices if this device is multifunctional.
|
||||
* @param subDevices The subdevices.
|
||||
*/
|
||||
@@ -143,7 +138,7 @@
|
||||
virtual float GetSettingFloat(const CStdString &strKey) const;
|
||||
virtual void SetSetting(const CStdString &strKey, float fValue);
|
||||
|
||||
- virtual void PersistSettings(void) const;
|
||||
+ virtual void PersistSettings(bool bExiting = false);
|
||||
virtual void LoadPersistedSettings(void);
|
||||
virtual void ResetDefaultSettings(void);
|
||||
|
||||
@@ -168,5 +163,6 @@
|
||||
std::vector<PeripheralFeature> m_features;
|
||||
std::vector<CPeripheral *> m_subDevices;
|
||||
std::map<CStdString, CSetting *> m_settings;
|
||||
+ std::vector<CStdString> m_changedSettings;
|
||||
};
|
||||
}
|
||||
diff --git a/xbmc/peripherals/dialogs/GUIDialogPeripheralSettings.cpp b/xbmc/peripherals/dialogs/GUIDialogPeripheralSettings.cpp
|
||||
index f272d00..c79f961 100644
|
||||
--- a/xbmc/peripherals/dialogs/GUIDialogPeripheralSettings.cpp
|
||||
+++ b/xbmc/peripherals/dialogs/GUIDialogPeripheralSettings.cpp
|
||||
@@ -176,6 +176,8 @@ void CGUIDialogPeripheralSettings::UpdatePeripheralSettings(void)
|
||||
peripheral->SetSetting((*stringItr).first, (*stringItr).second);
|
||||
++stringItr;
|
||||
}
|
||||
+
|
||||
+ peripheral->PersistSettings();
|
||||
}
|
||||
|
||||
bool CGUIDialogPeripheralSettings::OnMessage(CGUIMessage &message)
|
||||
--
|
||||
1.7.5.4
|
||||
|
@ -1,71 +0,0 @@
|
||||
From e6bf089bbf486c9879d3abc5ce31a99b67558ea7 Mon Sep 17 00:00:00 2001
|
||||
From: Memphiz <memphis@machzwo.de>
|
||||
Date: Sat, 11 Feb 2012 17:28:52 +0100
|
||||
Subject: [PATCH] [fix] - let the scripts react on the abortRequest before
|
||||
killing them
|
||||
|
||||
---
|
||||
xbmc/interfaces/python/XBPyThread.cpp | 18 ++++++++++++++++++
|
||||
xbmc/interfaces/python/XBPyThread.h | 2 ++
|
||||
2 files changed, 20 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/xbmc/interfaces/python/XBPyThread.cpp b/xbmc/interfaces/python/XBPyThread.cpp
|
||||
index c9f0a12..d3c616f 100644
|
||||
--- a/xbmc/interfaces/python/XBPyThread.cpp
|
||||
+++ b/xbmc/interfaces/python/XBPyThread.cpp
|
||||
@@ -375,6 +375,13 @@ void XBPyThread::Process()
|
||||
PyThreadState_Swap(NULL);
|
||||
PyEval_ReleaseLock();
|
||||
|
||||
+ //set stopped event - this allows ::stop to run and kill remaining threads
|
||||
+ //this event has to be fired without holding m_pExecuter->m_critSection
|
||||
+ //before
|
||||
+ //Also the GIL (PyEval_AcquireLock) must not be held
|
||||
+ //if not obeyed there is still no deadlock because ::stop waits with timeout (smart one!)
|
||||
+ stoppedEvent.Set();
|
||||
+
|
||||
{ CSingleLock lock(m_pExecuter->m_critSection);
|
||||
m_threadState = NULL;
|
||||
}
|
||||
@@ -428,6 +435,17 @@ void XBPyThread::stop()
|
||||
if(!m || PyObject_SetAttrString(m, (char*)"abortRequested", PyBool_FromLong(1)))
|
||||
CLog::Log(LOGERROR, "XBPyThread::stop - failed to set abortRequested");
|
||||
|
||||
+ PyThreadState_Swap(old);
|
||||
+ PyEval_ReleaseLock();
|
||||
+
|
||||
+ if(!stoppedEvent.WaitMSec(5000))//let the script 5 secs for shut stuff down
|
||||
+ {
|
||||
+ CLog::Log(LOGERROR, "XBPyThread::stop - script didn't stop in proper time - lets kill it");
|
||||
+ }
|
||||
+
|
||||
+ //everything which didn't exit by now gets killed
|
||||
+ PyEval_AcquireLock();
|
||||
+ old = PyThreadState_Swap((PyThreadState*)m_threadState);
|
||||
for(PyThreadState* state = ((PyThreadState*)m_threadState)->interp->tstate_head; state; state = state->next)
|
||||
{
|
||||
Py_XDECREF(state->async_exc);
|
||||
diff --git a/xbmc/interfaces/python/XBPyThread.h b/xbmc/interfaces/python/XBPyThread.h
|
||||
index 2b83b52..55a6fbd 100644
|
||||
--- a/xbmc/interfaces/python/XBPyThread.h
|
||||
+++ b/xbmc/interfaces/python/XBPyThread.h
|
||||
@@ -23,6 +23,7 @@
|
||||
#define XBPYTHREAD_H_
|
||||
|
||||
#include "threads/Thread.h"
|
||||
+#include "threads/Event.h"
|
||||
#include "addons/IAddon.h"
|
||||
|
||||
class XBPython;
|
||||
@@ -42,6 +43,7 @@ class XBPyThread : public CThread
|
||||
|
||||
protected:
|
||||
XBPython *m_pExecuter;
|
||||
+ CEvent stoppedEvent;
|
||||
void *m_threadState;
|
||||
|
||||
char m_type;
|
||||
--
|
||||
1.7.5.4
|
||||
|
||||
|
@ -390,14 +390,6 @@ Subject: [PATCH 02/17] cec: set the HDMI port and the device to which the CEC
|
||||
|
||||
diff --git a/language/Dutch/strings.xml b/language/Dutch/strings.xml
|
||||
index 58d0003..721bd73 100644
|
||||
--- a/language/Dutch/strings.xml
|
||||
+++ b/language/Dutch/strings.xml
|
||||
@@ -2403,4 +2403,5 @@
|
||||
<string id="36016">Verbonden</string> <!-- max. 13 characters -->
|
||||
<string id="36017">Adapter gevonden, maar libcec is niet beschikbaar</string>
|
||||
<string id="36018">Gebruik de taalinstelling van de TV</string>
|
||||
+ <string id="36019">Verbonden met HDMI apparaat</string>
|
||||
</strings>
|
||||
\ No newline at end of file
|
||||
diff --git a/language/English/strings.xml b/language/English/strings.xml
|
||||
index ca2ac4d..fb5b8fb 100644
|
||||
@ -1789,34 +1781,6 @@ index a4ea21d..270dab3 100755
|
||||
INCLUDES="$INCLUDES $CEC_CFLAGS"
|
||||
diff --git a/language/Dutch/strings.xml b/language/Dutch/strings.xml
|
||||
index 721bd73..b398189 100644
|
||||
--- a/language/Dutch/strings.xml
|
||||
+++ b/language/Dutch/strings.xml
|
||||
@@ -2391,17 +2391,20 @@
|
||||
<string id="36004">Druk op "user" knop commando</string>
|
||||
<string id="36005">Schakel commando's in bij het wisselen van kant</string>
|
||||
<string id="36006">Kon de adapter niet openen</string>
|
||||
- <string id="36007">Schakel de TV in bij het opstarten van XBMC</string>
|
||||
+ <string id="36007">Schakel apparatuur in bij het opstarten van XBMC</string>
|
||||
<string id="36008">Schakel apparatuur uit bij het stoppen van XBMC</string>
|
||||
<string id="36009">Schakel app. uit zolang de schermbeveiliging actief is</string>
|
||||
<string id="36010"></string>
|
||||
- <string id="36011">Kon de CEC poort niet detecteren. Stel het manueel in.</string>
|
||||
- <string id="36012">Kon de CEC adapter niet detecteren.</string>
|
||||
- <string id="36013">Versie %d van de libcec interface version wordt niet ondersteund door XBMC (> %d)</string>
|
||||
+ <string id="36011">Kon de COM poort niet detecteren. Stel het manueel in.</string>
|
||||
+ <string id="36012">Kon de CEC adapter niet initialiseren.</string>
|
||||
+ <string id="36013">Versie %d van de libCEC interface version wordt niet ondersteund door XBMC (> %d)</string>
|
||||
<string id="36014">Zet XBMC in standby wanneer de TV uitgeschakeld wordt</string>
|
||||
<string id="36015">HDMI poort nummer</string>
|
||||
<string id="36016">Verbonden</string> <!-- max. 13 characters -->
|
||||
- <string id="36017">Adapter gevonden, maar libcec is niet beschikbaar</string>
|
||||
+ <string id="36017">Adapter gevonden, maar libCEC is niet beschikbaar</string>
|
||||
<string id="36018">Gebruik de taalinstelling van de TV</string>
|
||||
<string id="36019">Verbonden met HDMI apparaat</string>
|
||||
+ <string id="36020">Maak XBMC de actieve bron bij het opstarten</string>
|
||||
+ <string id="36021">Physiek adres (overschrijft HDMI poort)</string>
|
||||
+ <string id="36022">COM poort (laat leeg, tenzij noodzakelijk)</string>
|
||||
</strings>
|
||||
\ No newline at end of file
|
||||
diff --git a/language/English/strings.xml b/language/English/strings.xml
|
||||
index 9c7caaf..27487f4 100644
|
Loading…
x
Reference in New Issue
Block a user