Ticket #11954: recinput.mythtv.v0.28-pre-912-g11e65df.patch

File recinput.mythtv.v0.28-pre-912-g11e65df.patch, 28.2 KB (added by George Nassas <gnassas@…>, 6 years ago)

supersedes recinput.mythtv.v0.28-pre-719-g8aefe1b.patch

  • mythtv/bindings/perl/MythTV.pm

    From 13c84f81e7dcb1b13344e3b3d089a9cab6ef68ec Mon Sep 17 00:00:00 2001
    From: George Nassas <gnassas@gmail.com>
    Date: Wed, 26 Feb 2014 11:12:17 -0500
    Subject: [PATCH] Update
    
    ---
     mythtv/bindings/perl/MythTV.pm                     |  4 +-
     mythtv/bindings/perl/MythTV/Program.pm             |  4 ++
     mythtv/bindings/php/MythBackend.php                |  4 +-
     mythtv/bindings/php/MythTVProgram.php              |  1 +
     mythtv/bindings/php/MythTVRecording.php            |  1 +
     mythtv/bindings/python/MythTV/mythproto.py         | 10 +--
     mythtv/bindings/python/MythTV/static.py            |  4 +-
     mythtv/libs/libmyth/programinfo.cpp                | 73 ++++++++++++----------
     mythtv/libs/libmyth/programinfo.h                  | 11 +++-
     mythtv/libs/libmythbase/mythversion.h              |  4 +-
     .../datacontracts/recording.h                      |  3 +
     mythtv/libs/libmythtv/recordinginfo.cpp            |  6 +-
     mythtv/libs/libmythtv/tv_rec.cpp                   |  8 ++-
     mythtv/libs/libmythtv/videosource.cpp              |  8 +--
     .../programs/mythbackend/services/serviceUtil.cpp  |  1 +
     mythtv/programs/mythfrontend/progdetails.cpp       |  6 +-
     .../MythCenter-wide/htmls/progdetails_page2.html   |  1 +
     .../themes/MythCenter/htmls/progdetails_page2.html |  1 +
     mythtv/themes/Terra/htmls/progdetails_page2.html   |  1 +
     mythtv/themes/default/htmls/progdetails_page2.html |  1 +
     20 files changed, 97 insertions(+), 55 deletions(-)
    
    diff --git a/mythtv/bindings/perl/MythTV.pm b/mythtv/bindings/perl/MythTV.pm
    index b1fcae5..ae9f7ff 100644
    a b package MythTV; 
    107107# Note: as of July 21, 2010, this is actually a string, to account for proto
    108108# versions of the form "58a".  This will get used if protocol versions are
    109109# changed on a fixes branch ongoing.
    110     our $PROTO_VERSION = "79";
    111     our $PROTO_TOKEN = "BasaltGiant";
     110    our $PROTO_VERSION = "80";
     111    our $PROTO_TOKEN = "SeaBird";
    112112
    113113# currentDatabaseVersion is defined in libmythtv in
    114114# mythtv/libs/libmythtv/dbcheck.cpp and should be the current MythTV core
  • mythtv/bindings/perl/MythTV/Program.pm

    diff --git a/mythtv/bindings/perl/MythTV/Program.pm b/mythtv/bindings/perl/MythTV/Program.pm
    index eb70a2d..c74f00e 100644
    a b package MythTV::Program; 
    9494        $self->{'parttotal'}         = $_[47]; # part total
    9595        $self->{'categorytype'}      = $_[48]; # category type (enum)
    9696
     97        $self->{'recinput'}          = $_[49]; # recording input
     98
    9799    # Load the channel data
    98100        if ($self->{'chanid'}) {
    99101            $self->{'channel'} = $self->{'_mythtv'}->channel($self->{'chanid'});
    package MythTV::Program; 
    190192                    $self->{'year'}           , # 44 production year
    191193                    $self->{'partnumber'}     , # 45 part number
    192194                    $self->{'parttotal'}      , # 46 part total
     195
     196                    $self->{'recinput'}       , # 47 rec input
    193197                    ''                          # trailing separator
    194198                   );
    195199    }
  • mythtv/bindings/php/MythBackend.php

    diff --git a/mythtv/bindings/php/MythBackend.php b/mythtv/bindings/php/MythBackend.php
    index 0866afd..41d2111 100644
    a b class MythBackend { 
    1111
    1212// MYTH_PROTO_VERSION is defined in libmyth in mythtv/libs/libmyth/mythcontext.h
    1313// and should be the current MythTV protocol version.
    14     static $protocol_version        = '79';
    15     static $protocol_token          = 'BasaltGiant';
     14    static $protocol_version        = '80';
     15    static $protocol_token          = 'SeaBird';
    1616
    1717// The character string used by the backend to separate records
    1818    static $backend_separator       = '[]:[]';
  • mythtv/bindings/php/MythTVProgram.php

    diff --git a/mythtv/bindings/php/MythTVProgram.php b/mythtv/bindings/php/MythTVProgram.php
    index a99741e..70c6677 100644
    a b class MythTVProgram { 
    4545    public $airdate;
    4646    public $playgroup;
    4747    public $recpriority2;
     48    public $recinput;
    4849    public $parentid;
    4950    public $storagegroup;
    5051    public $audioprop;
  • mythtv/bindings/php/MythTVRecording.php

    diff --git a/mythtv/bindings/php/MythTVRecording.php b/mythtv/bindings/php/MythTVRecording.php
    index 933b54f..6929126 100644
    a b class MythTVRecording { 
    3434    public  $transcoder;
    3535    public  $timestretch;
    3636    public  $recpriority;
     37    public  $recinput;
    3738    public  $basename;
    3839    public  $progstart;
    3940    public  $progend;
  • mythtv/bindings/python/MythTV/mythproto.py

    diff --git a/mythtv/bindings/python/MythTV/mythproto.py b/mythtv/bindings/python/MythTV/mythproto.py
    index ce6c738..6ae583e 100644
    a b class Program( CMPRecord, DictData, RECSTATUS, AUDIO_PROPS, \ 
    841841                     'airdate',      'playgroup',    'recpriority2',
    842842                     'parentid',     'storagegroup', 'audio_props',
    843843                     'video_props',  'subtitle_type','year',
    844                      'part_number',  'part_total',   'categorytype']
     844                     'part_number',  'part_total',   'categorytype',
     845                     'recinput']
    845846    _field_type = [  3,      3,      3,
    846847                     0,      0,      0,
    847848                     3,
    class Program( CMPRecord, DictData, RECSTATUS, AUDIO_PROPS, \ 
    858859                     5,      3,      0,
    859860                     3,      3,      0,
    860861                     0,      0,      0,
    861                      0,      0,      0]
     862                     0,      0,      0,
     863                     3]
    862864    def __str__(self):
    863865        return u"<Program '%s','%s' at %s>" % (self.title,
    864866                 self.starttime.isoformat(' '), hex(id(self)))
    class Program( CMPRecord, DictData, RECSTATUS, AUDIO_PROPS, \ 
    886888        for key in ('title','subTitle','seriesId','programId','airdate',
    887889                'category','hostname','chanNum','callSign','playGroup',
    888890                'recGroup','rectype','programFlags','chanId','recStatus',
    889                 'commFree','stars','filesize'):
     891                'commFree','stars','filesize','recinput'):
    890892            if key in xmldat:
    891893                dat[key.lower()] = xmldat[key]
    892894        for key in ('startTime','endTime','lastModified',
    class Program( CMPRecord, DictData, RECSTATUS, AUDIO_PROPS, \ 
    914916                ('ChanId', 'CallSign', 'ChanNum', 'InputId', 'SourceId'), True)
    915917        CopyData2(prog['Channel'], dat, (('ChannelName', 'channame'),))
    916918        CopyData(prog['Recording'], dat,
    917                 ('DupMethod', 'PlayGroup', 'RecType', 'RecordId'), True)
     919                ('DupMethod', 'PlayGroup', 'RecType', 'RecordId', 'RecInput'), True)
    918920        CopyData2(prog['Recording'], dat, (('DupInType', 'dupin'),
    919921                                           ('Status', 'recstatus')))
    920922
  • mythtv/bindings/python/MythTV/static.py

    diff --git a/mythtv/bindings/python/MythTV/static.py b/mythtv/bindings/python/MythTV/static.py
    index a485903..30ff232 100644
    a b OWN_VERSION = (0,28,-1,0) 
    88SCHEMA_VERSION = 1322
    99NVSCHEMA_VERSION = 1007
    1010MUSICSCHEMA_VERSION = 1018
    11 PROTO_VERSION = '79'
    12 PROTO_TOKEN = 'BasaltGiant'
     11PROTO_VERSION = '80'
     12PROTO_TOKEN = 'SeaBird'
    1313BACKEND_SEP = '[]:[]'
    1414INSTALL_PREFIX = '/usr/local'
    1515
  • mythtv/libs/libmyth/programinfo.cpp

    diff --git a/mythtv/libs/libmyth/programinfo.cpp b/mythtv/libs/libmyth/programinfo.cpp
    index 7400eaf..ea64073 100644
    a b const QString ProgramInfo::kFromRecordedQuery = 
    6666    "       r.findid,           rec.dupin,      rec.dupmethod,     "//45-47
    6767    "       p.syndicatedepisodenumber, p.partnumber, p.parttotal,  "//48-50
    6868    "       p.season,           p.episode,      p.totalepisodes,   "//51-53
    69     "       p.category_type                                        "//54
     69    "       p.category_type,    r.recinput                         "//54-55
    7070    "FROM recorded AS r "
    7171    "LEFT JOIN channel AS c "
    7272    "ON (r.chanid    = c.chanid) "
    ProgramInfo::ProgramInfo(void) : 
    123123    director(),
    124124
    125125    recpriority(0),
     126    recinput(),
    126127
    127128    chanid(0),
    128129    chanstr(),
    ProgramInfo::ProgramInfo(const ProgramInfo &other) : 
    207208    director(other.director),
    208209
    209210    recpriority(other.recpriority),
     211    recinput(other.recinput),
    210212
    211213    chanid(other.chanid),
    212214    chanstr(other.chanstr),
    ProgramInfo::ProgramInfo( 
    317319    CategoryType  _catType,
    318320
    319321    int _recpriority,
     322    const QString &_recinput,
    320323
    321324    uint64_t _filesize,
    322325
    ProgramInfo::ProgramInfo( 
    357360    director(),
    358361
    359362    recpriority(_recpriority),
     363    recinput(_recinput),
    360364
    361365    chanid(_chanid),
    362366    chanstr(_channum),
    ProgramInfo::ProgramInfo( 
    475479    director(),
    476480
    477481    recpriority(0),
     482    recinput(),
    478483
    479484    chanid(_chanid),
    480485    chanstr(_channum),
    ProgramInfo::ProgramInfo( 
    602607    director(),
    603608
    604609    recpriority(0),
     610    recinput(),
    605611
    606612    chanid(_chanid),
    607613    chanstr(_channum),
    ProgramInfo::ProgramInfo( 
    746752    director(),
    747753
    748754    recpriority(0),
     755    recinput(),
    749756
    750757    chanid(_chanid),
    751758    chanstr(_channum),
    void ProgramInfo::clone(const ProgramInfo &other, 
    10101017    catType = other.catType;
    10111018
    10121019    recpriority = other.recpriority;
     1020    recinput = other.recinput;
    10131021
    10141022    filesize = other.filesize;
    10151023
    void ProgramInfo::clone(const ProgramInfo &other, 
    10791087    programid.detach();
    10801088    inetref.detach();
    10811089
     1090    recinput.detach();
     1091
    10821092    sortTitle.detach();
    10831093    inUseForWhat.detach();
    10841094}
    void ProgramInfo::clear(void) 
    11161126    seriesid.clear();
    11171127    programid.clear();
    11181128    inetref.clear();
     1129    recinput.clear();
    11191130    catType = kCategoryNone;
    11201131
    11211132    sortTitle.clear();
    void ProgramInfo::ToStringList(QStringList &list) const 
    13111322    INT_TO_LIST(partnumber);   // 46
    13121323    INT_TO_LIST(parttotal);    // 47
    13131324    INT_TO_LIST(catType);      // 48
     1325    STR_TO_LIST(recinput);     // 49
    13141326/* do not forget to update the NUMPROGRAMLINES defines! */
    13151327}
    13161328
    bool ProgramInfo::FromStringList(QStringList::const_iterator &it, 
    14151427    INT_FROM_LIST(partnumber);        // 46
    14161428    INT_FROM_LIST(parttotal);         // 47
    14171429    ENUM_FROM_LIST(catType, CategoryType); // 48
     1430    STR_FROM_LIST(recinput);          // 49
    14181431
    14191432    if (!origChanid || !origRecstartts.isValid() ||
    14201433        (origChanid != chanid) || (origRecstartts != recstartts))
    void ProgramInfo::ToMap(InfoMap &progMap, 
    15331546        if (timeNow.toLocalTime().date().year() !=
    15341547            endts.toLocalTime().date().year())
    15351548            progMap["endyear"] = endts.toLocalTime().toString("yyyy");
     1549        progMap["inputname"] = recinput;
    15361550    }
    15371551
    15381552    using namespace MythDate;
    void ProgramInfo::ToMap(InfoMap &progMap, 
    16201634
    16211635    progMap["card"] = ::toString(GetRecordingStatus(), cardid);
    16221636    progMap["input"] = ::toString(GetRecordingStatus(), inputid);
    1623     progMap["inputname"] = QueryInputDisplayName();
    16241637
    16251638    progMap["recpriority"] = recpriority;
    16261639    progMap["recpriority2"] = recpriority2;
    bool ProgramInfo::LoadProgramFromRecorded( 
    19431956    catType      = string_to_myth_category_type(query.value(54).toString());
    19441957
    19451958    recpriority  = query.value(16).toInt();
     1959    recinput     = query.value(55).toString();
    19461960
    19471961    filesize     = query.value(20).toULongLong();
    19481962
    void ProgramInfo::SaveInetRef(const QString &inet) 
    43574371    SendUpdateEvent();
    43584372}
    43594373
     4374/** \fn ProgramInfo::SaveRecInput(const QString)
     4375 *  \brief Sets recording input display name in database,
     4376 *         and sets "recinput" field.
     4377 */
     4378void ProgramInfo::SaveRecInput(const QString &inputName)
     4379{
     4380    recinput = inputName;
     4381
     4382    MSqlQuery query(MSqlQuery::InitCon());
     4383
     4384    query.prepare(
     4385        "UPDATE recorded "
     4386        "SET recinput = :RECINPUT "
     4387        "WHERE chanid = :CHANID AND starttime = :STARTTIME "
     4388        "AND recordid = :RECORDID");
     4389
     4390    query.bindValue(":RECINPUT",   inputName);
     4391    query.bindValue(":CHANID",     chanid);
     4392    query.bindValue(":STARTTIME",  recstartts);
     4393    query.bindValue(":RECORDID",   recordid);
     4394    query.exec();
     4395}
     4396
    43604397/** \brief Attempts to ascertain if the main file for this ProgramInfo
    43614398 *         is readable.
    43624399 *  \note This method often initiates a QUERY_CHECKFILE MythProto
    bool ProgramInfo::QueryTuningInfo(QString &channum, QString &input) const 
    47124749    }
    47134750}
    47144751
    4715 /** \brief Returns the display name of the card input for this program.
    4716  *  \note Ideally this would call CardUtil::GetDisplayName(), but
    4717  *        that's in libmythtv.  Dupliacte code for now until a better
    4718  *        solution can be found.
    4719  */
    4720 QString ProgramInfo::QueryInputDisplayName(void) const
    4721 {
    4722     if (!inputid)
    4723         return QString::null;
    4724 
    4725     MSqlQuery query(MSqlQuery::InitCon());
    4726     query.prepare("SELECT displayname, cardid, inputname "
    4727                   "FROM cardinput "
    4728                   "WHERE cardinputid = :INPUTID");
    4729     query.bindValue(":INPUTID", inputid);
    4730 
    4731     if (!query.exec())
    4732         MythDB::DBError("ProgramInfo::GetInputDisplayName(uint)", query);
    4733     else if (query.next())
    4734     {
    4735         QString result = query.value(0).toString();
    4736         if (result.isEmpty())
    4737             result = QString("%1: %2").arg(query.value(1).toInt())
    4738                                       .arg(query.value(2).toString());
    4739         return result;
    4740     }
    4741 
    4742     return QString::null;
    4743 }
    4744 
    47454752static int init_tr(void)
    47464753{
    47474754    static bool done = false;
    void ProgramInfo::SubstituteMatches(QString &str) 
    48664873    str.replace(QString("%PLAYGROUP%"), playgroup);
    48674874    str.replace(QString("%CHANID%"), QString::number(chanid));
    48684875    str.replace(QString("%INETREF%"), inetref);
     4876    str.replace(QString("%RECINPUT%"), recinput);
    48694877    str.replace(QString("%PARTNUMBER%"), QString::number(partnumber));
    48704878    str.replace(QString("%PARTTOTAL%"), QString::number(parttotal));
    48714879    str.replace(QString("%ORIGINALAIRDATE%"),
    bool LoadFromRecorded( 
    53665374                string_to_myth_category_type(query.value(54).toString()), // category_type
    53675375
    53685376                query.value(16).toInt(),  // recpriority
     5377                query.value(55).toString(), // recinput
    53695378
    53705379                query.value(20).toULongLong(),  // filesize
    53715380
  • mythtv/libs/libmyth/programinfo.h

    diff --git a/mythtv/libs/libmyth/programinfo.h b/mythtv/libs/libmyth/programinfo.h
    index 0254901..890c791 100644
    a b  
    3030   mythtv/bindings/python/MythTV/static.py (version number)
    3131   mythtv/bindings/python/MythTV/mythproto.py (layout)
    3232*/
    33 #define NUMPROGRAMLINES 49
     33#define NUMPROGRAMLINES 50
    3434
    3535class ProgramInfo;
    3636typedef AutoDeleteDeque<ProgramInfo*> ProgramList;
    class MPUBLIC ProgramInfo 
    112112                CategoryType  catType,
    113113
    114114                int recpriority,
     115                const QString &recinput,
    115116
    116117                uint64_t filesize,
    117118
    class MPUBLIC ProgramInfo 
    417418    QString GetCategoryTypeString(void)   const;
    418419    int     GetRecordingPriority(void)    const { return recpriority;  }
    419420    int     GetRecordingPriority2(void)   const { return recpriority2; }
     421    QString GetRecInput(void)             const { return recinput;     }
    420422    float   GetStars(void)                const { return stars;        }
    421423    uint    GetStars(uint range_max)      const
    422424        { return (int)(stars * range_max + 0.5f); }
    class MPUBLIC ProgramInfo 
    504506    void SetRecordingPriority2(int priority)     { recpriority2 = priority; }
    505507    void SetRecordingRuleID(uint id)                { recordid     = id;    }
    506508    void SetSourceID(uint id)                       { sourceid     = id;    }
    507     void SetInputID( uint id)                       { inputid      = id;    }
     509    virtual void
     510         SetInputID( uint id)                       { inputid      = id;    }
    508511    void SetCardID(  uint id)                       { cardid       = id;    }
     512    void SetRecInput(      const QString &inpName)  { recinput     = inpName; }
    509513    void SetReactivated(bool reactivate)
    510514    {
    511515        programflags &= ~FL_REACTIVATE;
    class MPUBLIC ProgramInfo 
    548552    AutoExpireType QueryAutoExpire(void) const;
    549553    TranscodingStatus QueryTranscodeStatus(void) const;
    550554    bool        QueryTuningInfo(QString &channum, QString &input) const;
    551     QString     QueryInputDisplayName(void) const;
    552555    uint        QueryAverageWidth(void) const;
    553556    uint        QueryAverageHeight(void) const;
    554557    uint        QueryAverageFrameRate(void) const;
    class MPUBLIC ProgramInfo 
    586589    void UpdateInUseMark(bool force = false);
    587590    void SaveSeasonEpisode(uint seas, uint ep);
    588591    void SaveInetRef(const QString &inet);
     592    void SaveRecInput(const QString &inputName);
    589593
    590594    // Extremely slow functions that cannot be called from the UI thread.
    591595    QString DiscoverRecordingDirectory(void) const;
    class MPUBLIC ProgramInfo 
    688692    QString director;
    689693
    690694    int32_t recpriority;
     695    QString recinput;
    691696
    692697    uint32_t chanid;
    693698    QString chanstr; // Channum
  • mythtv/libs/libmythbase/mythversion.h

    diff --git a/mythtv/libs/libmythbase/mythversion.h b/mythtv/libs/libmythbase/mythversion.h
    index cc7800f..a9f2bc4 100644
    a b  
    3939 *       http://www.mythtv.org/wiki/Category:Myth_Protocol_Commands
    4040 *       http://www.mythtv.org/wiki/Category:Myth_Protocol
    4141 */
    42 #define MYTH_PROTO_VERSION "79"
    43 #define MYTH_PROTO_TOKEN "BasaltGiant"
     42#define MYTH_PROTO_VERSION "80"
     43#define MYTH_PROTO_TOKEN "SeaBird"
    4444
    4545/** \brief Increment this whenever the MythTV core database schema changes.
    4646 *
  • mythtv/libs/libmythservicecontracts/datacontracts/recording.h

    diff --git a/mythtv/libs/libmythservicecontracts/datacontracts/recording.h b/mythtv/libs/libmythservicecontracts/datacontracts/recording.h
    index d2870eb..e247803 100644
    a b class SERVICE_PUBLIC RecordingInfo : public QObject 
    4141    Q_PROPERTY( int                     EncoderId    READ EncoderId    WRITE setEncoderId    DESIGNABLE SerializeDetails )
    4242    Q_PROPERTY( QString                 EncoderName  READ EncoderName  WRITE setEncoderName  DESIGNABLE SerializeDetails )
    4343    Q_PROPERTY( QString                 Profile      READ Profile      WRITE setProfile      DESIGNABLE SerializeDetails )
     44    Q_PROPERTY( QString                 InputName    READ InputName    WRITE setInputName    DESIGNABLE SerializeDetails )
    4445
    4546    /*
    4647    Not using since Q_ENUMS seem to require the enum be defined in this class
    class SERVICE_PUBLIC RecordingInfo : public QObject 
    6667    PROPERTYIMP     ( int                    , EncoderId   )
    6768    PROPERTYIMP     ( QString                , EncoderName )
    6869    PROPERTYIMP     ( QString                , Profile     )
     70    PROPERTYIMP     ( QString                , InputName   )
    6971
    7072    // Used only by Serializer
    7173    PROPERTYIMP( bool, SerializeDetails )
    class SERVICE_PUBLIC RecordingInfo : public QObject 
    109111            m_DupMethod       = src.m_DupMethod        ;
    110112            m_EncoderId       = src.m_EncoderId        ;
    111113            m_Profile         = src.m_Profile          ;
     114            m_InputName       = src.m_InputName        ;
    112115            m_SerializeDetails= src.m_SerializeDetails ;
    113116        }
    114117};
  • mythtv/libs/libmythtv/recordinginfo.cpp

    diff --git a/mythtv/libs/libmythtv/recordinginfo.cpp b/mythtv/libs/libmythtv/recordinginfo.cpp
    index ff2cc9e..d8801cd 100644
    a b using namespace std; 
    3030#include "mythdb.h"
    3131#include "mythlogging.h"
    3232#include "previewgenerator.h"
     33#include "cardutil.h"
    3334#include "channelutil.h"
    3435
    3536#define LOC      QString("RecordingInfo(%1): ").arg(GetBasename())
    bool RecordingInfo::InsertProgram(const RecordingInfo *pg, 
    10251026        "    stars,     previouslyshown,              originalairdate,  "
    10261027        "    findid,    transcoder,  playgroup,       recpriority,      "
    10271028        "    basename,  progstart,   progend,         profile,          "
    1028         "    duplicate, storagegroup) "
     1029        "    duplicate, storagegroup,recinput) "
    10291030        "VALUES"
    10301031        "  (:CHANID,   :STARTS,     :ENDS,           :TITLE,            "
    10311032        "   :SUBTITLE, :DESC,       :SEASON,         :EPISODE,          "
    bool RecordingInfo::InsertProgram(const RecordingInfo *pg, 
    10341035        "   :STARS,    :REPEAT,                      :ORIGAIRDATE,      "
    10351036        "   :FINDID,   :TRANSCODER, :PLAYGROUP,      :RECPRIORITY,      "
    10361037        "   :BASENAME, :PROGSTART,  :PROGEND,        :PROFILE,          "
    1037         "   0,         :STORGROUP) "
     1038        "   0,         :STORGROUP,  :RECINPUT)"
    10381039        );
    10391040
    10401041    if (pg->rectype == kOverrideRecord)
    bool RecordingInfo::InsertProgram(const RecordingInfo *pg, 
    10681069    query.bindValue(":TRANSCODER",  rule->m_transcoder);
    10691070    query.bindValue(":PLAYGROUP",   pg->playgroup);
    10701071    query.bindValue(":RECPRIORITY", rule->m_recPriority);
     1072    query.bindValue(":RECINPUT",    null_to_empty(pg->recinput));
    10711073    query.bindValue(":BASENAME",    pg->pathname);
    10721074    query.bindValue(":STORGROUP",   null_to_empty(pg->storagegroup));
    10731075    query.bindValue(":PROGSTART",   pg->startts);
  • mythtv/libs/libmythtv/tv_rec.cpp

    diff --git a/mythtv/libs/libmythtv/tv_rec.cpp b/mythtv/libs/libmythtv/tv_rec.cpp
    index 20c5f23..15edd97 100644
    a b uint TVRec::TuningCheckForHWChange(const TuningRequest &request, 
    36013601        curCardID = channel->GetInputCardID(current_input);
    36023602        newCardID = channel->GetInputCardID(new_input);
    36033603        LOG(VB_GENERAL, LOG_INFO, LOC + QString("HW Tuner: %1->%2")
    3604                 .arg(curCardID).arg(newCardID));
     3604                .arg(curCardID).arg(newCardID));
    36053605    }
    36063606
    36073607    if (curCardID != newCardID || !CardUtil::IsChannelReusable(genOpt.cardtype))
    void TVRec::TuningFrequency(const TuningRequest &request) 
    37823782    else
    37833783        ok = true;
    37843784
     3785    LOG(VB_RECORD, LOG_INFO, LOC + QString("Tuning on: %1").arg(input));
     3786    if (curRecording) {
     3787        curRecording->SaveRecInput(
     3788            CardUtil::GetDisplayName(cardid,input));
     3789    }
     3790
    37853791    if (!ok)
    37863792    {
    37873793        if (!(request.flags & kFlagLiveTV) || !(request.flags & kFlagEITScan))
  • mythtv/libs/libmythtv/videosource.cpp

    diff --git a/mythtv/libs/libmythtv/videosource.cpp b/mythtv/libs/libmythtv/videosource.cpp
    index 2c943c6..e5bfdf3 100644
    a b class InputDisplayName : public LineEditSetting, public CardInputDBStorage 
    25612561    {
    25622562        setLabel(QObject::tr("Display name (optional)"));
    25632563        setHelpText(QObject::tr(
    2564                         "This name is displayed on screen when Live TV begins "
    2565                         "and when changing the selected input or card. If you "
    2566                         "use this, make sure the information is unique for "
    2567                         "each input."));
     2564                        "This name is displayed on screen when Live TV begins, "
     2565                        "when changing the selected input or card, and on a "
     2566                        "recording's info dialog. If you use this, make sure "
     2567                        "the information is unique for each input."));
    25682568    };
    25692569};
    25702570
  • mythtv/programs/mythbackend/services/serviceUtil.cpp

    diff --git a/mythtv/programs/mythbackend/services/serviceUtil.cpp b/mythtv/programs/mythbackend/services/serviceUtil.cpp
    index 92ce181..cfecc68 100644
    a b void FillProgramInfo( DTC::Program *pProgram, 
    140140                                                               pProgram->Channel()->SourceId());
    141141                pRecording->setEncoderName( encoderName );
    142142            }
     143            pRecording->setInputName   ( pInfo->GetRecInput()             );
    143144
    144145            const RecordingInfo ri(*pInfo);
    145146            pRecording->setProfile( ri.GetProgramRecordingProfile() );
  • mythtv/programs/mythfrontend/progdetails.cpp

    diff --git a/mythtv/programs/mythfrontend/progdetails.cpp b/mythtv/programs/mythfrontend/progdetails.cpp
    index fcff565..c817f85 100644
    a b void ProgDetails::loadPage(void) 
    664664    addItem("FINDID", tr("Find ID"), s);
    665665
    666666    QString recordingHost;
     667    QString recordingInput;
    667668    QString recordedFilename;
    668669    QString recordedFileSize;
    669670    QString recordingGroup;
    void ProgDetails::loadPage(void) 
    671672    QString playbackGroup;
    672673    QString recordingProfile;
    673674
     675    recordingHost = m_progInfo.GetHostname();
     676    recordingInput = m_progInfo.GetRecInput();
     677
    674678    if (recorded)
    675679    {
    676         recordingHost = m_progInfo.GetHostname();
    677680        recordedFilename = m_progInfo.GetBasename();
    678681        recordedFileSize = QString("%1 ")
    679682            .arg(m_progInfo.GetFilesize()/((double)(1<<30)),0,'f',2);
    void ProgDetails::loadPage(void) 
    698701        recordingProfile =  record->m_recProfile;
    699702    }
    700703    addItem("RECORDING_HOST", tr("Recording Host"), recordingHost);
     704    addItem("RECORDING_INPUT", tr("Recording Input"), recordingInput);
    701705    addItem("RECORDED_FILE_NAME", tr("Recorded File Name"), recordedFilename);
    702706    addItem("RECORDED_FILE_SIZE", tr("Recorded File Size"), recordedFileSize);
    703707    addItem("RECORDING_PROFILE", tr("Recording Profile"), recordingProfile);
  • mythtv/themes/MythCenter-wide/htmls/progdetails_page2.html

    diff --git a/mythtv/themes/MythCenter-wide/htmls/progdetails_page2.html b/mythtv/themes/MythCenter-wide/htmls/progdetails_page2.html
    index 499bfb5..fdb9cf9 100644
    a b  
    3636    <h1>%SEARCH_PHRASE_LABEL%</h1> <p>%SEARCH_PHRASE%</p>
    3737    <h1>%FINDID_LABEL%</h1> <p>%FINDID%</p>
    3838    <h1>%RECORDING_HOST_LABEL%</h1> <p>%RECORDING_HOST%</p>
     39    <h1>%RECORDING_INPUT_LABEL%</h1> <p>%RECORDING_INPUT%</p>
    3940    <h1>%RECORDED_FILE_NAME_LABEL%</h1> <p>%RECORDED_FILE_NAME%</p>
    4041    <h1>%RECORDED_FILE_SIZE_LABEL%</h1> <p>%RECORDED_FILE_SIZE%</p>
    4142    <h1>%RECORDING_PROFILE_LABEL%</h1> <p>%RECORDING_PROFILE%</p>
  • mythtv/themes/MythCenter/htmls/progdetails_page2.html

    diff --git a/mythtv/themes/MythCenter/htmls/progdetails_page2.html b/mythtv/themes/MythCenter/htmls/progdetails_page2.html
    index 3619729..cf36332 100644
    a b  
    3838    <h1>%SEARCH_PHRASE_LABEL%</h1> <p>%SEARCH_PHRASE%</p>
    3939    <h1>%FINDID_LABEL%</h1> <p>%FINDID%</p>
    4040    <h1>%RECORDING_HOST_LABEL%</h1> <p>%RECORDING_HOST%</p>
     41    <h1>%RECORDING_INPUT_LABEL%</h1> <p>%RECORDING_INPUT%</p>
    4142    <h1>%RECORDED_FILE_NAME_LABEL%</h1> <p>%RECORDED_FILE_NAME%</p>
    4243    <h1>%RECORDED_FILE_SIZE_LABEL%</h1> <p>%RECORDED_FILE_SIZE%</p>
    4344    <h1>%RECORDING_PROFILE_LABEL%</h1> <p>%RECORDING_PROFILE%</p>
  • mythtv/themes/Terra/htmls/progdetails_page2.html

    diff --git a/mythtv/themes/Terra/htmls/progdetails_page2.html b/mythtv/themes/Terra/htmls/progdetails_page2.html
    index 243d041..a1426d6 100644
    a b  
    4141    <h1>%SEARCH_PHRASE_LABEL%</h1> <p>%SEARCH_PHRASE%</p>
    4242    <h1>%FINDID_LABEL%</h1> <p>%FINDID%</p>
    4343    <h1>%RECORDING_HOST_LABEL%</h1> <p>%RECORDING_HOST%</p>
     44    <h1>%RECORDING_INPUT_LABEL%</h1> <p>%RECORDING_INPUT%</p>
    4445    <h1>%RECORDED_FILE_NAME_LABEL%</h1> <p>%RECORDED_FILE_NAME%</p>
    4546    <h1>%RECORDED_FILE_SIZE_LABEL%</h1> <p>%RECORDED_FILE_SIZE%</p>
    4647    <h1>%RECORDING_PROFILE_LABEL%</h1> <p>%RECORDING_PROFILE%</p>
  • mythtv/themes/default/htmls/progdetails_page2.html

    diff --git a/mythtv/themes/default/htmls/progdetails_page2.html b/mythtv/themes/default/htmls/progdetails_page2.html
    index 900fd31..40fb94b 100644
    a b  
    3838    <h1>%SEARCH_PHRASE_LABEL%</h1> <p>%SEARCH_PHRASE%</p>
    3939    <h1>%FINDID_LABEL%</h1> <p>%FINDID%</p>
    4040    <h1>%RECORDING_HOST_LABEL%</h1> <p>%RECORDING_HOST%</p>
     41    <h1>%RECORDING_INPUT_LABEL%</h1> <p>%RECORDING_INPUT%</p>
    4142    <h1>%RECORDED_FILE_NAME_LABEL%</h1> <p>%RECORDED_FILE_NAME%</p>
    4243    <h1>%RECORDED_FILE_SIZE_LABEL%</h1> <p>%RECORDED_FILE_SIZE%</p>
    4344    <h1>%RECORDING_PROFILE_LABEL%</h1> <p>%RECORDING_PROFILE%</p>