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:103
Definition PeripheralUtils.h:48
@ PVR_ERROR_NO_ERROR
0 : No error occurred.
Definition pvr_general.h:37

◆ 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);
}
}
}
}
...
Definition ChannelGroups.h:148
Definition ChannelGroups.h:237

◆ TriggerChannelGroupsUpdate()

void TriggerChannelGroupsUpdate ( )
inline

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

Remarks
Only called from addon itself