xbmc: update to xbmc-30312f1 (RC1)

Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
Stephan Raue 2012-02-27 00:20:56 +01:00
parent 76b85fdce6
commit 53e731621f
19 changed files with 2 additions and 277 deletions

View File

@ -19,7 +19,7 @@
################################################################################
PKG_NAME="xbmc-theme-Confluence"
PKG_VERSION="1fef727"
PKG_VERSION="30312f1"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -19,7 +19,7 @@
################################################################################
PKG_NAME="xbmc"
PKG_VERSION="1fef727"
PKG_VERSION="30312f1"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@ -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

View File

@ -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

View File

@ -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