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 SyncChannelGroupsChanged() {}
26  virtual void UseBackendChannelOrderChanged() {}
27  virtual void UseBackendChannelNumbersChanged() {}
28  virtual void StartGroupChannelNumbersFromOneChanged() {}
29 };
30 
32 {
33 public:
35  virtual ~CPVRChannelGroupSettings();
36 
37  void OnSettingChanged(const std::shared_ptr<const CSetting>& setting) override;
38 
39  void RegisterCallback(IChannelGroupSettingsCallback* callback);
40  void UnregisterCallback(IChannelGroupSettingsCallback* callback);
41 
42  bool SyncChannelGroups() const { return m_bSyncChannelGroups; }
43  bool UseBackendChannelOrder() const { return m_bUseBackendChannelOrder; }
44  bool UseBackendChannelNumbers() const { return m_bUseBackendChannelNumbers; }
45  bool StartGroupChannelNumbersFromOne() const { return m_bStartGroupChannelNumbersFromOne; }
46 
47 private:
48  bool UpdateSyncChannelGroups();
49  bool UpdateUseBackendChannelOrder();
50  bool UpdateUseBackendChannelNumbers();
51  bool UpdateStartGroupChannelNumbersFromOne();
52 
53  bool m_bSyncChannelGroups = false;
54  bool m_bUseBackendChannelOrder = false;
55  bool m_bUseBackendChannelNumbers = false;
56  bool m_bStartGroupChannelNumbersFromOne = false;
57 
58  CPVRSettings m_settings;
59  std::set<IChannelGroupSettingsCallback*> m_callbacks;
60 };
61 
62 } // namespace PVR
Definition: ContextMenuManager.h:24
Definition: ISettingCallback.h:16
Definition: PVRChannelGroupSettings.h:31
Definition: PVRChannelGroupSettings.h:20
Definition: PVRSettings.h:27