Ticket #4807: save_chanid.diff

File save_chanid.diff, 2.5 KB (added by Mark.Buechler@…, 10 years ago)

Updated patch against trunk.

  • libs/libmythtv/tv_play.cpp

     
    19421942        lockTimerOn = false;
    19431943
    19441944        SET_NEXT();
     1945
     1946        uint chanid = gCoreContext->GetNumSetting("DefaultChanid", 0);
     1947
     1948        if (chanid && !IsTunable(ctx, chanid))
     1949            chanid = 0;
     1950
     1951        QString channum = "";
     1952
     1953        if (chanid)
     1954        {
     1955            QStringList reclist;
     1956
     1957            MSqlQuery query(MSqlQuery::InitCon());
     1958            query.prepare("SELECT channum FROM channel "
     1959                          "WHERE chanid = :CHANID");
     1960            query.bindValue(":CHANID", chanid);
     1961            if (query.exec() && query.isActive() && query.size() > 0 && query.next())
     1962                channum = query.value(0).toString();
     1963            else
     1964                channum = QString::number(chanid);
     1965
     1966            bool getit = ctx->recorder->ShouldSwitchToAnotherCard(
     1967                QString::number(chanid));
     1968
     1969            if (getit)
     1970                reclist = ChannelUtil::GetValidRecorderList(chanid, channum);
     1971
     1972            if (reclist.size())
     1973            {
     1974                RemoteEncoder *testrec = NULL;
     1975                testrec = RemoteRequestFreeRecorderFromList(reclist);
     1976                if (testrec && testrec->IsValidRecorder())
     1977                {
     1978                    ctx->SetRecorder(testrec);
     1979                    ctx->recorder->Setup();
     1980                }
     1981            }
     1982            else if (getit)
     1983                chanid = 0;
     1984        }
     1985
    19451986        VERBOSE(VB_IMPORTANT, "Spawning LiveTV Recorder -- begin");
    1946         ctx->recorder->SpawnLiveTV(ctx->tvchain->GetID(), false, "");
     1987
     1988        if (chanid && !channum.isEmpty())
     1989            ctx->recorder->SpawnLiveTV(ctx->tvchain->GetID(), false, channum);
     1990        else
     1991            ctx->recorder->SpawnLiveTV(ctx->tvchain->GetID(), false, "");
     1992
    19471993        VERBOSE(VB_IMPORTANT, "Spawning LiveTV Recorder -- end");
    19481994
    19491995        if (!ctx->ReloadTVChain())
  • libs/libmythtv/mythplayer.cpp

     
    10121012
    10131013    bookmarkseek = GetBookmark();
    10141014
     1015    if (player_ctx->playingInfo->QueryAutoExpire() == kLiveTVAutoExpire)
     1016        gCoreContext->SaveSetting("DefaultChanid",
     1017                                  player_ctx->playingInfo->GetChanID());
     1018
    10151019    return IsErrored() ? -1 : 0;
    10161020}