bool CPVRManager::ChannelUpDown(unsigned int *iNewChannelNumber, bool bPreview, bool bUp) { bool bReturn = false; if (IsPlayingTV() || IsPlayingRadio()) { CFileItem currentFile(g_application.CurrentFileItem()); CPVRChannel *currentChannel = currentFile.GetPVRChannelInfoTag(); CPVRChannelGroupPtr group = GetPlayingGroup(currentChannel->IsRadio()); if (group) { CFileItemPtr newChannel = bUp ? group->GetByChannelUp(*currentChannel) : group->GetByChannelDown(*currentChannel); if (newChannel && newChannel->HasPVRChannelInfoTag() && PerformChannelSwitch(*newChannel->GetPVRChannelInfoTag(), bPreview)) { *iNewChannelNumber = newChannel->GetPVRChannelInfoTag()->ChannelNumber(); bReturn = true; } } } return bReturn; }