Index: language/English (US)/strings.po
===================================================================
--- language/English (US)/strings.po (revision 33005)
+++ language/English (US)/strings.po (working copy)
@@ -8272,3 +8272,7 @@
msgctxt "#34005"
msgid "Flac"
msgstr "Flac"
+
+msgctxt "#34010"
+msgid "Power off on exit"
+msgstr "Power off on exit"
Index: language/English/strings.po
===================================================================
--- language/English/strings.po (revision 33005)
+++ language/English/strings.po (working copy)
@@ -8688,3 +8688,7 @@
msgctxt "#34005"
msgid "Flac"
msgstr ""
+
+msgctxt "#34010"
+msgid "Power off on exit"
+msgstr ""
\ No newline at end of file
Index: language/French/strings.po
===================================================================
--- language/French/strings.po (revision 33005)
+++ language/French/strings.po (working copy)
@@ -8280,3 +8280,7 @@
msgctxt "#34005"
msgid "Flac"
msgstr "Flac"
+
+msgctxt "#34010"
+msgid "Éteindre à la sortie"
+msgstr "Éteindre à la sortie"
Index: xbmc.vcproj
===================================================================
--- xbmc.vcproj (revision 33005)
+++ xbmc.vcproj (working copy)
@@ -2740,6 +2740,12 @@
RelativePath=".\xbmc\lib\x3lcd\x3lcd.h">
+
+
+
+
Stop();
+ CLog::Log(LOGNOTICE, "Stop LCD addon.");
+ g_lcd->Stop(g_guiSettings.GetBool("lcd.poweroffonexit"));
delete g_lcd;
g_lcd=NULL;
}
Index: xbmc/lib/libXenium/XeniumLCD.cpp
===================================================================
--- xbmc/lib/libXenium/XeniumLCD.cpp (revision 33005)
+++ xbmc/lib/libXenium/XeniumLCD.cpp (working copy)
@@ -62,9 +62,14 @@
}
//*************************************************************************************************************
-void CXeniumLCD::Stop()
+void CXeniumLCD::Stop(bool TurnOffLCD)
{
if (g_guiSettings.GetInt("lcd.type") == LCD_TYPE_NONE) return;
+ if(TurnOffLCD)
+ {
+ DisplaySetBacklight(0);
+ m_xenium.HideDisplay();
+ }
StopThread();
}
@@ -255,9 +260,12 @@
}
}
}
+ /*
+ //This code clears the screen when stopping thread.
for (int i=0; i < (int)m_iRows; i++)
{
DisplayClearChars(0,i,m_iColumns);
}
m_xenium.HideDisplay();
+ */
}
Index: xbmc/lib/libXenium/XeniumLCD.h
===================================================================
--- xbmc/lib/libXenium/XeniumLCD.h (revision 33005)
+++ xbmc/lib/libXenium/XeniumLCD.h (working copy)
@@ -11,7 +11,7 @@
CXeniumLCD();
virtual ~CXeniumLCD(void);
virtual void Initialize();
- virtual void Stop();
+ virtual void Stop(bool TurnOffLCD);
virtual void SetBackLight(int iLight);
virtual void SetContrast(int iContrast);
protected:
Index: xbmc/lib/smartXX/smartxxlcd.cpp
===================================================================
--- xbmc/lib/smartXX/smartxxlcd.cpp (revision 33005)
+++ xbmc/lib/smartXX/smartxxlcd.cpp (working copy)
@@ -120,9 +120,14 @@
}
//*************************************************************************************************************
-void CSmartXXLCD::Stop()
+void CSmartXXLCD::Stop(bool TurnOffLCD)
{
if (g_guiSettings.GetInt("lcd.type") == LCD_TYPE_NONE) return;
+ if(TurnOffLCD)
+ {
+ DisplaySetBacklight(0);
+ DisplayOut(DISP_CLEAR,CMD);
+ }
StopThread();
}
@@ -601,9 +606,12 @@
}
}
}
+ /*
+ //This code clears the screen when stopping thread.
for (int i=0; i < (int)m_iRows; i++)
{
DisplayClearChars(0,i,m_iColumns);
}
DisplayOut(DISP_CONTROL ,CMD); // Display off
+ */
}
Index: xbmc/lib/smartXX/smartxxLCD.h
===================================================================
--- xbmc/lib/smartXX/smartxxLCD.h (revision 33005)
+++ xbmc/lib/smartXX/smartxxLCD.h (working copy)
@@ -10,7 +10,7 @@
CSmartXXLCD();
virtual ~CSmartXXLCD(void);
virtual void Initialize();
- virtual void Stop();
+ virtual void Stop(bool TurnOffLCD);
virtual void SetBackLight(int iLight);
virtual void SetContrast(int iContrast);
@@ -18,8 +18,8 @@
virtual void Process();
virtual void SetLine(int iLine, const CStdString& strLine);
void DisplayInit();
- void DisplaySetBacklight(unsigned char level) ;
- void DisplaySetContrast(unsigned char level) ;
+ virtual void DisplaySetBacklight(unsigned char level) ;
+ virtual void DisplaySetContrast(unsigned char level) ;
void DisplayProgressBar(unsigned char percent, unsigned char charcnt);
void DisplayClearChars(unsigned char startpos , unsigned char line, unsigned char lenght) ;
void DisplayWriteString(char *pointer) ;
Index: xbmc/lib/x3lcd/x3lcd.cpp
===================================================================
--- xbmc/lib/x3lcd/x3lcd.cpp (revision 33005)
+++ xbmc/lib/x3lcd/x3lcd.cpp (working copy)
@@ -59,10 +59,15 @@
}
void CX3LCD::SetContrast(int iContrast) { }
//*************************************************************************************************************
-void CX3LCD::Stop()
+void CX3LCD::Stop(bool TurnOffLCD)
{
if (g_guiSettings.GetInt("lcd.type") == LCD_TYPE_NONE)
return;
+ if(TurnOffLCD)
+ {
+ DisplaySetBacklight(0);
+ DisplayOut(DISP_CLEAR,CMD);
+ }
StopThread();
}
@@ -434,9 +439,12 @@
}
}
}
+ /*
+ //This code clears the screen when stopping thread.
for (int i = 0; i < (int)m_iRows; i++)
{
DisplayClearChars(0, i, m_iColumns);
}
DisplayOut(DISP_CONTROL, CMD); // Display off
+ */
}
Index: xbmc/lib/x3lcd/x3lcd.h
===================================================================
--- xbmc/lib/x3lcd/x3lcd.h (revision 33005)
+++ xbmc/lib/x3lcd/x3lcd.h (working copy)
@@ -61,7 +61,7 @@
CX3LCD();
virtual ~CX3LCD(void);
virtual void Initialize();
- virtual void Stop();
+ virtual void Stop(bool TurnOffLCD);
virtual void SetBackLight(int iLight);
virtual void SetContrast(int iContrast);
protected:
Index: xbmc/settings/GUISettings.cpp
===================================================================
--- xbmc/settings/GUISettings.cpp (revision 33005)
+++ xbmc/settings/GUISettings.cpp (working copy)
@@ -342,12 +342,13 @@
AddCategory(4, "lcd", 448);
AddInt(2, "lcd.type", 4501, LCD_TYPE_NONE, LCD_TYPE_NONE, 1, LCD_TYPE_VFD, SPIN_CONTROL_TEXT);
- AddInt(3, "lcd.modchip", 471, MODCHIP_SMARTXX, MODCHIP_SMARTXX, 1, MODCHIP_XECUTER3, SPIN_CONTROL_TEXT);
+ AddInt(3, "lcd.modchip", 471, MODCHIP_SMARTXX, MODCHIP_SMARTXX, 1, MODCHIP_XBLAST, SPIN_CONTROL_TEXT);
AddInt(4, "lcd.backlight", 463, 80, 0, 5, 100, SPIN_CONTROL_INT_PLUS, MASK_PERCENT);
AddInt(5, "lcd.contrast", 465, 100, 0, 5, 100, SPIN_CONTROL_INT_PLUS, MASK_PERCENT);
AddSeparator(6, "lcd.sep1");
- AddInt(7, "lcd.disableonplayback", 20310, LED_PLAYBACK_OFF, LED_PLAYBACK_OFF, 1, LED_PLAYBACK_VIDEO_MUSIC, SPIN_CONTROL_TEXT);
- AddBool(8, "lcd.enableonpaused", 20312, true);
+ AddBool(7, "lcd.poweroffonexit", 34010, false);
+ AddInt(8, "lcd.disableonplayback", 20310, LED_PLAYBACK_OFF, LED_PLAYBACK_OFF, 1, LED_PLAYBACK_VIDEO_MUSIC, SPIN_CONTROL_TEXT);
+ AddBool(9, "lcd.enableonpaused", 20312, true);
AddCategory(4, "debug", 14092);
AddBool(1, "debug.showloginfo", 20191, false);
Index: xbmc/settings/GUISettings.h
===================================================================
--- xbmc/settings/GUISettings.h (revision 33005)
+++ xbmc/settings/GUISettings.h (working copy)
@@ -62,6 +62,7 @@
#define MODCHIP_SMARTXX 0
#define MODCHIP_XENIUM 1
#define MODCHIP_XECUTER3 2
+#define MODCHIP_XBLAST 3
// LED settings
#define LED_COLOUR_NO_CHANGE 0
Index: xbmc/settings/GUIWindowSettingsCategory.cpp
===================================================================
--- xbmc/settings/GUIWindowSettingsCategory.cpp (revision 33005)
+++ xbmc/settings/GUIWindowSettingsCategory.cpp (working copy)
@@ -528,6 +528,7 @@
pControl->AddLabel("SmartXX", MODCHIP_SMARTXX);
pControl->AddLabel("Xenium", MODCHIP_XENIUM);
pControl->AddLabel("Xecuter3", MODCHIP_XECUTER3);
+ pControl->AddLabel("XBlast", MODCHIP_XBLAST);
pControl->SetValue(pSettingInt->GetData());
}
else if (strSetting.Equals("harddisk.aamlevel"))
@@ -1167,7 +1168,7 @@
CGUIControl *pControl = (CGUIControl *)GetControl(pSettingControl->GetID());
if (pControl) pControl->SetEnabled(g_guiSettings.GetInt("system.leddisableonplayback") != LED_PLAYBACK_OFF && g_guiSettings.GetInt("system.ledcolour") != LED_COLOUR_OFF && g_guiSettings.GetInt("system.ledcolour") != LED_COLOUR_NO_CHANGE);
}
- else if (strSetting.Equals("lcd.modchip") || strSetting.Equals("lcd.backlight") || strSetting.Equals("lcd.disableonplayback"))
+ else if (strSetting.Equals("lcd.modchip") || strSetting.Equals("lcd.backlight") || strSetting.Equals("lcd.disableonplayback") || strSetting.Equals("lcd.poweroffonexit"))
{
CGUIControl *pControl = (CGUIControl *)GetControl(pSettingControl->GetID());
if (pControl) pControl->SetEnabled(g_guiSettings.GetInt("lcd.type") != LCD_TYPE_NONE);
@@ -1477,7 +1478,7 @@
}
else if (strSetting.Equals("lcd.modchip"))
{
- g_lcd->Stop();
+ g_lcd->Stop(true);
CLCDFactory factory;
delete g_lcd;
g_lcd = factory.Create();
@@ -1487,6 +1488,13 @@
{
g_lcd->SetContrast(((CSettingInt *)pSettingControl->GetSetting())->GetData());
}
+ /*
+ //Not useful right now. Will be later if parameter can be set in advancedsettings xml file.
+ else if (strSetting.Equals("lcd.poweroffonexit"))
+ {
+ g_advancedSettings.m_PowerOffOnExit = ((CSettingBool *)pSettingControl->GetSetting())->GetData();
+ }
+ */
#endif
#ifdef HAS_XBOX_HARDWARE
else if (strSetting.Equals("system.targettemperature"))
Index: xbmc/Util.cpp
===================================================================
--- xbmc/Util.cpp (revision 33005)
+++ xbmc/Util.cpp (working copy)
@@ -1011,7 +1011,7 @@
}
ourmemaddr=(PVOID *)(((unsigned int) ourmemaddr) + sizeof(igk_main_toy));
- if (g_guiSettings.GetInt("lcd.mode") > 0 && g_guiSettings.GetInt("lcd.type") == MODCHIP_SMARTXX)
+ if (g_guiSettings.GetInt("lcd.mode") > 0 && (g_guiSettings.GetInt("lcd.type") == MODCHIP_SMARTXX || g_guiSettings.GetInt("lcd.type") == MODCHIP_XBLAST))
{
memcpy(ourmemaddr, lcd_toy_xx, sizeof(lcd_toy_xx));
_asm
Index: xbmc/utils/LCD.h
===================================================================
--- xbmc/utils/LCD.h (revision 33005)
+++ xbmc/utils/LCD.h (working copy)
@@ -48,7 +48,7 @@
CUSTOM_CHARSET_MAX
};
virtual void Initialize();
- virtual void Stop() = 0;
+ virtual void Stop(bool TurnOffLCD) = 0;
virtual void SetBackLight(int iLight) = 0;
virtual void SetContrast(int iContrast) = 0;
virtual void SetLine(int iLine, const CStdString& strLine) = 0;
Index: xbmc/utils/LCDFactory.cpp
===================================================================
--- xbmc/utils/LCDFactory.cpp (revision 33005)
+++ xbmc/utils/LCDFactory.cpp (working copy)
@@ -3,6 +3,7 @@
#include "lib/smartxx/smartxxLCD.h"
#include "lib/libXenium/XeniumLCD.h"
#include "lib/x3lcd/x3lcd.h"
+#include "lib/xblast/xblastLCD.h"
#include "settings/GUISettings.h"
ILCD* g_lcd = NULL;
@@ -28,6 +29,10 @@
return new CX3LCD();
break;
+ case MODCHIP_XBLAST:
+ return new CXBlastLCD();
+ break;
+
}
return new CSmartXXLCD();
}