Ticket #11954: recinput.mythtv.v0.28-pre-519-gd8c710d.patch

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

supercedes recinput.mythtv.v0.28-pre-461-g1dd14ea.patch

  • mythtv/bindings/perl/MythTV.pm

    From d03a0ca1bb100a35017bc11f3ce4b9d353bf9a39 Mon Sep 17 00:00:00 2001
    From: George Nassas <gnassas@gmail.com>
    Date: Mon, 18 Nov 2013 21:41:36 -0500
    Subject: [PATCH] MythTV changes
    
    ---
     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            | 18 +++++-
     mythtv/libs/libmythtv/recordinginfo.h              |  2 +
     mythtv/libs/libmythtv/videosource.cpp              |  8 +--
     .../programs/mythbackend/services/serviceUtil.cpp  |  1 +
     mythtv/programs/mythfrontend/progdetails.cpp       |  3 +
     .../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, 102 insertions(+), 53 deletions(-)
    
    diff --git a/mythtv/bindings/perl/MythTV.pm b/mythtv/bindings/perl/MythTV.pm
    index b3e3763..dbdef12 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 08e72f9..c486c3f 100644
    a b OWN_VERSION = (0,28,-1,0) 
    88SCHEMA_VERSION = 1321
    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 0642b4d..5139412 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) 
    43334347    SendUpdateEvent();
    43344348}
    43354349
     4350/** \fn ProgramInfo::SaveRecInput(const QString)
     4351 *  \brief Sets recording input display name in database,
     4352 *         and sets "recinput" field.
     4353 */
     4354void ProgramInfo::SaveRecInput(const QString &inputName)
     4355{
     4356    recinput = inputName;
     4357
     4358    MSqlQuery query(MSqlQuery::InitCon());
     4359
     4360    query.prepare(
     4361        "UPDATE recorded "
     4362        "SET recinput = :RECINPUT "
     4363        "WHERE chanid = :CHANID AND starttime = :STARTTIME "
     4364        "AND recordid = :RECORDID");
     4365
     4366    query.bindValue(":RECINPUT",   inputName);
     4367    query.bindValue(":CHANID",     chanid);
     4368    query.bindValue(":STARTTIME",  recstartts);
     4369    query.bindValue(":RECORDID",   recordid);
     4370    query.exec();
     4371}
     4372
    43364373/** \brief Attempts to ascertain if the main file for this ProgramInfo
    43374374 *         is readable.
    43384375 *  \note This method often initiates a QUERY_CHECKFILE MythProto
    bool ProgramInfo::QueryTuningInfo(QString &channum, QString &input) const 
    46884725    }
    46894726}
    46904727
    4691 /** \brief Returns the display name of the card input for this program.
    4692  *  \note Ideally this would call CardUtil::GetDisplayName(), but
    4693  *        that's in libmythtv.  Dupliacte code for now until a better
    4694  *        solution can be found.
    4695  */
    4696 QString ProgramInfo::QueryInputDisplayName(void) const
    4697 {
    4698     if (!inputid)
    4699         return QString::null;
    4700 
    4701     MSqlQuery query(MSqlQuery::InitCon());
    4702     query.prepare("SELECT displayname, cardid, inputname "
    4703                   "FROM cardinput "
    4704                   "WHERE cardinputid = :INPUTID");
    4705     query.bindValue(":INPUTID", inputid);
    4706 
    4707     if (!query.exec())
    4708         MythDB::DBError("ProgramInfo::GetInputDisplayName(uint)", query);
    4709     else if (query.next())
    4710     {
    4711         QString result = query.value(0).toString();
    4712         if (result.isEmpty())
    4713             result = QString("%1: %2").arg(query.value(1).toInt())
    4714                                       .arg(query.value(2).toString());
    4715         return result;
    4716     }
    4717 
    4718     return QString::null;
    4719 }
    4720 
    47214728static int init_tr(void)
    47224729{
    47234730    static bool done = false;
    void ProgramInfo::SubstituteMatches(QString &str) 
    48424849    str.replace(QString("%PLAYGROUP%"), playgroup);
    48434850    str.replace(QString("%CHANID%"), QString::number(chanid));
    48444851    str.replace(QString("%INETREF%"), inetref);
     4852    str.replace(QString("%RECINPUT%"), recinput);
    48454853    str.replace(QString("%PARTNUMBER%"), QString::number(partnumber));
    48464854    str.replace(QString("%PARTTOTAL%"), QString::number(parttotal));
    48474855    str.replace(QString("%ORIGINALAIRDATE%"),
    bool LoadFromRecorded( 
    53425350                string_to_myth_category_type(query.value(54).toString()), // category_type
    53435351
    53445352                query.value(16).toInt(),  // recpriority
     5353                query.value(55).toString(), // recinput
    53455354
    53465355                query.value(20).toULongLong(),  // filesize
    53475356
  • mythtv/libs/libmyth/programinfo.h

    diff --git a/mythtv/libs/libmyth/programinfo.h b/mythtv/libs/libmyth/programinfo.h
    index 660c777..66d9cd5 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 
    416417    QString GetCategoryTypeString(void)   const;
    417418    int     GetRecordingPriority(void)    const { return recpriority;  }
    418419    int     GetRecordingPriority2(void)   const { return recpriority2; }
     420    QString GetRecInput(void)             const { return recinput;     }
    419421    float   GetStars(void)                const { return stars;        }
    420422    uint    GetStars(uint range_max)      const
    421423        { return (int)(stars * range_max + 0.5f); }
    class MPUBLIC ProgramInfo 
    503505    void SetRecordingPriority2(int priority)     { recpriority2 = priority; }
    504506    void SetRecordingRuleID(uint id)                { recordid     = id;    }
    505507    void SetSourceID(uint id)                       { sourceid     = id;    }
    506     void SetInputID( uint id)                       { inputid      = id;    }
     508    virtual void
     509         SetInputID( uint id)                       { inputid      = id;    }
    507510    void SetCardID(  uint id)                       { cardid       = id;    }
     511    void SetRecInput(      const QString &inpName)  { recinput     = inpName; }
    508512    void SetReactivated(bool reactivate)
    509513    {
    510514        programflags &= ~FL_REACTIVATE;
    class MPUBLIC ProgramInfo 
    547551    AutoExpireType QueryAutoExpire(void) const;
    548552    TranscodingStatus QueryTranscodeStatus(void) const;
    549553    bool        QueryTuningInfo(QString &channum, QString &input) const;
    550     QString     QueryInputDisplayName(void) const;
    551554    uint        QueryAverageWidth(void) const;
    552555    uint        QueryAverageHeight(void) const;
    553556    uint        QueryAverageFrameRate(void) const;
    class MPUBLIC ProgramInfo 
    585588    void UpdateInUseMark(bool force = false);
    586589    void SaveSeasonEpisode(uint seas, uint ep);
    587590    void SaveInetRef(const QString &inet);
     591    void SaveRecInput(const QString &inputName);
    588592
    589593    // Extremely slow functions that cannot be called from the UI thread.
    590594    QString DiscoverRecordingDirectory(void) const;
    class MPUBLIC ProgramInfo 
    687691    QString director;
    688692
    689693    int32_t recpriority;
     694    QString recinput;
    690695
    691696    uint32_t chanid;
    692697    QString chanstr; // Channum
  • mythtv/libs/libmythbase/mythversion.h

    diff --git a/mythtv/libs/libmythbase/mythversion.h b/mythtv/libs/libmythbase/mythversion.h
    index 1cb0b1b..0eaa230 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 ec675a2..80b4122 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())
    RecordingInfo::RecordingInfo( 
    156157    inputid = _inputid;
    157158    cardid = _cardid;
    158159
     160    SetRecInput(CardUtil::GetDisplayName(inputid));
     161
    159162    findid = _findid;
    160163
    161164    properties = ((_subtitleType    << 11) |
    void RecordingInfo::ApplyNeverRecord(void) 
    793796    AddHistory(true, true);
    794797}
    795798
     799/** \fn RecordingInfo::SetInputID(uint id)
     800 *  \brief Extend ProgramInfo's method to set the recording input
     801 &         name as a side effect.
     802 */
     803void RecordingInfo::SetInputID(uint id)
     804{
     805    ProgramInfo::SetInputID(id);
     806    SaveRecInput(CardUtil::GetDisplayName(id));
     807}
     808
    796809/** \fn RecordingInfo::QuickRecord(void)
    797810 *  \brief Create a kSingleRecord if not already scheduled.
    798811 */
    bool RecordingInfo::InsertProgram(const RecordingInfo *pg, 
    961974        "    stars,     previouslyshown,              originalairdate,  "
    962975        "    findid,    transcoder,  playgroup,       recpriority,      "
    963976        "    basename,  progstart,   progend,         profile,          "
    964         "    duplicate, storagegroup) "
     977        "    duplicate, storagegroup,recinput) "
    965978        "VALUES"
    966979        "  (:CHANID,   :STARTS,     :ENDS,           :TITLE,            "
    967980        "   :SUBTITLE, :DESC,       :SEASON,         :EPISODE,          "
    bool RecordingInfo::InsertProgram(const RecordingInfo *pg, 
    970983        "   :STARS,    :REPEAT,                      :ORIGAIRDATE,      "
    971984        "   :FINDID,   :TRANSCODER, :PLAYGROUP,      :RECPRIORITY,      "
    972985        "   :BASENAME, :PROGSTART,  :PROGEND,        :PROFILE,          "
    973         "   0,         :STORGROUP) "
     986        "   0,         :STORGROUP,  :RECINPUT)"
    974987        );
    975988
    976989    if (pg->rectype == kOverrideRecord)
    bool RecordingInfo::InsertProgram(const RecordingInfo *pg, 
    10041017    query.bindValue(":TRANSCODER",  rule->m_transcoder);
    10051018    query.bindValue(":PLAYGROUP",   pg->playgroup);
    10061019    query.bindValue(":RECPRIORITY", rule->m_recPriority);
     1020    query.bindValue(":RECINPUT",    null_to_empty(pg->recinput));
    10071021    query.bindValue(":BASENAME",    pg->pathname);
    10081022    query.bindValue(":STORGROUP",   null_to_empty(pg->storagegroup));
    10091023    query.bindValue(":PROGSTART",   pg->startts);
  • mythtv/libs/libmythtv/recordinginfo.h

    diff --git a/mythtv/libs/libmythtv/recordinginfo.h b/mythtv/libs/libmythtv/recordinginfo.h
    index 2cc8cd4..6c19705 100644
    a b class MTV_PUBLIC RecordingInfo : public ProgramInfo 
    272272    QDateTime desiredrecstartts;
    273273    QDateTime desiredrecendts;
    274274
     275    void SetInputID(uint id);
     276
    275277  private:
    276278    mutable class RecordingRule *record;
    277279
  • 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 0c5e0c8..74890cf 100644
    a b void FillProgramInfo( DTC::Program *pProgram, 
    133133                                                               pProgram->Channel()->SourceId());
    134134                pRecording->setEncoderName( encoderName );
    135135            }
     136            pRecording->setInputName   ( pInfo->GetRecInput()             );
    136137
    137138            const RecordingInfo ri(*pInfo);
    138139            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..a1f72ad 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) 
    674675    if (recorded)
    675676    {
    676677        recordingHost = m_progInfo.GetHostname();
     678        recordingInput = m_progInfo.GetRecInput();
    677679        recordedFilename = m_progInfo.GetBasename();
    678680        recordedFileSize = QString("%1 ")
    679681            .arg(m_progInfo.GetFilesize()/((double)(1<<30)),0,'f',2);
    void ProgDetails::loadPage(void) 
    698700        recordingProfile =  record->m_recProfile;
    699701    }
    700702    addItem("RECORDING_HOST", tr("Recording Host"), recordingHost);
     703    addItem("RECORDING_INPUT", tr("Recording Input"), recordingInput);
    701704    addItem("RECORDED_FILE_NAME", tr("Recorded File Name"), recordedFilename);
    702705    addItem("RECORDED_FILE_SIZE", tr("Recorded File Size"), recordedFileSize);
    703706    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>