xbmc
GUIDialogSubtitleSettings.h
1 /*
2  * Copyright (C) 2005-2018 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include "cores/VideoPlayer/Interface/StreamInfo.h"
12 #include "settings/dialogs/GUIDialogSettingsManualBase.h"
13 
14 #include <string>
15 #include <utility>
16 #include <vector>
17 
18 class CVariant;
20 
22 {
23 public:
25  ~CGUIDialogSubtitleSettings() override;
26  bool OnMessage(CGUIMessage& message) override;
27 
28  // specialization of CGUIWindow
29  void FrameMove() override;
30 
31  static std::string BrowseForSubtitle();
32 
33 protected:
34  // implementations of ISettingCallback
35  void OnSettingChanged(const std::shared_ptr<const CSetting>& setting) override;
36  void OnSettingAction(const std::shared_ptr<const CSetting>& setting) override;
37 
38  // specialization of CGUIDialogSettingsBase
39  bool AllowResettingSettings() const override { return false; }
40  bool Save() override;
41  void SetupView() override;
42 
43  // specialization of CGUIDialogSettingsManualBase
44  void InitializeSettings() override;
45 
46 private:
47  bool SupportsSubtitleFeature(int feature);
48 
49  void AddSubtitleStreams(const std::shared_ptr<CSettingGroup>& group,
50  const std::string& settingId);
51 
52  int m_subtitleStream;
53  bool m_subtitleVisible;
54  std::shared_ptr<CSettingInt> m_subtitleStreamSetting;
55 
56  std::vector<int> m_subtitleCapabilities;
57  static std::string FormatFlags(StreamFlags flags);
58 
59  static void SubtitleStreamsOptionFiller(const std::shared_ptr<const CSetting>& setting,
60  std::vector<IntegerSettingOption>& list,
61  int& current,
62  void* data);
63 
64  static std::string SettingFormatterDelay(
65  const std::shared_ptr<const CSettingControlSlider>& control,
66  const CVariant& value,
67  const CVariant& minimum,
68  const CVariant& step,
69  const CVariant& maximum);
70 };
void OnSettingChanged(const std::shared_ptr< const CSetting > &setting) override
The value of the given setting has changed.
Definition: GUIDialogSubtitleSettings.cpp:88
void OnSettingAction(const std::shared_ptr< const CSetting > &setting) override
The given setting has been activated.
Definition: GUIDialogSubtitleSettings.cpp:173
Definition: Variant.h:29
Definition: SettingDefinitions.h:66
void FrameMove() override
Main update function, called every frame prior to rendering Any window that requires updating on a fr...
Definition: GUIDialogSubtitleSettings.cpp:60
Definition: GUIMessage.h:365
Definition: SmartPlayList.cpp:137
Definition: GUIDialogSubtitleSettings.h:21
Definition: GUIDialogSettingsManualBase.h:37