xbmc
PVRChannelGroupSettings.h
1 /*
2  * Copyright (C) 2012-2021 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 "pvr/settings/PVRSettings.h"
12 #include "settings/lib/ISettingCallback.h"
13 
14 #include <memory>
15 #include <set>
16 
17 namespace PVR
18 {
19 
21 {
22 public:
23  virtual ~IChannelGroupSettingsCallback() = default;
24 
25  virtual void UseBackendChannelOrderChanged() {}
26  virtual void UseBackendChannelNumbersChanged() {}
27  virtual void StartGroupChannelNumbersFromOneChanged() {}
28 };
29 
31 {
32 public:
34  virtual ~CPVRChannelGroupSettings();
35 
36  void OnSettingChanged(const std::shared_ptr<const CSetting>& setting) override;
37 
38  void RegisterCallback(IChannelGroupSettingsCallback* callback);
39  void UnregisterCallback(IChannelGroupSettingsCallback* callback);
40 
41  bool UseBackendChannelOrder() const { return m_bUseBackendChannelOrder; }
42  bool UseBackendChannelNumbers() const { return m_bUseBackendChannelNumbers; }
43  bool StartGroupChannelNumbersFromOne() const { return m_bStartGroupChannelNumbersFromOne; }
44 
45 private:
46  bool UpdateUseBackendChannelOrder();
47  bool UpdateUseBackendChannelNumbers();
48  bool UpdateStartGroupChannelNumbersFromOne();
49 
50  bool m_bUseBackendChannelOrder = false;
51  bool m_bUseBackendChannelNumbers = false;
52  bool m_bStartGroupChannelNumbersFromOne = false;
53 
54  CPVRSettings m_settings;
55  std::set<IChannelGroupSettingsCallback*> m_callbacks;
56 };
57 
58 } // namespace PVR
Definition: ContextMenuManager.h:24
Definition: ISettingCallback.h:16
Definition: PVRChannelGroupSettings.h:30
Definition: PVRChannelGroupSettings.h:20
Definition: PVRSettings.h:27