kodi
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(
44  const std::shared_ptr<const CPVRChannelGroupMember>& groupMember) const override;
45 
49  bool AppendToGroup(const std::shared_ptr<const CPVRChannelGroupMember>& groupMember) override;
50 
54  bool RemoveFromGroup(const std::shared_ptr<const CPVRChannelGroupMember>& groupMember) override;
55 
59  void CheckGroupName();
60 
65  bool SupportsDelete() const override { return false; }
66 
71  bool IsChannelsOwner() const override { return true; }
72 
73 protected:
79  std::vector<std::shared_ptr<CPVRChannelGroupMember>> RemoveDeletedGroupMembers(
80  const std::vector<std::shared_ptr<CPVRChannelGroupMember>>& groupMembers) override;
81 
87  bool UpdateFromClients(const std::vector<std::shared_ptr<CPVRClient>>& clients) override;
88 
89 private:
93  int GroupType() const override { return PVR_GROUP_TYPE_ALL_CHANNELS; }
94 };
95 } // namespace PVR
bool RemoveFromGroup(const std::shared_ptr< const CPVRChannelGroupMember > &groupMember) override
Definition: PVRChannelGroupAllChannels.cpp:144
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
Definition: PVRChannelsPath.h:17
bool AppendToGroup(const std::shared_ptr< const CPVRChannelGroupMember > &groupMember) override
Definition: PVRChannelGroupAllChannels.cpp:132
bool SupportsDelete() const override
Check whether this group could be deleted by the user.
Definition: PVRChannelGroupAllChannels.h:65
bool IsGroupMember(const std::shared_ptr< const CPVRChannelGroupMember > &groupMember) const override
Definition: PVRChannelGroupAllChannels.cpp:156
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 IsChannelsOwner() const override
Check whether this group is owner of the channel instances it contains.
Definition: PVRChannelGroupAllChannels.h:71
Definition: PVRChannelGroupFromUser.h:16
void CheckGroupName()
Check whether the group name is still correct after the language setting changed. ...
Definition: PVRChannelGroupAllChannels.cpp:46