xbmc
PVRChannelGroupAllChannels.h
1 /*
2  * Copyright (C) 2012-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 "pvr/channels/PVRChannelGroupFromUser.h"
12 
13 #include <memory>
14 #include <vector>
15 
16 namespace PVR
17 {
18 class CPVRChannel;
19 class CPVRChannelNumber;
20 
22 {
23 public:
24  CPVRChannelGroupAllChannels() = delete;
25 
30  explicit CPVRChannelGroupAllChannels(bool bRadio);
31 
36  explicit CPVRChannelGroupAllChannels(const CPVRChannelsPath& path);
37 
38  ~CPVRChannelGroupAllChannels() override;
39 
43  bool IsGroupMember(const std::shared_ptr<CPVRChannelGroupMember>& groupMember) const override;
44 
48  bool AppendToGroup(const std::shared_ptr<CPVRChannelGroupMember>& groupMember) override;
49 
53  bool RemoveFromGroup(const std::shared_ptr<CPVRChannelGroupMember>& groupMember) override;
54 
58  void CheckGroupName();
59 
64  bool SupportsDelete() const override { return false; }
65 
70  bool IsChannelsOwner() const override { return true; }
71 
72 protected:
78  std::vector<std::shared_ptr<CPVRChannelGroupMember>> RemoveDeletedGroupMembers(
79  const std::vector<std::shared_ptr<CPVRChannelGroupMember>>& groupMembers) override;
80 
86  bool UpdateFromClients(const std::vector<std::shared_ptr<CPVRClient>>& clients) override;
87 
88 private:
92  int GroupType() const override { return PVR_GROUP_TYPE_ALL_CHANNELS; }
93 };
94 } // namespace PVR
Definition: ContextMenuManager.h:24
std::vector< std::shared_ptr< CPVRChannelGroupMember > > RemoveDeletedGroupMembers(const std::vector< std::shared_ptr< CPVRChannelGroupMember >> &groupMembers) override
Remove deleted group members from this group. Delete stale channels.
Definition: PVRChannelGroupAllChannels.cpp:75
bool IsGroupMember(const std::shared_ptr< CPVRChannelGroupMember > &groupMember) const override
Definition: PVRChannelGroupAllChannels.cpp:156
Definition: PVRChannelsPath.h:17
bool SupportsDelete() const override
Check whether this group could be deleted by the user.
Definition: PVRChannelGroupAllChannels.h:64
Definition: PVRChannelGroupAllChannels.h:21
bool UpdateFromClients(const std::vector< std::shared_ptr< CPVRClient >> &clients) override
Update data with &#39;all channels&#39; group members from the given clients, sync with local data...
Definition: PVRChannelGroupAllChannels.cpp:55
bool RemoveFromGroup(const std::shared_ptr< CPVRChannelGroupMember > &groupMember) override
Definition: PVRChannelGroupAllChannels.cpp:144
bool IsChannelsOwner() const override
Check whether this group is owner of the channel instances it contains.
Definition: PVRChannelGroupAllChannels.h:70
Definition: PVRChannelGroupFromUser.h:16
bool AppendToGroup(const std::shared_ptr< CPVRChannelGroupMember > &groupMember) override
Definition: PVRChannelGroupAllChannels.cpp:132
void CheckGroupName()
Check whether the group name is still correct after the language setting changed. ...
Definition: PVRChannelGroupAllChannels.cpp:46