Ticket #4807: save_last_chan2.diff

File save_last_chan2.diff, 2.1 KB (added by Mark Buechler <Mark.Buechler@…>, 13 years ago)

Make sure the channel IsTunable?() before using it.

  • tv_play.cpp

    old new void TV::HandleStateChange(void) 
    15011501        lockTimerOn = false;
    15021502
    15031503        SET_NEXT();
    1504         recorder->SpawnLiveTV(tvchain->GetID(), false, "");
     1504
     1505        uint chanid = gContext->GetNumSetting("DefaultChanid", 0);
     1506
     1507        if (chanid && !IsTunable(chanid))
     1508            chanid = 0;
     1509
     1510        if (chanid)
     1511        {
     1512            QStringList reclist;
     1513            QString channum;
     1514
     1515            MSqlQuery query(MSqlQuery::InitCon());
     1516            query.prepare("SELECT channum FROM channel "
     1517                          "WHERE chanid = :CHANID");
     1518            query.bindValue(":CHANID", chanid);
     1519            if (query.exec() && query.isActive() && query.size() > 0 && query.next())
     1520                channum = query.value(0).toString();
     1521            else
     1522                channum = QString::number(chanid);
     1523
     1524            bool getit = activerecorder->ShouldSwitchToAnotherCard(
     1525                QString::number(chanid));
     1526
     1527            if (getit)
     1528                reclist = GetValidRecorderList(chanid, channum);
     1529
     1530            if (reclist.size())
     1531            {
     1532                RemoteEncoder *testrec = NULL;
     1533                testrec = RemoteRequestFreeRecorderFromList(reclist);
     1534                if (testrec && testrec->IsValidRecorder())
     1535                {
     1536                    recorder = testrec;
     1537                    recorder->Setup();
     1538                    recorder->SpawnLiveTV(tvchain->GetID(), false, channum);
     1539                }
     1540            }
     1541            else
     1542                chanid = 0;
     1543        }
     1544
     1545        if (!chanid)
     1546            recorder->SpawnLiveTV(tvchain->GetID(), false, "");
    15051547
    15061548        tvchain->ReloadAll();
    15071549
  • NuppelVideoPlayer.cpp

    old new int NuppelVideoPlayer::OpenFile(bool ski 
    11631163
    11641164    bookmarkseek = GetBookmark();
    11651165
     1166    gContext->SaveSetting("DefaultChanid", m_playbackinfo->chanid);
     1167
    11661168    return IsErrored() ? -1 : 0;
    11671169}
    11681170