diff options
author | Rainer Hochecker <fernetmenta@online.de> | 2013-10-23 20:49:12 +0200 |
---|---|---|
committer | Rainer Hochecker <fernetmenta@online.de> | 2013-10-28 12:54:52 +0100 |
commit | f2286ac963b111a567f090ee90eb79c44cf1889b (patch) | |
tree | 142296095a7a836e97b488153247eb5d156a0f98 | |
parent | a3269a0114c04d7918bf69dcb2398fc9c8e0f19e (diff) |
AE: rework streamsilence
-rw-r--r-- | system/settings/rbp.xml | 7 | ||||
-rw-r--r-- | system/settings/settings.xml | 1 | ||||
-rw-r--r-- | xbmc/cores/AudioEngine/AEFactory.cpp | 14 | ||||
-rw-r--r-- | xbmc/cores/AudioEngine/AEFactory.h | 2 | ||||
-rw-r--r-- | xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp | 2 | ||||
-rw-r--r-- | xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.h | 2 | ||||
-rw-r--r-- | xbmc/cores/AudioEngine/Engines/CoreAudio/CoreAudioAE.cpp | 2 | ||||
-rw-r--r-- | xbmc/cores/AudioEngine/Engines/PiAudio/PiAudioAE.cpp | 6 | ||||
-rw-r--r-- | xbmc/cores/AudioEngine/Engines/PiAudio/PiAudioAE.h | 2 | ||||
-rw-r--r-- | xbmc/cores/AudioEngine/Interfaces/AE.h | 2 | ||||
-rw-r--r-- | xbmc/settings/Settings.cpp | 3 |
11 files changed, 23 insertions, 20 deletions
diff --git a/system/settings/rbp.xml b/system/settings/rbp.xml index 866aed47ab..166314a202 100644 --- a/system/settings/rbp.xml +++ b/system/settings/rbp.xml @@ -65,13 +65,16 @@ </setting> <setting id="audiooutput.streamsilence"> <level>2</level> - <requirement>audiosupportsdrain</requirement> - <default>false</default> + <default>0</default> <dependencies> <dependency type="visible"> <condition on="property" name="aesettingvisible" setting="audiooutput.audiodevice">audiooutput.streamsilence</condition> </dependency> </dependencies> + <constraints> + <options>audiostreamsilence</options> + </constraints> + <control type="spinner" format="string" /> </setting> </group> <group id="2"> diff --git a/system/settings/settings.xml b/system/settings/settings.xml index b9f2ded5ba..a8eef1c83e 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml @@ -2049,7 +2049,6 @@ </setting> <setting id="audiooutput.streamsilence" type="integer" label="421" help="34111"> <level>1</level> - <requirement>audiosupportsdrain</requirement> <default>1</default> <constraints> <options>audiostreamsilence</options> diff --git a/xbmc/cores/AudioEngine/AEFactory.cpp b/xbmc/cores/AudioEngine/AEFactory.cpp index a5fc6e13c0..18288bc69d 100644 --- a/xbmc/cores/AudioEngine/AEFactory.cpp +++ b/xbmc/cores/AudioEngine/AEFactory.cpp @@ -262,10 +262,10 @@ bool CAEFactory::SupportsRaw(AEDataFormat format) return false; } -bool CAEFactory::SupportsDrain() +bool CAEFactory::SupportsSilenceTimeout() { if(AE) - return AE->SupportsDrain(); + return AE->SupportsSilenceTimeout(); return false; } @@ -377,10 +377,14 @@ void CAEFactory::SettingOptionsAudioStreamsilenceFiller(const CSetting *setting, list.push_back(std::make_pair(g_localizeStrings.Get(20422), XbmcThreads::EndTime::InfiniteValue)); list.push_back(std::make_pair(g_localizeStrings.Get(13551), 0)); - list.push_back(std::make_pair(StringUtils::Format(g_localizeStrings.Get(13554).c_str(), 1), 1)); - for (int i = 2; i <= 10; i++) + + if (AE->SupportsSilenceTimeout()) { - list.push_back(std::make_pair(StringUtils::Format(g_localizeStrings.Get(13555).c_str(), i), i)); + list.push_back(std::make_pair(StringUtils::Format(g_localizeStrings.Get(13554).c_str(), 1), 1)); + for (int i = 2; i <= 10; i++) + { + list.push_back(std::make_pair(StringUtils::Format(g_localizeStrings.Get(13555).c_str(), i), i)); + } } } diff --git a/xbmc/cores/AudioEngine/AEFactory.h b/xbmc/cores/AudioEngine/AEFactory.h index ccf57c1bcd..745ddc1333 100644 --- a/xbmc/cores/AudioEngine/AEFactory.h +++ b/xbmc/cores/AudioEngine/AEFactory.h @@ -54,7 +54,7 @@ public: static void VerifyOutputDevice(std::string &device, bool passthrough); static std::string GetDefaultDevice(bool passthrough); static bool SupportsRaw(AEDataFormat format); - static bool SupportsDrain(); + static bool SupportsSilenceTimeout(); /** * Returns true if current AudioEngine supports at lest two basic quality levels diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp index e5e4c5c1ca..0837b7cd8f 100644 --- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp +++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp @@ -2069,7 +2069,7 @@ bool CActiveAE::SupportsRaw(AEDataFormat format) return true; } -bool CActiveAE::SupportsDrain() +bool CActiveAE::SupportsSilenceTimeout() { return true; } diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.h b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.h index 1ac70310c7..e3e772a2ac 100644 --- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.h +++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.h @@ -215,7 +215,7 @@ public: virtual void EnumerateOutputDevices(AEDeviceList &devices, bool passthrough); virtual std::string GetDefaultDevice(bool passthrough); virtual bool SupportsRaw(AEDataFormat format); - virtual bool SupportsDrain(); + virtual bool SupportsSilenceTimeout(); virtual bool SupportsQualityLevel(enum AEQuality level); virtual bool IsSettingVisible(const std::string &settingId); diff --git a/xbmc/cores/AudioEngine/Engines/CoreAudio/CoreAudioAE.cpp b/xbmc/cores/AudioEngine/Engines/CoreAudio/CoreAudioAE.cpp index f067343ac4..d57dd5a3a7 100644 --- a/xbmc/cores/AudioEngine/Engines/CoreAudio/CoreAudioAE.cpp +++ b/xbmc/cores/AudioEngine/Engines/CoreAudio/CoreAudioAE.cpp @@ -766,7 +766,7 @@ void CCoreAudioAE::MixSounds(float *buffer, unsigned int samples) void CCoreAudioAE::GarbageCollect() { #if defined(TARGET_DARWIN_OSX) - if (CSettings::Get().GetBool("audiooutput.streamsilence")) + if (CSettings::Get().GetInt("audiooutput.streamsilence") != 0) return; if (!m_streamsPlaying && m_playing_sounds.empty()) diff --git a/xbmc/cores/AudioEngine/Engines/PiAudio/PiAudioAE.cpp b/xbmc/cores/AudioEngine/Engines/PiAudio/PiAudioAE.cpp index 5daa1ffd69..9eb46b7897 100644 --- a/xbmc/cores/AudioEngine/Engines/PiAudio/PiAudioAE.cpp +++ b/xbmc/cores/AudioEngine/Engines/PiAudio/PiAudioAE.cpp @@ -49,7 +49,7 @@ void CPiAudioAE::UpdateStreamSilence() { #if defined(TARGET_RASPBERRY_PI) bool enable = CSettings::Get().GetString("audiooutput.audiodevice") == "HDMI" && - CSettings::Get().GetBool("audiooutput.streamsilence"); + CSettings::Get().GetInt("audiooutput.streamsilence") != 0; char response[80] = ""; char command[80] = ""; sprintf(command, "force_audio hdmi %d", enable); @@ -129,9 +129,9 @@ bool CPiAudioAE::SupportsRaw(AEDataFormat format) return supported; } -bool CPiAudioAE::SupportsDrain() +bool CPiAudioAE::SupportsSilenceTimeout() { - return true; + return false; } void CPiAudioAE::OnSettingsChange(const std::string& setting) diff --git a/xbmc/cores/AudioEngine/Engines/PiAudio/PiAudioAE.h b/xbmc/cores/AudioEngine/Engines/PiAudio/PiAudioAE.h index 5eefdd8a53..4836ed6861 100644 --- a/xbmc/cores/AudioEngine/Engines/PiAudio/PiAudioAE.h +++ b/xbmc/cores/AudioEngine/Engines/PiAudio/PiAudioAE.h @@ -62,7 +62,7 @@ public: virtual bool IsSettingVisible(const std::string &settingId); virtual bool SupportsRaw(AEDataFormat format); - virtual bool SupportsDrain(); + virtual bool SupportsSilenceTimeout(); virtual void OnLostDevice() {} virtual void OnResetDevice() {} diff --git a/xbmc/cores/AudioEngine/Interfaces/AE.h b/xbmc/cores/AudioEngine/Interfaces/AE.h index e60aa664cc..d2f895cddc 100644 --- a/xbmc/cores/AudioEngine/Interfaces/AE.h +++ b/xbmc/cores/AudioEngine/Interfaces/AE.h @@ -209,7 +209,7 @@ public: * Returns true if the AudioEngine supports drain mode which is not streaming silence when idle * @returns true if the AudioEngine is capable of drain mode */ - virtual bool SupportsDrain() { return false; } + virtual bool SupportsSilenceTimeout() { return false; } virtual void RegisterAudioCallback(IAudioCallback* pCallback) {} diff --git a/xbmc/settings/Settings.cpp b/xbmc/settings/Settings.cpp index b73bdda0e6..72c8700426 100644 --- a/xbmc/settings/Settings.cpp +++ b/xbmc/settings/Settings.cpp @@ -797,9 +797,6 @@ void CSettings::InitializeConditions() if (g_application.IsStandAlone()) m_settingsManager->AddCondition("isstandalone"); - if (CAEFactory::SupportsDrain()) - m_settingsManager->AddCondition("audiosupportsdrain"); - if(CAEFactory::SupportsQualitySetting()) m_settingsManager->AddCondition("has_ae_quality_levels"); |