Merge pull request #476 from energy6/xbmc-restore-volume
authorMatthias Kortstiege <vdrfan@xbmc.org>
Thu, 19 Jan 2012 08:27:08 +0000 (00:27 -0800)
committerMatthias Kortstiege <vdrfan@xbmc.org>
Thu, 19 Jan 2012 08:27:08 +0000 (00:27 -0800)
Xbmc restore volume

xbmc/Application.cpp
xbmc/settings/Settings.cpp

index 1572e14..a2c21de 100644 (file)
@@ -1211,9 +1211,16 @@ bool CApplication::Initialize()
   CLog::Log(LOGINFO, "removing tempfiles");
   CUtil::RemoveTempFiles();
 
-  //  Show mute symbol
+  //  Restore volume
   if (g_settings.m_bMute)
+  {
+    SetVolume(g_settings.m_iPreMuteVolumeLevel);
     Mute();
+  }
+  else
+  {
+    SetVolume(g_settings.m_nVolumeLevel, false);
+  }
 
   // if the user shutoff the xbox during music scan
   // restore the settings
index ca56955..686172e 100644 (file)
@@ -726,7 +726,9 @@ bool CSettings::LoadSettings(const CStdString& strSettingsFile)
   pElement = pRootElement->FirstChildElement("audio");
   if (pElement)
   {
+    XMLUtils::GetBoolean(pElement, "mute", m_bMute);
     GetInteger(pElement, "volumelevel", m_nVolumeLevel, VOLUME_MAXIMUM, VOLUME_MINIMUM, VOLUME_MAXIMUM);
+    GetInteger(pElement, "premutevolumelevel", m_iPreMuteVolumeLevel, 0, 0, 100);
     GetInteger(pElement, "dynamicrangecompression", m_dynamicRangeCompressionLevel, VOLUME_DRC_MINIMUM, VOLUME_DRC_MINIMUM, VOLUME_DRC_MAXIMUM);
   }
 
@@ -902,7 +904,9 @@ bool CSettings::SaveSettings(const CStdString& strSettingsFile, CGUISettings *lo
   TiXmlElement volumeNode("audio");
   pNode = pRoot->InsertEndChild(volumeNode);
   if (!pNode) return false;
+  XMLUtils::SetBoolean(pNode, "mute", m_bMute);
   XMLUtils::SetInt(pNode, "volumelevel", m_nVolumeLevel);
+  XMLUtils::SetInt(pNode, "premutevolumelevel", m_iPreMuteVolumeLevel);
   XMLUtils::SetInt(pNode, "dynamicrangecompression", m_dynamicRangeCompressionLevel);
 
   SaveCalibration(pRoot);