2 * Copyright (C) 2005-2018 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
11 #include "cores/VideoPlayer/Interface/StreamInfo.h"
12 #include "settings/dialogs/GUIDialogSettingsManualBase.h"
18 enum class IPlayerSubtitleCaps
;
20 struct IntegerSettingOption
;
22 class CGUIDialogSubtitleSettings
: public CGUIDialogSettingsManualBase
25 CGUIDialogSubtitleSettings();
26 ~CGUIDialogSubtitleSettings() override
;
27 bool OnMessage(CGUIMessage
& message
) override
;
29 // specialization of CGUIWindow
30 void FrameMove() override
;
32 static std::string
BrowseForSubtitle();
35 // implementations of ISettingCallback
36 void OnSettingChanged(const std::shared_ptr
<const CSetting
>& setting
) override
;
37 void OnSettingAction(const std::shared_ptr
<const CSetting
>& setting
) override
;
39 // specialization of CGUIDialogSettingsBase
40 bool AllowResettingSettings() const override
{ return false; }
42 void SetupView() override
;
44 // specialization of CGUIDialogSettingsManualBase
45 void InitializeSettings() override
;
48 bool SupportsSubtitleFeature(IPlayerSubtitleCaps feature
);
50 void AddSubtitleStreams(const std::shared_ptr
<CSettingGroup
>& group
,
51 const std::string
& settingId
);
54 bool m_subtitleVisible
;
55 std::shared_ptr
<CSettingInt
> m_subtitleStreamSetting
;
57 std::vector
<IPlayerSubtitleCaps
> m_subtitleCapabilities
;
58 static std::string
FormatFlags(StreamFlags flags
);
60 static void SubtitleStreamsOptionFiller(const std::shared_ptr
<const CSetting
>& setting
,
61 std::vector
<IntegerSettingOption
>& list
,
65 static std::string
SettingFormatterDelay(
66 const std::shared_ptr
<const CSettingControlSlider
>& control
,
67 const CVariant
& value
,
68 const CVariant
& minimum
,
70 const CVariant
& maximum
);