Skip to content

Commit

Permalink
Merge pull request xbmc#6163 from Montellese/fix_audio_settings_volum…
Browse files Browse the repository at this point in the history
…e_passthrough

CGUIDialogAudioSubtitleSettings: enable volume and volume amplification settings when passthrough is enabled but playback is not using passthrough
  • Loading branch information
Montellese committed Feb 12, 2015
2 parents c096e7e + b6da744 commit 028c55c
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 2 deletions.
13 changes: 11 additions & 2 deletions xbmc/video/dialogs/GUIDialogAudioSubtitleSettings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -300,9 +300,13 @@ void CGUIDialogAudioSubtitleSettings::InitializeSettings()
g_application.m_pPlayer->GetSubtitleCapabilities(m_subCaps);
}

// register IsPlayingPassthrough condition
m_settingsManager->AddCondition("IsPlayingPassthrough", IsPlayingPassthrough);

CSettingDependency dependencyAudioOutputPassthroughDisabled(SettingDependencyTypeEnable, m_settingsManager);
dependencyAudioOutputPassthroughDisabled.And()
->Add(CSettingDependencyConditionPtr(new CSettingDependencyCondition(SETTING_AUDIO_PASSTHROUGH, "false", SettingDependencyOperatorEquals, false, m_settingsManager)));
dependencyAudioOutputPassthroughDisabled.Or()
->Add(CSettingDependencyConditionPtr(new CSettingDependencyCondition(SETTING_AUDIO_PASSTHROUGH, "false", SettingDependencyOperatorEquals, false, m_settingsManager)))
->Add(CSettingDependencyConditionPtr(new CSettingDependencyCondition("IsPlayingPassthrough", "", "", true, m_settingsManager)));
SettingDependencies depsAudioOutputPassthroughDisabled;
depsAudioOutputPassthroughDisabled.push_back(dependencyAudioOutputPassthroughDisabled);

Expand Down Expand Up @@ -413,6 +417,11 @@ void CGUIDialogAudioSubtitleSettings::AddSubtitleStreams(CSettingGroup *group, c
AddSpinner(group, settingId, 462, 0, m_subtitleStream, SubtitleStreamsOptionFiller);
}

bool CGUIDialogAudioSubtitleSettings::IsPlayingPassthrough(const std::string &condition, const std::string &value, const CSetting *setting)
{
return g_application.m_pPlayer->IsPassthrough();
}

void CGUIDialogAudioSubtitleSettings::AudioStreamsOptionFiller(const CSetting *setting, std::vector< std::pair<std::string, int> > &list, int &current, void *data)
{
int audioStreamCount = g_application.m_pPlayer->GetAudioStreamCount();
Expand Down
2 changes: 2 additions & 0 deletions xbmc/video/dialogs/GUIDialogAudioSubtitleSettings.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ class CGUIDialogAudioSubtitleSettings : public CGUIDialogSettingsManualBase
void AddAudioStreams(CSettingGroup *group, const std::string &settingId);
void AddSubtitleStreams(CSettingGroup *group, const std::string &settingId);

static bool IsPlayingPassthrough(const std::string &condition, const std::string &value, const CSetting *setting);

static void AudioStreamsOptionFiller(const CSetting *setting, std::vector< std::pair<std::string, int> > &list, int &current, void *data);
static void SubtitleStreamsOptionFiller(const CSetting *setting, std::vector< std::pair<std::string, int> > &list, int &current, void *data);

Expand Down

0 comments on commit 028c55c

Please sign in to comment.