1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- //
- // Created by Tobias Hieta on 21/08/15.
- //
- #include "AudioSettingsController.h"
- #include "SettingsComponent.h"
- #include "SettingsSection.h"
- #include "PlayerComponent.h"
- /////////////////////////////////////////////////////////////////////////////////////////
- AudioSettingsController::AudioSettingsController(QObject* parent) : QObject(parent)
- {
- SettingsSection* audioSection = SettingsComponent::Get().getSection(SETTINGS_SECTION_AUDIO);
- connect(audioSection, &SettingsSection::valuesUpdated, this, &AudioSettingsController::valuesUpdated);
- }
- /////////////////////////////////////////////////////////////////////////////////////////
- void AudioSettingsController::setHiddenPassthrough(const QStringList& codecs, bool hidden)
- {
- SettingsSection* audioSection = SettingsComponent::Get().getSection(SETTINGS_SECTION_AUDIO);
- for(const QString& codec : codecs)
- audioSection->setValueHidden("passthrough." + codec, hidden);
- }
- /////////////////////////////////////////////////////////////////////////////////////////
- void AudioSettingsController::valuesUpdated(const QVariantMap& values)
- {
- SettingsSection* audioSection = SettingsComponent::Get().getSection(SETTINGS_SECTION_AUDIO);
- auto prevDescriptions = audioSection->descriptions();
- QString type = SettingsComponent::Get().value(SETTINGS_SECTION_AUDIO, "devicetype").toString();
- audioSection->setValueHidden("channels", false);
- if (type == AUDIO_DEVICE_TYPE_BASIC)
- {
- setHiddenPassthrough(PlayerComponent::AudioCodecsAll(), true);
- }
- else if (type == AUDIO_DEVICE_TYPE_HDMI)
- {
- setHiddenPassthrough(PlayerComponent::AudioCodecsAll(), false);
- }
- else if (type == AUDIO_DEVICE_TYPE_SPDIF)
- {
- setHiddenPassthrough(PlayerComponent::AudioCodecsAll(), true);
- setHiddenPassthrough(PlayerComponent::AudioCodecsSPDIF(), false);
- audioSection->setValueHidden("channels", true);
- }
- auto newDescriptions = audioSection->descriptions();
- if (prevDescriptions != newDescriptions)
- emit settingsUpdated(SETTINGS_SECTION_AUDIO, newDescriptions);
- }
|