diff options
Diffstat (limited to '')
-rw-r--r-- | xbmc/video/dialogs/GUIDialogAudioSettings.h | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/xbmc/video/dialogs/GUIDialogAudioSettings.h b/xbmc/video/dialogs/GUIDialogAudioSettings.h new file mode 100644 index 0000000..de69b77 --- /dev/null +++ b/xbmc/video/dialogs/GUIDialogAudioSettings.h @@ -0,0 +1,82 @@ +/* + * Copyright (C) 2005-2018 Team Kodi + * This file is part of Kodi - https://kodi.tv + * + * SPDX-License-Identifier: GPL-2.0-or-later + * See LICENSES/README.md for more information. + */ + +#pragma once + +#include "cores/VideoPlayer/Interface/StreamInfo.h" +#include "settings/dialogs/GUIDialogSettingsManualBase.h" + +#include <string> +#include <utility> +#include <vector> + +class CVariant; +struct IntegerSettingOption; + +class CGUIDialogAudioSettings : public CGUIDialogSettingsManualBase +{ +public: + CGUIDialogAudioSettings(); + ~CGUIDialogAudioSettings() override; + + // specialization of CGUIWindow + void FrameMove() override; + + static std::string FormatDelay(float value, float interval); + static std::string FormatDecibel(float value); + static std::string FormatPercentAsDecibel(float value); + +protected: + // implementations of ISettingCallback + void OnSettingChanged(const std::shared_ptr<const CSetting>& setting) override; + void OnSettingAction(const std::shared_ptr<const CSetting>& setting) override; + + // specialization of CGUIDialogSettingsBase + bool AllowResettingSettings() const override { return false; } + bool Save() override; + void SetupView() override; + + // specialization of CGUIDialogSettingsManualBase + void InitializeSettings() override; + + bool SupportsAudioFeature(int feature); + + void AddAudioStreams(const std::shared_ptr<CSettingGroup>& group, const std::string& settingId); + + static bool IsPlayingPassthrough(const std::string& condition, + const std::string& value, + const std::shared_ptr<const CSetting>& setting, + void* data); + + static void AudioStreamsOptionFiller(const std::shared_ptr<const CSetting>& setting, + std::vector<IntegerSettingOption>& list, + int& current, + void* data); + + static std::string SettingFormatterDelay( + const std::shared_ptr<const CSettingControlSlider>& control, + const CVariant& value, + const CVariant& minimum, + const CVariant& step, + const CVariant& maximum); + static std::string SettingFormatterPercentAsDecibel( + const std::shared_ptr<const CSettingControlSlider>& control, + const CVariant& value, + const CVariant& minimum, + const CVariant& step, + const CVariant& maximum); + + float m_volume; + int m_audioStream; + bool m_passthrough = false; + + typedef std::vector<int> Features; + Features m_audioCaps; +private: + static std::string FormatFlags(StreamFlags flags); +}; |