Ticket #1211: save_input.diff

File save_input.diff, 3.6 KB (added by Mark.Buechler@…, 18 years ago)

The patch..

  • tv_rec.cpp

    diff -rup libmythtv_hack_clean/tv_rec.cpp libmythtv/tv_rec.cpp
    old new bool TVRec::Init(void) 
    151151    if (!ok)
    152152        return false;
    153153
    154     QString startchannel = GetStartChannel(cardid, genOpt.defaultinput);
     154    QString startchannel = GetStartChannel(cardid, QString::null);
    155155
    156156    bool init_run = false;
    157157    if (genOpt.cardtype == "DVB")
    bool TVRec::GetDevices(int cardid, 
    14101410    return true;
    14111411}
    14121412
    1413 QString TVRec::GetStartChannel(int cardid, const QString &defaultinput)
     1413QString TVRec::GetStartChannel(int cardid, const QString &input)
    14141414{
     1415    QString defaultinput;
    14151416    QString msg("");
    14161417    QString startchan = QString::null;
    14171418
     1419    if (input == QString::null)
     1420    {
     1421        // Get the last viewed input
     1422        MSqlQuery query(MSqlQuery::InitCon());
     1423        query.prepare(
     1424            "SELECT defaultinput "
     1425            "FROM capturecard "
     1426            "WHERE cardid = :CARDID");
     1427        query.bindValue(":CARDID", cardid);
     1428
     1429        if (!query.exec() || !query.isActive())
     1430            MythContext::DBError("getdefaultinput", query);
     1431        else if (query.next())
     1432            defaultinput = query.value(0).toString();
     1433    }
     1434    else
     1435        defaultinput = input;
     1436
    14181437    // Get last tuned channel from database, to use as starting channel
    14191438    MSqlQuery query(MSqlQuery::InitCon());
    14201439    query.prepare(
    void TVRec::TuningFrequency(const Tuning 
    34173436
    34183437        // If this is Live TV startup, we need a channel...
    34193438        if (channum.isEmpty() && (request.flags & kFlagLiveTV))
    3420         {
    3421             input   = genOpt.defaultinput;
    3422             channum = GetStartChannel(cardid, input);
    3423         }
     3439            channum = GetStartChannel(cardid, QString::null);
    34243440    }
    34253441    bool ok = false;
    34263442    if (channel)
  • tv_rec.h

    diff -rup libmythtv_hack_clean/tv_rec.h libmythtv/tv_rec.h
    old new class TVRec : public QObject 
    267267                           DBox2DBOptions     &dbox2_opts);
    268268
    269269
    270     static QString GetStartChannel(int cardid, const QString &defaultinput);
     270    static QString GetStartChannel(int cardid, const QString &input=QString::null);
    271271
    272272    bool SetupRecorder(RecordingProfile& profile);
    273273    void TeardownRecorder(bool killFile = false);
  • tv_play.cpp

    diff -rup libmythtv_clean/tv_play.cpp libmythtv/tv_play.cpp
    old new void TV::ChangeChannel(uint chanid, cons 
    38293829    if (prevChan.size() == 0)
    38303830        AddPreviousChannel();
    38313831
     3832    // Save new input
     3833    QString inputname("");
     3834    int cardid = -1;
     3835
     3836    MSqlQuery query(MSqlQuery::InitCon());
     3837    query.prepare("SELECT cardid FROM channel,cardinput "
     3838                  "WHERE channel.sourceid = cardinput.sourceid "
     3839                  "AND chanid = :CHANID");
     3840    query.bindValue(":CHANID", chanid);
     3841    if (query.exec() && query.isActive() && query.size() > 0 && query.next())
     3842        cardid = query.value(0).toInt();
     3843    else
     3844        MythContext::DBError("GetNewCardID", query);
     3845
     3846    if (cardid >= 0)
     3847        if (get_cardinputid(cardid, channum, inputname) >= 0)
     3848            set_startinput(cardid, inputname);
    38323849    PauseLiveTV();
    38333850
    38343851    activerecorder->SetChannel(channum);