Kodi Development 22.0
for Binary and Script based Add-Ons
 
Loading...
Searching...
No Matches
3. Channel Groups (optional)

Detailed Description

Bring in this functions if you have set supportsChannelGroups to true
This is used to divide available addon channels into groups, which can then be selected by the user.


Channel group parts in interface:
Copy this to your project and extend with your parts or leave functions complete away where not used or supported.

Function Documentation

◆ GetChannelGroupsAmount()

virtual PVR_ERROR GetChannelGroupsAmount ( int & amount)
inlinevirtual

Get the total amount of channel groups on the backend if it supports channel groups.

Parameters
[out]amountThe total amount of channel groups on the backend
Returns
PVR_ERROR_NO_ERROR if the amount has been fetched successfully.
Remarks
Required if supportsChannelGroups is set to true.

◆ GetChannelGroups()

virtual PVR_ERROR GetChannelGroups ( bool radio,
kodi::addon::PVRChannelGroupsResultSet & results )
inlinevirtual

Get a list of available channel groups on addon.

Request the list of all channel groups from the backend if it supports channel groups.

Parameters
[in]radioTrue to get the radio channel groups, false to get the TV channel groups.
[out]resultsList of available groups on addon defined with class PVRChannelGroup, them transferred with class PVRChannelGroupsResultSet.
Returns
PVR_ERROR_NO_ERROR if the list has been fetched successfully.

The following table contains values that can be set with class PVRChannelGroup :

Name Type Set call Get call Usage
Group name std::string SetGroupName GetGroupName required to set
Is radio bool SetIsRadio GetIsRadio required to set
Position unsigned int SetPosition GetPosition optional

Remarks
Required if supportsChannelGroups is set to true.

Example:

...
PVR_ERROR CMyPVRInstance::GetChannelGroups(bool radio, kodi::addon::PVRChannelGroupsResultSet& groups)
{
group.SetIsRadio(false);
group.SetGroupName("My group name");
group.SetPosition(1);
...
// Give it now to Kodi
results.Add(group);
}
...
Definition ChannelGroups.h:38
Definition ChannelGroups.h:113
void SetPosition(unsigned int position)
optional Sort position of the group (0 indicates that the backend doesn't support sorting of groups).
Definition ChannelGroups.h:84
void SetIsRadio(bool isRadio)
required true If this is a radio channel group, false otherwise.
Definition ChannelGroups.h:76
void SetGroupName(const std::string &groupName)
required Name of this channel group.
Definition ChannelGroups.h:63
@ PVR_ERROR_NO_ERROR
0 : No error occurred.
Definition pvr_general.h:38

◆ GetChannelGroupMembers()

virtual PVR_ERROR GetChannelGroupMembers ( const kodi::addon::PVRChannelGroup & group,
kodi::addon::PVRChannelGroupMembersResultSet & results )
inlinevirtual

Get a list of members on a group.

Request the list of all group members of a group from the backend if it supports channel groups.

Parameters
[in]groupThe group to get the members for.
[out]resultsList of available group member channels defined with class PVRChannelGroupMember, them transferred with PVRChannelGroupMembersResultSet.
Returns
PVR_ERROR_NO_ERROR if the list has been fetched successfully.

The following table contains values that can be set with class PVRChannelGroupMember :

Name Type Set call Get call Usage
Group name std::string SetGroupName GetGroupName required to set
Channel unique id unsigned int SetChannelUniqueId GetChannelUniqueId required to set
Channel Number unsigned int SetChannelNumber GetChannelNumber optional
Sub channel number unsigned int SetSubChannelNumber GetSubChannelNumber optional
Order int SetOrder GetOrder optional

Remarks
Required if supportsChannelGroups is set to true.

Example:

...
PVR_ERROR CMyPVRInstance::GetChannelGroupMembers(const kodi::addon::PVRChannelGroup& group,
{
for (const auto& myGroup : m_myGroups)
{
if (myGroup.strGroupName == group.GetGroupName())
{
for (unsigned int iChannelPtr = 0; iChannelPtr < myGroup.members.size(); iChannelPtr++)
{
int iId = myGroup.members.at(iChannelPtr) - 1;
if (iId < 0 || iId > (int)m_channels.size() - 1)
continue;
PVRDemoChannel &channel = m_channels.at(iId);
kodiGroupMember.SetGroupName(group.GetGroupName());
kodiGroupMember.SetChannelUniqueId(channel.iUniqueId);
kodiGroupMember.SetChannelNumber(channel.iChannelNumber);
kodiGroupMember.SetSubChannelNumber(channel.iSubChannelNumber);
results.Add(kodiGroupMember);
}
}
}
}
...
Definition ChannelGroups.h:159
Definition ChannelGroups.h:259
std::string GetGroupName() const
To get with SetGroupName changed values.
Definition ChannelGroups.h:69
void SetChannelNumber(unsigned int channelNumber)
optional Channel number within the group.
Definition ChannelGroups.h:209
void SetSubChannelNumber(unsigned int subChannelNumber)
optional Sub channel number within the group (ATSC).
Definition ChannelGroups.h:219
void SetChannelUniqueId(unsigned int channelUniqueId)
required Unique id of the member.
Definition ChannelGroups.h:199
void SetGroupName(const std::string &groupName)
required Name of the channel group to add the channel to.
Definition ChannelGroups.h:186
void Add(const kodi::addon::PVRChannelGroupMember &tag)
To add and give content from addon to Kodi on related call.
Definition ChannelGroups.h:275

◆ TriggerChannelGroupsUpdate()

void TriggerChannelGroupsUpdate ( )
inline

Callback to Kodi Function
Request Kodi to update it's list of channel groups.

Remarks
Only called from addon itself