Ticket #11954: recinput.mythtv.v0.28-pre-461-g1dd14ea.patch

File recinput.mythtv.v0.28-pre-461-g1dd14ea.patch, 27.9 KB (added by George Nassas <gnassas@…>, 7 years ago)
  • mythtv/bindings/perl/MythTV.pm

    From f055dd56838d9b3cae4b28386d3b983e15168e2d Mon Sep 17 00:00:00 2001
    From: George Nassas <gnassas@gmail.com>
    Date: Tue, 5 Nov 2013 08:44:19 -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         |  8 +--
     mythtv/bindings/python/MythTV/static.py            |  4 +-
     mythtv/libs/libmyth/programinfo.cpp                | 75 +++++++++++++---------
     mythtv/libs/libmyth/programinfo.h                  |  9 ++-
     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, 101 insertions(+), 52 deletions(-)
    
    diff --git a/mythtv/bindings/perl/MythTV.pm b/mythtv/bindings/perl/MythTV.pm
    index f6812cf..588c2a7 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 = "78";
    111     our $PROTO_TOKEN = "IceBurns";
     110    our $PROTO_VERSION = "79";
     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 7e3f3cc..c3429ca 100644
    a b package MythTV::Program; 
    9393        $self->{'partnumber'}        = $_[46]; # part number
    9494        $self->{'parttotal'}         = $_[47]; # part total
    9595
     96        $self->{'recinput'}          = $_[48]; # recording input
     97
    9698    # Load the channel data
    9799        if ($self->{'chanid'}) {
    98100            $self->{'channel'} = $self->{'_mythtv'}->channel($self->{'chanid'});
    package MythTV::Program; 
    189191                    $self->{'year'}           , # 44 production year
    190192                    $self->{'partnumber'}     , # 45 part number
    191193                    $self->{'parttotal'}      , # 46 part total
     194
     195                    $self->{'recinput'}       , # 47 rec input
    192196                    ''                          # trailing separator
    193197                   );
    194198    }
  • mythtv/bindings/php/MythBackend.php

    diff --git a/mythtv/bindings/php/MythBackend.php b/mythtv/bindings/php/MythBackend.php
    index 81be951..c3e6c35 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        = '78';
    15     static $protocol_token          = 'IceBurns';
     14    static $protocol_version        = '79';
     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 079a478..b138130 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']
     844                     'part_number',  'part_total',   'recinput']
    845845    _field_type = [  3,      3,      3,
    846846                     0,      0,      0,
    847847                     3,
    class Program( CMPRecord, DictData, RECSTATUS, AUDIO_PROPS, \ 
    858858                     5,      3,      0,
    859859                     3,      3,      0,
    860860                     0,      0,      0,
    861                      0,      0]
     861                     0,      0,      3]
    862862    def __str__(self):
    863863        return u"<Program '%s','%s' at %s>" % (self.title,
    864864                 self.starttime.isoformat(' '), hex(id(self)))
    class Program( CMPRecord, DictData, RECSTATUS, AUDIO_PROPS, \ 
    886886        for key in ('title','subTitle','seriesId','programId','airdate',
    887887                'category','hostname','chanNum','callSign','playGroup',
    888888                'recGroup','rectype','programFlags','chanId','recStatus',
    889                 'commFree','stars','filesize'):
     889                'commFree','stars','filesize','recinput'):
    890890            if key in xmldat:
    891891                dat[key.lower()] = xmldat[key]
    892892        for key in ('startTime','endTime','lastModified',
    class Program( CMPRecord, DictData, RECSTATUS, AUDIO_PROPS, \ 
    914914                ('ChanId', 'CallSign', 'ChanNum', 'InputId', 'SourceId'), True)
    915915        CopyData2(prog['Channel'], dat, (('ChannelName', 'channame'),))
    916916        CopyData(prog['Recording'], dat,
    917                 ('DupMethod', 'PlayGroup', 'RecType', 'RecordId'), True)
     917                ('DupMethod', 'PlayGroup', 'RecType', 'RecordId', 'RecInput'), True)
    918918        CopyData2(prog['Recording'], dat, (('DupInType', 'dupin'),
    919919                                           ('Status', 'recstatus')))
    920920
  • mythtv/bindings/python/MythTV/static.py

    diff --git a/mythtv/bindings/python/MythTV/static.py b/mythtv/bindings/python/MythTV/static.py
    index c4e1696..afef132 100644
    a b OWN_VERSION = (0,28,-1,0) 
    88SCHEMA_VERSION = 1320
    99NVSCHEMA_VERSION = 1007
    1010MUSICSCHEMA_VERSION = 1018
    11 PROTO_VERSION = '78'
    12 PROTO_TOKEN = 'IceBurns'
     11PROTO_VERSION = '79'
     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 5a50c96..bebdb34 100644
    a b const QString ProgramInfo::kFromRecordedQuery = 
    6565    "       p.audioprop+0,      p.videoprop+0,  p.subtitletypes+0, "//42-44
    6666    "       r.findid,           rec.dupin,      rec.dupmethod,     "//45-47
    6767    "       p.syndicatedepisodenumber, p.partnumber, p.parttotal,  "//48-50
    68     "       p.season,           p.episode,      p.totalepisodes    "//51-53
     68    "       p.season,           p.episode,      p.totalepisodes,   "//51-53
     69    "       r.recinput                                             "//54
    6970    "FROM recorded AS r "
    7071    "LEFT JOIN channel AS c "
    7172    "ON (r.chanid    = c.chanid) "
    ProgramInfo::ProgramInfo(void) : 
    122123    director(),
    123124
    124125    recpriority(0),
     126    recinput(),
    125127
    126128    chanid(0),
    127129    chanstr(),
    ProgramInfo::ProgramInfo(const ProgramInfo &other) : 
    206208    director(other.director),
    207209
    208210    recpriority(other.recpriority),
     211    recinput(other.recinput),
    209212
    210213    chanid(other.chanid),
    211214    chanstr(other.chanstr),
    ProgramInfo::ProgramInfo( 
    315318    const QString &_inetref,
    316319
    317320    int _recpriority,
     321    const QString &_recinput,
    318322
    319323    uint64_t _filesize,
    320324
    ProgramInfo::ProgramInfo( 
    355359    director(),
    356360
    357361    recpriority(_recpriority),
     362    recinput(_recinput),
    358363
    359364    chanid(_chanid),
    360365    chanstr(_channum),
    ProgramInfo::ProgramInfo( 
    473478    director(),
    474479
    475480    recpriority(0),
     481    recinput(),
    476482
    477483    chanid(_chanid),
    478484    chanstr(_channum),
    ProgramInfo::ProgramInfo( 
    600606    director(),
    601607
    602608    recpriority(0),
     609    recinput(),
    603610
    604611    chanid(_chanid),
    605612    chanstr(_channum),
    ProgramInfo::ProgramInfo( 
    744751    director(),
    745752
    746753    recpriority(0),
     754    recinput(),
    747755
    748756    chanid(_chanid),
    749757    chanstr(_channum),
    void ProgramInfo::clone(const ProgramInfo &other, 
    10081016    catType = other.catType;
    10091017
    10101018    recpriority = other.recpriority;
     1019    recinput = other.recinput;
    10111020
    10121021    filesize = other.filesize;
    10131022
    void ProgramInfo::clone(const ProgramInfo &other, 
    10771086    programid.detach();
    10781087    inetref.detach();
    10791088
     1089    recinput.detach();
     1090
    10801091    sortTitle.detach();
    10811092    inUseForWhat.detach();
    10821093}
    void ProgramInfo::clear(void) 
    11141125    seriesid.clear();
    11151126    programid.clear();
    11161127    inetref.clear();
     1128    recinput.clear();
    11171129    catType = kCategoryNone;
    11181130
    11191131    sortTitle.clear();
    void ProgramInfo::ToStringList(QStringList &list) const 
    13081320    INT_TO_LIST(year);              // 45
    13091321    INT_TO_LIST(partnumber);   // 46
    13101322    INT_TO_LIST(parttotal);    // 47
     1323    STR_TO_LIST(recinput);     // 48
    13111324/* do not forget to update the NUMPROGRAMLINES defines! */
    13121325}
    13131326
    bool ProgramInfo::FromStringList(QStringList::const_iterator &it, 
    14121425    INT_FROM_LIST(partnumber);        // 46
    14131426    INT_FROM_LIST(parttotal);         // 47
    14141427
     1428    STR_FROM_LIST(recinput);          // 48
     1429
    14151430    if (!origChanid || !origRecstartts.isValid() ||
    14161431        (origChanid != chanid) || (origRecstartts != recstartts))
    14171432    {
    void ProgramInfo::ToMap(InfoMap &progMap, 
    15291544        if (timeNow.toLocalTime().date().year() !=
    15301545            endts.toLocalTime().date().year())
    15311546            progMap["endyear"] = endts.toLocalTime().toString("yyyy");
     1547        progMap["inputname"] = recinput;
    15321548    }
    15331549
    15341550    using namespace MythDate;
    void ProgramInfo::ToMap(InfoMap &progMap, 
    16161632
    16171633    progMap["card"] = ::toString(GetRecordingStatus(), cardid);
    16181634    progMap["input"] = ::toString(GetRecordingStatus(), inputid);
    1619     progMap["inputname"] = QueryInputDisplayName();
    16201635
    16211636    progMap["recpriority"] = recpriority;
    16221637    progMap["recpriority2"] = recpriority2;
    bool ProgramInfo::LoadProgramFromRecorded( 
    19391954    /**///catType;
    19401955
    19411956    recpriority  = query.value(16).toInt();
     1957    recinput     = query.value(54).toString();
    19421958
    19431959    filesize     = query.value(20).toULongLong();
    19441960
    void ProgramInfo::SaveInetRef(const QString &inet) 
    43294345    SendUpdateEvent();
    43304346}
    43314347
     4348/** \fn ProgramInfo::SaveRecInput(const QString)
     4349 *  \brief Sets recording input display name in database,
     4350 *         and sets "recinput" field.
     4351 */
     4352void ProgramInfo::SaveRecInput(const QString &inputName)
     4353{
     4354    recinput = inputName;
     4355
     4356    MSqlQuery query(MSqlQuery::InitCon());
     4357
     4358    query.prepare(
     4359        "UPDATE recorded "
     4360        "SET recinput = :RECINPUT "
     4361        "WHERE chanid = :CHANID AND starttime = :STARTTIME "
     4362        "AND recordid = :RECORDID");
     4363
     4364    query.bindValue(":RECINPUT",   inputName);
     4365    query.bindValue(":CHANID",     chanid);
     4366    query.bindValue(":STARTTIME",  recstartts);
     4367    query.bindValue(":RECORDID",   recordid);
     4368    query.exec();
     4369}
     4370
    43324371/** \brief Attempts to ascertain if the main file for this ProgramInfo
    43334372 *         is readable.
    43344373 *  \note This method often initiates a QUERY_CHECKFILE MythProto
    bool ProgramInfo::QueryTuningInfo(QString &channum, QString &input) const 
    46844723    }
    46854724}
    46864725
    4687 /** \brief Returns the display name of the card input for this program.
    4688  *  \note Ideally this would call CardUtil::GetDisplayName(), but
    4689  *        that's in libmythtv.  Dupliacte code for now until a better
    4690  *        solution can be found.
    4691  */
    4692 QString ProgramInfo::QueryInputDisplayName(void) const
    4693 {
    4694     if (!inputid)
    4695         return QString::null;
    4696 
    4697     MSqlQuery query(MSqlQuery::InitCon());
    4698     query.prepare("SELECT displayname, cardid, inputname "
    4699                   "FROM cardinput "
    4700                   "WHERE cardinputid = :INPUTID");
    4701     query.bindValue(":INPUTID", inputid);
    4702 
    4703     if (!query.exec())
    4704         MythDB::DBError("ProgramInfo::GetInputDisplayName(uint)", query);
    4705     else if (query.next())
    4706     {
    4707         QString result = query.value(0).toString();
    4708         if (result.isEmpty())
    4709             result = QString("%1: %2").arg(query.value(1).toInt())
    4710                                       .arg(query.value(2).toString());
    4711         return result;
    4712     }
    4713 
    4714     return QString::null;
    4715 }
    4716 
    47174726static int init_tr(void)
    47184727{
    47194728    static bool done = false;
    void ProgramInfo::SubstituteMatches(QString &str) 
    48384847    str.replace(QString("%PLAYGROUP%"), playgroup);
    48394848    str.replace(QString("%CHANID%"), QString::number(chanid));
    48404849    str.replace(QString("%INETREF%"), inetref);
     4850    str.replace(QString("%RECINPUT%"), recinput);
    48414851    str.replace(QString("%PARTNUMBER%"), QString::number(partnumber));
    48424852    str.replace(QString("%PARTTOTAL%"), QString::number(parttotal));
    48434853    str.replace(QString("%ORIGINALAIRDATE%"),
    bool LoadFromRecorded( 
    53015311                query.value(19).toString(), // inetref
    53025312
    53035313                query.value(16).toInt(),  // recpriority
     5314                query.value(51).toString(), // recinput
    53045315
    53055316                query.value(20).toULongLong(),  // filesize
    53065317
  • mythtv/libs/libmyth/programinfo.h

    diff --git a/mythtv/libs/libmyth/programinfo.h b/mythtv/libs/libmyth/programinfo.h
    index a44aeac..e08485f 100644
    a b class MPUBLIC ProgramInfo 
    111111                const QString &inetref,
    112112
    113113                int recpriority,
     114                const QString &recinput,
    114115
    115116                uint64_t filesize,
    116117
    class MPUBLIC ProgramInfo 
    415416    QString GetCategoryTypeString(void)   const;
    416417    int     GetRecordingPriority(void)    const { return recpriority;  }
    417418    int     GetRecordingPriority2(void)   const { return recpriority2; }
     419    QString GetRecInput(void)             const { return recinput;     }
    418420    float   GetStars(void)                const { return stars;        }
    419421    uint    GetStars(uint range_max)      const
    420422        { return (int)(stars * range_max + 0.5f); }
    class MPUBLIC ProgramInfo 
    502504    void SetRecordingPriority2(int priority)     { recpriority2 = priority; }
    503505    void SetRecordingRuleID(uint id)                { recordid     = id;    }
    504506    void SetSourceID(uint id)                       { sourceid     = id;    }
    505     void SetInputID( uint id)                       { inputid      = id;    }
     507    virtual void
     508         SetInputID( uint id)                       { inputid      = id;    }
    506509    void SetCardID(  uint id)                       { cardid       = id;    }
     510    void SetRecInput(      const QString &inpName)  { recinput     = inpName; }
    507511    void SetReactivated(bool reactivate)
    508512    {
    509513        programflags &= ~FL_REACTIVATE;
    class MPUBLIC ProgramInfo 
    546550    AutoExpireType QueryAutoExpire(void) const;
    547551    TranscodingStatus QueryTranscodeStatus(void) const;
    548552    bool        QueryTuningInfo(QString &channum, QString &input) const;
    549     QString     QueryInputDisplayName(void) const;
    550553    uint        QueryAverageWidth(void) const;
    551554    uint        QueryAverageHeight(void) const;
    552555    uint        QueryAverageFrameRate(void) const;
    class MPUBLIC ProgramInfo 
    584587    void UpdateInUseMark(bool force = false);
    585588    void SaveSeasonEpisode(uint seas, uint ep);
    586589    void SaveInetRef(const QString &inet);
     590    void SaveRecInput(const QString &inputName);
    587591
    588592    // Extremely slow functions that cannot be called from the UI thread.
    589593    QString DiscoverRecordingDirectory(void) const;
    class MPUBLIC ProgramInfo 
    686690    QString director;
    687691
    688692    int32_t recpriority;
     693    QString recinput;
    689694
    690695    uint32_t chanid;
    691696    QString chanstr; // Channum
  • mythtv/libs/libmythbase/mythversion.h

    diff --git a/mythtv/libs/libmythbase/mythversion.h b/mythtv/libs/libmythbase/mythversion.h
    index f5e32e2..88a8271 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 "78"
    43 #define MYTH_PROTO_TOKEN "IceBurns"
     42#define MYTH_PROTO_VERSION "79"
     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 6157086..76bc440 100644
    a b class SERVICE_PUBLIC RecordingInfo : public QObject 
    4040    Q_PROPERTY( int                     DupMethod    READ DupMethod    WRITE setDupMethod    DESIGNABLE SerializeDetails )
    4141    Q_PROPERTY( int                     EncoderId    READ EncoderId    WRITE setEncoderId    DESIGNABLE SerializeDetails )
    4242    Q_PROPERTY( QString                 Profile      READ Profile      WRITE setProfile      DESIGNABLE SerializeDetails )
     43    Q_PROPERTY( QString                 InputName    READ InputName    WRITE setInputName    DESIGNABLE SerializeDetails )
    4344
    4445    /*
    4546    Not using since Q_ENUMS seem to require the enum be defined in this class
    class SERVICE_PUBLIC RecordingInfo : public QObject 
    6465    PROPERTYIMP_ENUM( RecordingDupMethodType , DupMethod   )
    6566    PROPERTYIMP     ( int                    , EncoderId   )
    6667    PROPERTYIMP     ( QString                , Profile     )
     68    PROPERTYIMP     ( QString                , InputName   )
    6769
    6870    // Used only by Serializer
    6971    PROPERTYIMP( bool, SerializeDetails )
    class SERVICE_PUBLIC RecordingInfo : public QObject 
    107109            m_DupMethod       = src.m_DupMethod        ;
    108110            m_EncoderId       = src.m_EncoderId        ;
    109111            m_Profile         = src.m_Profile          ;
     112            m_InputName       = src.m_InputName        ;
    110113            m_SerializeDetails= src.m_SerializeDetails ;
    111114        }
    112115};
  • mythtv/libs/libmythtv/recordinginfo.cpp

    diff --git a/mythtv/libs/libmythtv/recordinginfo.cpp b/mythtv/libs/libmythtv/recordinginfo.cpp
    index e670292..b4170d0 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::ApplyTranscoderProfileChange(const QString &profile) const 
    781784    }
    782785}
    783786
     787/** \fn RecordingInfo::SetInputID(uint id)
     788 *  \brief Extend ProgramInfo's method to set the recording input
     789 &         name as a side effect.
     790 */
     791void RecordingInfo::SetInputID(uint id)
     792{
     793    ProgramInfo::SetInputID(id);
     794    SaveRecInput(CardUtil::GetDisplayName(id));
     795}
     796
    784797/** \fn RecordingInfo::QuickRecord(void)
    785798 *  \brief Create a kSingleRecord if not already scheduled.
    786799 */
    bool RecordingInfo::InsertProgram(const RecordingInfo *pg, 
    949962        "    stars,     previouslyshown,              originalairdate,  "
    950963        "    findid,    transcoder,  playgroup,       recpriority,      "
    951964        "    basename,  progstart,   progend,         profile,          "
    952         "    duplicate, storagegroup) "
     965        "    duplicate, storagegroup,recinput) "
    953966        "VALUES"
    954967        "  (:CHANID,   :STARTS,     :ENDS,           :TITLE,            "
    955968        "   :SUBTITLE, :DESC,       :SEASON,         :EPISODE,          "
    bool RecordingInfo::InsertProgram(const RecordingInfo *pg, 
    958971        "   :STARS,    :REPEAT,                      :ORIGAIRDATE,      "
    959972        "   :FINDID,   :TRANSCODER, :PLAYGROUP,      :RECPRIORITY,      "
    960973        "   :BASENAME, :PROGSTART,  :PROGEND,        :PROFILE,          "
    961         "   0,         :STORGROUP) "
     974        "   0,         :STORGROUP,  :RECINPUT)"
    962975        );
    963976
    964977    if (pg->rectype == kOverrideRecord)
    bool RecordingInfo::InsertProgram(const RecordingInfo *pg, 
    9921005    query.bindValue(":TRANSCODER",  rule->m_transcoder);
    9931006    query.bindValue(":PLAYGROUP",   pg->playgroup);
    9941007    query.bindValue(":RECPRIORITY", rule->m_recPriority);
     1008    query.bindValue(":RECINPUT",    null_to_empty(pg->recinput));
    9951009    query.bindValue(":BASENAME",    pg->pathname);
    9961010    query.bindValue(":STORGROUP",   null_to_empty(pg->storagegroup));
    9971011    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 806fe2f..9a2cbbd 100644
    a b class MTV_PUBLIC RecordingInfo : public ProgramInfo 
    271271    QDateTime desiredrecstartts;
    272272    QDateTime desiredrecendts;
    273273
     274    void SetInputID(uint id);
     275
    274276  private:
    275277    mutable class RecordingRule *record;
    276278
  • 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 1601098..ade5d3d 100644
    a b void FillProgramInfo( DTC::Program *pProgram, 
    126126            pRecording->setDupInType   ( pInfo->GetDuplicateCheckSource() );
    127127            pRecording->setDupMethod   ( pInfo->GetDuplicateCheckMethod() );
    128128            pRecording->setEncoderId   ( pInfo->GetCardID()               );
     129            pRecording->setInputName   ( pInfo->GetRecInput()             );
    129130
    130131            const RecordingInfo ri(*pInfo);
    131132            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>