Ejemplo n.º 1
0
bool CGUIWindowPVRBase::ActionPlayEpg(CFileItem *item)
{
    if (!item || !item->HasEPGInfoTag())
        return false;

    CPVRChannelPtr channel;
    CEpgInfoTag *epgTag = item->GetEPGInfoTag();
    if (epgTag->HasPVRChannel())
        channel = epgTag->ChannelTag();

    if (!channel || !g_PVRManager.CheckParentalLock(*channel))
        return false;

    CFileItem fileItem;
    if (epgTag->HasRecording())
        fileItem = CFileItem(*epgTag->Recording());
    else
        fileItem = CFileItem(*channel);

    g_application.SwitchToFullScreen();
    if (!PlayFile(&fileItem))
    {
        // CHANNELNAME could not be played. Check the log for details.
        std::string msg = StringUtils::Format(g_localizeStrings.Get(19035).c_str(), channel->ChannelName().c_str());
        CGUIDialogOK::ShowAndGetInput(19033, 0, msg, 0);
        return false;
    }

    return true;
}
Ejemplo n.º 2
0
bool CGUIDialogPVRGuideInfo::OnClickButtonSwitch(CGUIMessage &message)
{
  bool bReturn = false;

  if (message.GetSenderId() == CONTROL_BTN_SWITCH)
  {
    Close();
    PlayBackRet ret = PLAYBACK_CANCELED;
    CEpgInfoTag *epgTag = m_progItem->GetEPGInfoTag();

    if (epgTag)
    {
      if (epgTag->HasRecording())
        ret = g_application.PlayFile(CFileItem(*epgTag->Recording()));
      else if (epgTag->HasPVRChannel())
        ret = g_application.PlayFile(CFileItem(*epgTag->ChannelTag()));
    }
    else
      ret = PLAYBACK_FAIL;

    if (ret == PLAYBACK_FAIL)
    {
      CStdString msg = StringUtils::Format(g_localizeStrings.Get(19035).c_str(), g_localizeStrings.Get(19029).c_str()); // Channel could not be played. Check the log for details.
      CGUIDialogOK::ShowAndGetInput(19033, 0, msg, 0);
    }
    else if (ret == PLAYBACK_OK)
    {
      bReturn = true;
    }
  }

  return bReturn;
}