Ticket #11954: recinput.mythtv.v0.28-pre-1041-ga0a32ef.patch

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

rebase patch to head as of March 27, 2014

  • mythtv/bindings/perl/MythTV.pm

    From a8011a7317ec559f691c12330adae773bfb4ff69 Mon Sep 17 00:00:00 2001
    From: George Nassas <gnassas@gmail.com>
    Date: Thu, 27 Mar 2014 15:56:05 -0400
    Subject: [PATCH] Update
    
    ---
     mythtv/bindings/perl/MythTV.pm                     |  4 +-
     mythtv/bindings/perl/MythTV/Program.pm             |  4 ++
     mythtv/bindings/php/MythBackend.php                |  3 +-
     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(+), 54 deletions(-)
    
    diff --git a/mythtv/bindings/perl/MythTV.pm b/mythtv/bindings/perl/MythTV.pm
    index f35178e..e113655 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 = "80";
    111     our $PROTO_TOKEN = "TaDah!";
     110    our $PROTO_VERSION = "81";
     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 4a162b4..e2fbb29 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        = '80';
     14    static $protocol_version        = '81';
     15    static $protocol_token          = 'SeaBird';
    1516    static $protocol_token          = 'TaDah!';
    1617
    1718// The character string used by the backend to separate records
  • 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 579468c..b642011 100644
    a b OWN_VERSION = (0,28,-1,0) 
    88SCHEMA_VERSION = 1324
    99NVSCHEMA_VERSION = 1007
    1010MUSICSCHEMA_VERSION = 1018
    11 PROTO_VERSION = '80'
    12 PROTO_TOKEN = 'TaDah!'
     11PROTO_VERSION = '81'
     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 06cc019..29d0401 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( 
    761767    director(),
    762768
    763769    recpriority(0),
     770    recinput(),
    764771
    765772    chanid(_chanid),
    766773    chanstr(_channum),
    void ProgramInfo::clone(const ProgramInfo &other, 
    10251032    catType = other.catType;
    10261033
    10271034    recpriority = other.recpriority;
     1035    recinput = other.recinput;
    10281036
    10291037    filesize = other.filesize;
    10301038
    void ProgramInfo::clone(const ProgramInfo &other, 
    10951103    programid.detach();
    10961104    inetref.detach();
    10971105
     1106    recinput.detach();
     1107
    10981108    sortTitle.detach();
    10991109    inUseForWhat.detach();
    11001110}
    void ProgramInfo::clear(void) 
    11321142    seriesid.clear();
    11331143    programid.clear();
    11341144    inetref.clear();
     1145    recinput.clear();
    11351146    catType = kCategoryNone;
    11361147
    11371148    sortTitle.clear();
    void ProgramInfo::ToStringList(QStringList &list) const 
    13271338    INT_TO_LIST(partnumber);   // 46
    13281339    INT_TO_LIST(parttotal);    // 47
    13291340    INT_TO_LIST(catType);      // 48
     1341    STR_TO_LIST(recinput);     // 49
    13301342/* do not forget to update the NUMPROGRAMLINES defines! */
    13311343}
    13321344
    bool ProgramInfo::FromStringList(QStringList::const_iterator &it, 
    14311443    INT_FROM_LIST(partnumber);        // 46
    14321444    INT_FROM_LIST(parttotal);         // 47
    14331445    ENUM_FROM_LIST(catType, CategoryType); // 48
     1446    STR_FROM_LIST(recinput);          // 49
    14341447
    14351448    if (!origChanid || !origRecstartts.isValid() ||
    14361449        (origChanid != chanid) || (origRecstartts != recstartts))
    void ProgramInfo::ToMap(InfoMap &progMap, 
    15491562        if (timeNow.toLocalTime().date().year() !=
    15501563            endts.toLocalTime().date().year())
    15511564            progMap["endyear"] = endts.toLocalTime().toString("yyyy");
     1565        progMap["inputname"] = recinput;
    15521566    }
    15531567
    15541568    using namespace MythDate;
    void ProgramInfo::ToMap(InfoMap &progMap, 
    16361650
    16371651    progMap["card"] = ::toString(GetRecordingStatus(), cardid);
    16381652    progMap["input"] = ::toString(GetRecordingStatus(), inputid);
    1639     progMap["inputname"] = QueryInputDisplayName();
    16401653
    16411654    progMap["recpriority"] = recpriority;
    16421655    progMap["recpriority2"] = recpriority2;
    bool ProgramInfo::LoadProgramFromRecorded( 
    19591972    catType      = string_to_myth_category_type(query.value(54).toString());
    19601973
    19611974    recpriority  = query.value(16).toInt();
     1975    recinput     = query.value(55).toString();
    19621976
    19631977    filesize     = query.value(20).toULongLong();
    19641978
    void ProgramInfo::SaveInetRef(const QString &inet) 
    43854399    SendUpdateEvent();
    43864400}
    43874401
     4402/** \fn ProgramInfo::SaveRecInput(const QString)
     4403 *  \brief Sets recording input display name in database,
     4404 *         and sets "recinput" field.
     4405 */
     4406void ProgramInfo::SaveRecInput(const QString &inputName)
     4407{
     4408    recinput = inputName;
     4409
     4410    MSqlQuery query(MSqlQuery::InitCon());
     4411
     4412    query.prepare(
     4413        "UPDATE recorded "
     4414        "SET recinput = :RECINPUT "
     4415        "WHERE chanid = :CHANID AND starttime = :STARTTIME "
     4416        "AND recordid = :RECORDID");
     4417
     4418    query.bindValue(":RECINPUT",   inputName);
     4419    query.bindValue(":CHANID",     chanid);
     4420    query.bindValue(":STARTTIME",  recstartts);
     4421    query.bindValue(":RECORDID",   recordid);
     4422    query.exec();
     4423}
     4424
    43884425/** \brief Attempts to ascertain if the main file for this ProgramInfo
    43894426 *         is readable.
    43904427 *  \note This method often initiates a QUERY_CHECKFILE MythProto
    bool ProgramInfo::QueryTuningInfo(QString &channum, QString &input) const 
    47404777    }
    47414778}
    47424779
    4743 /** \brief Returns the display name of the card input for this program.
    4744  *  \note Ideally this would call CardUtil::GetDisplayName(), but
    4745  *        that's in libmythtv.  Dupliacte code for now until a better
    4746  *        solution can be found.
    4747  */
    4748 QString ProgramInfo::QueryInputDisplayName(void) const
    4749 {
    4750     if (!inputid)
    4751         return QString::null;
    4752 
    4753     MSqlQuery query(MSqlQuery::InitCon());
    4754     query.prepare("SELECT displayname, cardid, inputname "
    4755                   "FROM cardinput "
    4756                   "WHERE cardinputid = :INPUTID");
    4757     query.bindValue(":INPUTID", inputid);
    4758 
    4759     if (!query.exec())
    4760         MythDB::DBError("ProgramInfo::GetInputDisplayName(uint)", query);
    4761     else if (query.next())
    4762     {
    4763         QString result = query.value(0).toString();
    4764         if (result.isEmpty())
    4765             result = QString("%1: %2").arg(query.value(1).toInt())
    4766                                       .arg(query.value(2).toString());
    4767         return result;
    4768     }
    4769 
    4770     return QString::null;
    4771 }
    4772 
    47734780static int init_tr(void)
    47744781{
    47754782    static bool done = false;
    void ProgramInfo::SubstituteMatches(QString &str) 
    48944901    str.replace(QString("%PLAYGROUP%"), playgroup);
    48954902    str.replace(QString("%CHANID%"), QString::number(chanid));
    48964903    str.replace(QString("%INETREF%"), inetref);
     4904    str.replace(QString("%RECINPUT%"), recinput);
    48974905    str.replace(QString("%PARTNUMBER%"), QString::number(partnumber));
    48984906    str.replace(QString("%PARTTOTAL%"), QString::number(parttotal));
    48994907    str.replace(QString("%ORIGINALAIRDATE%"),
    bool LoadFromRecorded( 
    53945402                string_to_myth_category_type(query.value(54).toString()), // category_type
    53955403
    53965404                query.value(16).toInt(),  // recpriority
     5405                query.value(55).toString(), // recinput
    53975406
    53985407                query.value(20).toULongLong(),  // filesize
    53995408
  • mythtv/libs/libmyth/programinfo.h

    diff --git a/mythtv/libs/libmyth/programinfo.h b/mythtv/libs/libmyth/programinfo.h
    index 161c34a..9630552 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 
    418419    QString GetCategoryTypeString(void)   const;
    419420    int     GetRecordingPriority(void)    const { return recpriority;  }
    420421    int     GetRecordingPriority2(void)   const { return recpriority2; }
     422    QString GetRecInput(void)             const { return recinput;     }
    421423    float   GetStars(void)                const { return stars;        }
    422424    uint    GetStars(uint range_max)      const
    423425        { return (int)(stars * range_max + 0.5f); }
    class MPUBLIC ProgramInfo 
    505507    void SetRecordingPriority2(int priority)     { recpriority2 = priority; }
    506508    void SetRecordingRuleID(uint id)                { recordid     = id;    }
    507509    void SetSourceID(uint id)                       { sourceid     = id;    }
    508     void SetInputID( uint id)                       { inputid      = id;    }
     510    virtual void
     511         SetInputID( uint id)                       { inputid      = id;    }
    509512    void SetCardID(  uint id)                       { cardid       = id;    }
     513    void SetRecInput(      const QString &inpName)  { recinput     = inpName; }
    510514    void SetReactivated(bool reactivate)
    511515    {
    512516        programflags &= ~FL_REACTIVATE;
    class MPUBLIC ProgramInfo 
    549553    AutoExpireType QueryAutoExpire(void) const;
    550554    TranscodingStatus QueryTranscodeStatus(void) const;
    551555    bool        QueryTuningInfo(QString &channum, QString &input) const;
    552     QString     QueryInputDisplayName(void) const;
    553556    uint        QueryAverageWidth(void) const;
    554557    uint        QueryAverageHeight(void) const;
    555558    uint        QueryAverageFrameRate(void) const;
    class MPUBLIC ProgramInfo 
    587590    void UpdateInUseMark(bool force = false);
    588591    void SaveSeasonEpisode(uint seas, uint ep);
    589592    void SaveInetRef(const QString &inet);
     593    void SaveRecInput(const QString &inputName);
    590594
    591595    // Extremely slow functions that cannot be called from the UI thread.
    592596    QString DiscoverRecordingDirectory(void) const;
    class MPUBLIC ProgramInfo 
    689693    QString director;
    690694
    691695    int32_t recpriority;
     696    QString recinput;
    692697
    693698    uint32_t chanid;
    694699    QString chanstr; // Channum
  • mythtv/libs/libmythbase/mythversion.h

    diff --git a/mythtv/libs/libmythbase/mythversion.h b/mythtv/libs/libmythbase/mythversion.h
    index aed1ba4..c3f01b0 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 "80"
    43 #define MYTH_PROTO_TOKEN "TaDah!"
     42#define MYTH_PROTO_VERSION "81"
     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 023799f..042a01b 100644
    a b class InputDisplayName : public LineEditSetting, public CardInputDBStorage 
    25672567    {
    25682568        setLabel(QObject::tr("Display name (optional)"));
    25692569        setHelpText(QObject::tr(
    2570                         "This name is displayed on screen when Live TV begins "
    2571                         "and when changing the selected input or card. If you "
    2572                         "use this, make sure the information is unique for "
    2573                         "each input."));
     2570                        "This name is displayed on screen when Live TV begins, "
     2571                        "when changing the selected input or card, and on a "
     2572                        "recording's info dialog. If you use this, make sure "
     2573                        "the information is unique for each input."));
    25742574    };
    25752575};
    25762576
  • 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>