Changeset a1f979393 in mythtv


Ignore:
Timestamp:
Dec 5, 2012, 9:53:48 PM (12 years ago)
Author:
David Engel <dengel@…>
Branches:
devel/2020-player, devel/ffmpeg-resync, fixes/0.27, fixes/0.28, fixes/29, fixes/30, fixes/31, github-templates, master
Children:
2c91c56ea
Parents:
3872d2786
git-author:
David Engel <dengel@…> (12/05/12 21:53:48)
git-committer:
David Engel <dengel@…> (12/05/12 22:02:48)
Message:

Remove and restrict the use of some recording rule types.

This is another change in the series of changes to remove some
scheduler related features and settings that the developers no longer
believe are needed or want to support.

Remove the Timeslot and Weekslot recording rule types. These rule
types are too rigid and don't work when a broadcaster shifts the
starting time of a program by a few minutes. Users should now use
Channel recording rules in place of Timeslot and Weekslot rules. To
approximate the old functionality, two new schedule filters have been
added. In addition, the new "This time" and "This day and time"
filters are less strict and match any program starting within 10
minutes of the recording rule time.

Restrict the use of the FindDaily? and FindWeekly? recording rule types
(now simply called Daily and Weekly) to search and manual recording
rules. These rule types are rarely needed and limiting their use to
the most powerful cases simplifies the user interface for the more
common cases. Users should now use Daily and Weekly, custom search
rules in place of FindDaily? and FindWeekly? rules.

Any existing recording rules using the no longer supported or allowed
types are automatically converted to the suggested alternatives.

Location:
mythtv
Files:
20 edited

Legend:

Unmodified
Added
Removed
  • mythtv/bindings/perl/MythTV.pm

    r3872d2786 ra1f979393  
    116116# version in the database is as expected by the bindings, which are expected
    117117# to be kept in sync with the main code.
    118     our $SCHEMA_VERSION = "1308";
     118    our $SCHEMA_VERSION = "1309";
    119119
    120120# NUMPROGRAMLINES is defined in mythtv/libs/libmythtv/programinfo.h and is
  • mythtv/bindings/python/MythTV/dataheap.py

    r3872d2786 ra1f979393  
    215215                           searchtype=RECSEARCHTYPE.kPowerSearch, wait=False):
    216216
    217         if type not in (RECTYPE.kAllRecord,           RECTYPE.kFindDailyRecord,
    218                         RECTYPE.kFindWeeklyRecord,    RECTYPE.kFindOneRecord):
     217        if type not in (RECTYPE.kAllRecord,           RECTYPE.kDailyRecord,
     218                        RECTYPE.kWeeklyRecord,        RECTYPE.kOneRecord):
    219219            raise MythDBError("Invalid 'type' set for power recording rule.")
    220220
  • mythtv/bindings/python/MythTV/static.py

    r3872d2786 ra1f979393  
    66
    77OWN_VERSION = (0,27,-1,0)
    8 SCHEMA_VERSION = 1308
     8SCHEMA_VERSION = 1309
    99NVSCHEMA_VERSION = 1007
    1010MUSICSCHEMA_VERSION = 1018
     
    3939    kNotRecording       = 0
    4040    kSingleRecord       = 1
    41     kTimeslotRecord     = 2
     41    kDailyRecord        = 2
    4242    kChannelRecord      = 3
    4343    kAllRecord          = 4
    44     kWeekslotRecord     = 5
    45     kFindOneRecord      = 6
     44    kWeeklyRecord       = 5
     45    kOneRecord          = 6
    4646    kOverrideRecord     = 7
    4747    kDontRecord         = 8
    48     kFindDailyRecord    = 9
    49     kFindWeeklyRecord   = 10
     48    #kFindDailyRecord    = 9 (Obsolete)
     49    #kFindWeeklyRecord   = 10 (Obsolete)
     50    kTemplateRecord     = 11
    5051
    5152class RECSEARCHTYPE( object ):
  • mythtv/libs/libmyth/programinfo.cpp

    r3872d2786 ra1f979393  
    19781978bool ProgramInfo::IsSameProgram(const ProgramInfo& other) const
    19791979{
    1980     if (GetRecordingRuleType() == kFindOneRecord)
     1980    if (GetRecordingRuleType() == kOneRecord)
    19811981        return recordid == other.recordid;
    19821982
  • mythtv/libs/libmyth/recordingtypes.cpp

    r3872d2786 ra1f979393  
    1313        case kOverrideRecord: return 2; break;
    1414        case kSingleRecord:   return 3; break;
    15         case kFindOneRecord:  return 4; break;
    16         case kWeekslotRecord: return 5; break;
    17         case kFindWeeklyRecord: return 6; break;
    18         case kTimeslotRecord: return 7; break;
    19         case kFindDailyRecord: return 8; break;
     15        case kOneRecord:      return 4; break;
     16        case kWeeklyRecord:   return 6; break;
     17        case kDailyRecord:    return 8; break;
    2018        case kChannelRecord:  return 9; break;
    2119        case kAllRecord:      return 10; break;
     
    3230        case kSingleRecord:
    3331            return QObject::tr("Single Record");
    34         case kTimeslotRecord:
    35             return QObject::tr("Record Daily");
    36         case kWeekslotRecord:
    37             return QObject::tr("Record Weekly");
    3832        case kChannelRecord:
    3933            return QObject::tr("Channel Record");
    4034        case kAllRecord:
    4135            return QObject::tr("Record All");
    42         case kFindOneRecord:
    43             return QObject::tr("Find One");
    44         case kFindDailyRecord:
    45             return QObject::tr("Find Daily");
    46         case kFindWeeklyRecord:
    47             return QObject::tr("Find Weekly");
     36        case kOneRecord:
     37            return QObject::tr("Record One");
     38        case kDailyRecord:
     39            return QObject::tr("Record Daily");
     40        case kWeeklyRecord:
     41            return QObject::tr("Record Weekly");
    4842        case kOverrideRecord:
    4943        case kDontRecord:
     
    6357        case kSingleRecord:
    6458            return QString("Single Record");
    65         case kTimeslotRecord:
    66             return QString("Record Daily");
    67         case kWeekslotRecord:
    68             return QString("Record Weekly");
    6959        case kChannelRecord:
    7060            return QString("Channel Record");
    7161        case kAllRecord:
    7262            return QString("Record All");
    73         case kFindOneRecord:
    74             return QString("Find One");
    75         case kFindDailyRecord:
    76             return QString("Find Daily");
    77         case kFindWeeklyRecord:
    78             return QString("Find Weekly");
     63        case kOneRecord:
     64            return QString("Record One");
     65        case kDailyRecord:
     66            return QString("Record Daily");
     67        case kWeeklyRecord:
     68            return QString("Record Weekly");
    7969        case kOverrideRecord:
    8070        case kDontRecord:
     
    9181    if (type.toLower() == "single record" || type.toLower() == "single")
    9282        return kSingleRecord;
    93     else if (type.toLower() == "record daily" || type.toLower() == "daily")
    94         return kTimeslotRecord;
    95     else if (type.toLower() == "record weekly" || type.toLower() == "weekly")
    96         return kWeekslotRecord;
    9783    else if (type.toLower() == "channel record" || type.toLower() == "channel")
    9884        return kChannelRecord;
    9985    else if (type.toLower() == "record all" || type.toLower() == "all")
    10086        return kAllRecord;
    101     else if (type.toLower() == "find one" || type.toLower() == "findone")
    102         return kFindOneRecord;
    103     else if (type.toLower() == "find daily" || type.toLower() == "finddaily")
    104         return kFindDailyRecord;
    105     else if (type.toLower() == "find weekly" || type.toLower() == "findweekly")
    106         return kFindWeeklyRecord;
     87    else if (type.toLower() == "record one" || type.toLower() == "one" ||
     88             type.toLower() == "find one" || type.toLower() == "findone")
     89        return kOneRecord;
     90    else if (type.toLower() == "record daily" || type.toLower() == "daily" ||
     91             type.toLower() == "find daily" || type.toLower() == "finddaily")
     92        return kDailyRecord;
     93    else if (type.toLower() == "record weekly" || type.toLower() == "weekly" ||
     94             type.toLower() == "find weekly" || type.toLower() == "findweekly")
     95        return kWeeklyRecord;
    10796    else if (type.toLower() == "template" || type.toLower() == "template")
    10897        return kTemplateRecord;
     
    121110        case kSingleRecord:
    122111            ret = QObject::tr("S", "RecTypeChar kSingleRecord");     break;
    123         case kTimeslotRecord:
    124             ret = QObject::tr("T", "RecTypeChar kTimeslotRecord");   break;
    125         case kWeekslotRecord:
    126             ret = QObject::tr("W", "RecTypeChar kWeekslotRecord");   break;
    127112        case kChannelRecord:
    128113            ret = QObject::tr("C", "RecTypeChar kChannelRecord");    break;
    129114        case kAllRecord:
    130115            ret = QObject::tr("A", "RecTypeChar kAllRecord");        break;
    131         case kFindOneRecord:
    132             ret = QObject::tr("F", "RecTypeChar kFindOneRecord");    break;
    133         case kFindDailyRecord:
    134             ret = QObject::tr("d", "RecTypeChar kFindDailyRecord");  break;
    135         case kFindWeeklyRecord:
    136             ret = QObject::tr("w", "RecTypeChar kFindWeeklyRecord"); break;
     116        case kOneRecord:
     117            ret = QObject::tr("1", "RecTypeChar kOneRecord");    break;
     118        case kDailyRecord:
     119            ret = QObject::tr("D", "RecTypeChar kDailyRecord");  break;
     120        case kWeeklyRecord:
     121            ret = QObject::tr("W", "RecTypeChar kWeeklyRecord"); break;
    137122        case kOverrideRecord:
    138123        case kDontRecord:
     
    140125            break;
    141126        case kTemplateRecord:
    142             ret = QObject::tr("t", "RecTypeChar kTemplateRecord");   break;
     127            ret = QObject::tr("T", "RecTypeChar kTemplateRecord");   break;
    143128        case kNotRecording:
    144129        default:
  • mythtv/libs/libmyth/recordingtypes.h

    r3872d2786 ra1f979393  
    2121    kNotRecording = 0,
    2222    kSingleRecord = 1,
    23     kTimeslotRecord,
    24     kChannelRecord,
    25     kAllRecord,
    26     kWeekslotRecord,
    27     kFindOneRecord,
    28     kOverrideRecord,
    29     kDontRecord,
    30     kFindDailyRecord,
    31     kFindWeeklyRecord,
    32     kTemplateRecord
     23    kDailyRecord = 2,
     24    kChannelRecord = 3,
     25    kAllRecord = 4,
     26    kWeeklyRecord = 5,
     27    kOneRecord = 6,
     28    kOverrideRecord = 7,
     29    kDontRecord = 8,
     30    //kFindDailyRecord = 9, (Obsolete)
     31    //kFindWeeklyRecord = 10, (Obsolete)
     32    kTemplateRecord = 11
    3333} RecordingType; // note stored in uint8_t in ProgramInfo
    3434MPUBLIC QString toString(RecordingType);
  • mythtv/libs/libmythbase/mythversion.h

    r3872d2786 ra1f979393  
    1313/// Including changes in the libmythbase, libmyth, libmythtv, libmythav* and
    1414/// libmythui class methods used by plug-ins.
    15 #define MYTH_BINARY_VERSION "0.27.20121204-1"
     15#define MYTH_BINARY_VERSION "0.27.20121204-2"
    1616
    1717/** \brief Increment this whenever the MythTV network protocol changes.
     
    5858#endif
    5959
    60 #define MYTH_DATABASE_VERSION "1308"
     60#define MYTH_DATABASE_VERSION "1309"
    6161
    6262
  • mythtv/libs/libmythtv/dbcheck.cpp

    r3872d2786 ra1f979393  
    22802280    if (dbver == "1307")
    22812281    {
    2282        
    22832282        const char *updates[] = {
    22842283"ALTER TABLE channel MODIFY COLUMN icon varchar(255) NOT NULL DEFAULT '';",
     
    22902289    }
    22912290   
     2291    if (dbver == "1308")
     2292    {
     2293        const char *updates[] = {
     2294// Add this time filter
     2295"REPLACE INTO recordfilter (filterid, description, clause, newruledefault) "
     2296"  VALUES (8, 'This time', 'ABS(TIMESTAMPDIFF(MINUTE, CONVERT_TZ("
     2297"  ADDTIME(RECTABLE.startdate, RECTABLE.starttime), ''UTC'', ''SYSTEM''), "
     2298"  CONVERT_TZ(program.starttime, ''UTC'', ''SYSTEM''))) MOD 1440 <= 10', 0)",
     2299// Add this day and time filter
     2300"REPLACE INTO recordfilter (filterid, description, clause, newruledefault) "
     2301"  VALUES (9, 'This day and time', 'ABS(TIMESTAMPDIFF(MINUTE, CONVERT_TZ("
     2302"  ADDTIME(RECTABLE.startdate, RECTABLE.starttime), ''UTC'', ''SYSTEM''), "
     2303"  CONVERT_TZ(program.starttime, ''UTC'', ''SYSTEM''))) MOD 10080 <= 10', 0)",
     2304// Convert old, normal Timeslot rules to Channel with time filter
     2305"UPDATE record SET type = 3, filter = filter|256 "
     2306"  WHERE type = 2 AND search = 0",
     2307// Convert old, normal Weekslot rules to Channel with day and time filter
     2308"UPDATE record SET type = 3, filter = filter|512 "
     2309"  WHERE type = 5 AND search = 0",
     2310// Convert old, normal find daily to new, power search, find daily
     2311"UPDATE record SET type = 2, search = 1, chanid = 0, station = '', "
     2312"  subtitle = '', description = CONCAT('program.title = ''', "
     2313"  REPLACE(title, '''', ''''''), ''''), "
     2314"  title = CONCAT(title, ' (Power Search)') WHERE type = 9 AND search = 0",
     2315// Convert old, normal find weekly to new, power search, find weekly
     2316"UPDATE record SET type = 5, search = 1, chanid = 0, station = '', "
     2317"  subtitle = '', description = CONCAT('program.title = ''', "
     2318"  REPLACE(title, '''', ''''''), ''''), "
     2319"  title = CONCAT(title, ' (Power Search)') WHERE type = 10 AND search = 0",
     2320// Convert old, find daily to new, find daily
     2321"UPDATE record SET type = 2 WHERE type = 9",
     2322// Convert old, find weekly to new, find weekly
     2323"UPDATE record SET type = 5 WHERE type = 10",
     2324NULL
     2325};
     2326        if (!performActualUpdate(&updates[0], "1309", dbver))
     2327            return false;
     2328    }
     2329
    22922330    return true;
    22932331}
  • mythtv/libs/libmythtv/recordinginfo.cpp

    r3872d2786 ra1f979393  
    773773 *   ApplyRecordStateChange(kSingleRecord) is called.
    774774 *   If the program recording status is kSingleRecording,
    775  *   ApplyRecordStateChange(kFindOneRecord) is called.
     775 *   ApplyRecordStateChange(kOneRecord) is called.
    776776 *   <br>etc...
    777777 *
    778  *   The states in order are: kNotRecording, kSingleRecord, kFindOneRecord,
    779  *     kWeekslotRecord, kFindWeeklyRecord, kTimeslotRecord, kFindDailyRecord,
    780  *     kChannelRecord, kAllRecord.<br>
     778 *   The states in order are: kNotRecording, kSingleRecord, kOneRecord,
     779 *     kWeeklyRecord, kDailyRecord, kChannelRecord, kAllRecord.<br>
    781780 *   And: kOverrideRecord, kDontRecord.
    782781 *
     
    795794            break;
    796795        case kSingleRecord:
    797             ApplyRecordStateChange(kFindOneRecord);
     796            ApplyRecordStateChange(kOneRecord);
    798797            break;
    799         case kFindOneRecord:
     798        case kOneRecord:
    800799            ApplyRecordStateChange(kAllRecord);
    801800            break;
     
    814813            ApplyRecordStateChange(kAllRecord);
    815814            break;
    816 /*
    817         case kNotRecording:
    818             ApplyRecordStateChange(kSingleRecord);
    819             break;
    820         case kSingleRecord:
    821             ApplyRecordStateChange(kFindOneRecord);
    822             break;
    823         case kFindOneRecord:
    824             ApplyRecordStateChange(kWeekslotRecord);
    825             break;
    826         case kWeekslotRecord:
    827             ApplyRecordStateChange(kFindWeeklyRecord);
    828             break;
    829         case kFindWeeklyRecord:
    830             ApplyRecordStateChange(kTimeslotRecord);
    831             break;
    832         case kTimeslotRecord:
    833             ApplyRecordStateChange(kFindDailyRecord);
    834             break;
    835         case kFindDailyRecord:
    836             ApplyRecordStateChange(kChannelRecord);
    837             break;
    838         case kChannelRecord:
    839             ApplyRecordStateChange(kAllRecord);
    840             break;
    841         case kAllRecord:
    842         default:
    843             ApplyRecordStateChange(kNotRecording);
    844             break;
    845         case kOverrideRecord:
    846             ApplyRecordStateChange(kDontRecord);
    847             break;
    848         case kDontRecord:
    849             ApplyRecordStateChange(kOverrideRecord);
    850             break;
    851 */
    852815    }
    853816}
  • mythtv/libs/libmythtv/recordingrule.cpp

    r3872d2786 ra1f979393  
    3535    m_inetref(), // String could be null when we trying to insert into DB
    3636    m_channelid(0),
    37     m_findday(-1),
     37    m_findday(0),
    3838    m_findtime(QTime::fromString("00:00:00", Qt::ISODate)),
    3939    m_findid(QDate(1970, 1, 1).daysTo(MythDate::current().toLocalTime().date())
     
    224224
    225225bool RecordingRule::LoadBySearch(RecSearchType lsearch, QString textname,
    226                                  QString forwhat, QString from)
     226                                 QString forwhat, QString from,
     227                                 ProgramInfo *pginfo)
    227228{
    228229    MSqlQuery query(MSqlQuery::InitCon());
     
    264265        m_subtitle = from;
    265266        m_description = forwhat;
    266         QDate ldate = MythDate::current().toLocalTime().date();
    267         m_findday = (ldate.dayOfWeek() + 1) % 7;
    268         QDate epoch(1970, 1, 1);
    269         m_findid = epoch.daysTo(ldate) + 719528;
     267
     268        if (pginfo)
     269        {
     270            m_findday =
     271                (pginfo->GetScheduledStartTime().toLocalTime().date()
     272                 .dayOfWeek() + 1) % 7;
     273            m_findtime = pginfo->GetScheduledStartTime().toLocalTime().time();
     274            m_findid = QDate(1970, 1, 1).daysTo(
     275                pginfo->GetScheduledStartTime().toLocalTime().date()) + 719528;
     276        }
    270277    }
    271278
     
    580587        MythDate::toString(endts, MythDate::kTime);
    581588
    582     if (m_type == kFindDailyRecord || m_type == kFindWeeklyRecord)
     589    if (m_type == kDailyRecord || m_type == kWeeklyRecord)
    583590    {
    584591        QDateTime ldt =
     
    586593                      Qt::LocalTime);
    587594        QString findfrom = MythDate::toString(ldt, MythDate::kTime);
    588         if (m_type == kFindWeeklyRecord)
     595        if (m_type == kWeeklyRecord)
    589596        {
    590597            int daynum = (m_findday + 5) % 7 + 1;
     
    704711    m_seriesid    = m_progInfo->GetSeriesID();
    705712    m_programid   = m_progInfo->GetProgramID();
    706     if (m_findday < 0)
     713    if (m_recordID <= 0)
    707714    {
    708715        m_findday =
     
    710717             .dayOfWeek() + 1) % 7;
    711718        m_findtime = m_progInfo->GetScheduledStartTime().toLocalTime().time();
    712 
    713         QDate epoch(1970, 1, 1);
    714         m_findid = epoch.daysTo(
     719        m_findid = QDate(1970, 1, 1).daysTo(
    715720            m_progInfo->GetScheduledStartTime().toLocalTime().date()) + 719528;
    716721    }
  • mythtv/libs/libmythtv/recordingrule.h

    r3872d2786 ra1f979393  
    4040    bool LoadByProgram(const ProgramInfo* proginfo);
    4141    bool LoadBySearch(RecSearchType lsearch, QString textname, QString forwhat,
    42                       QString from = "");
     42                      QString from = "", ProgramInfo *pginfo = NULL);
    4343    bool LoadTemplate(QString category, QString categoryType = "Default");
    4444
  • mythtv/libs/libmythtv/tv_rec.cpp

    r3872d2786 ra1f979393  
    807807
    808808/** \brief If not a premature stop, adds program to history of recorded
    809  *         programs. If the recording type is kFindOneRecord this find
     809 *         programs. If the recording type is kOneRecord this find
    810810 *         is removed.
    811811 *  \sa ProgramInfo::FinishedRecording(bool prematurestop)
  • mythtv/programs/mythbackend/housekeeper.cpp

    r3872d2786 ra1f979393  
    729729                  "LEFT JOIN oldfind ON oldfind.recordid = record.recordid "
    730730                  "WHERE type = :FINDONE AND oldfind.findid IS NOT NULL;");
    731     findq.bindValue(":FINDONE", kFindOneRecord);
     731    findq.bindValue(":FINDONE", kOneRecord);
    732732
    733733    if (findq.exec())
  • mythtv/programs/mythbackend/scheduler.cpp

    r3872d2786 ra1f979393  
    10591059    MarkShowingsList(*showinglist, p);
    10601060
    1061     if (p->GetRecordingRuleType() == kFindOneRecord ||
    1062         p->GetRecordingRuleType() == kFindDailyRecord ||
    1063         p->GetRecordingRuleType() == kFindWeeklyRecord)
     1061    if (p->GetRecordingRuleType() == kOneRecord ||
     1062        p->GetRecordingRuleType() == kDailyRecord ||
     1063        p->GetRecordingRuleType() == kWeeklyRecord)
    10641064    {
    10651065        showinglist = &recordidlistmap[p->GetRecordingRuleID()];
     
    32733273        weekday = false;
    32743274        break;
    3275     case kTimeslotRecord:
     3275    case kDailyRecord:
    32763276        progcount = 13;
    32773277        skipdays = 1;
     
    32803280                            lstartdt.time(), Qt::LocalTime);
    32813281        break;
    3282     case kWeekslotRecord:
     3282    case kWeeklyRecord:
    32833283        progcount = 2;
    32843284        skipdays = 7;
     
    34613461" END) ")
    34623462    .arg(kSingleRecord).arg(kOverrideRecord).arg(kDontRecord)
    3463     .arg(kFindOneRecord).arg(kFindDailyRecord).arg(kFindWeeklyRecord);
     3463    .arg(kOneRecord).arg(kDailyRecord).arg(kWeeklyRecord);
    34643464
    34653465static QString progfindid = QString(
     
    34783478"  ELSE 0 "
    34793479" END) ")
    3480         .arg(kFindOneRecord)
    3481         .arg(kFindDailyRecord)
    3482         .arg(kFindWeeklyRecord)
     3480        .arg(kOneRecord)
     3481        .arg(kDailyRecord)
     3482        .arg(kWeeklyRecord)
    34833483        .arg(kOverrideRecord);
    34843484
     
    35503550    query.prepare("SELECT NULL from record "
    35513551                  "WHERE type = :FINDONE AND findid <= 0;");
    3552     query.bindValue(":FINDONE", kFindOneRecord);
     3552    query.bindValue(":FINDONE", kOneRecord);
    35533553    if (!query.exec())
    35543554    {
     
    35643564                      "WHERE type = :FINDONE AND findid <= 0;");
    35653565        query.bindValue(":FINDID", findtoday);
    3566         query.bindValue(":FINDONE", kFindOneRecord);
     3566        query.bindValue(":FINDONE", kOneRecord);
    35673567        if (!query.exec())
    35683568            MythDB::DBError("UpdateMatches4", query);
     
    35983598    filterClause + QString(" AND "
    35993599
    3600 "((RECTABLE.type = %1 " // allrecord
    3601 "OR RECTABLE.type = %2 " // findonerecord
    3602 "OR RECTABLE.type = %3 " // finddailyrecord
    3603 "OR RECTABLE.type = %4) " // findweeklyrecord
     3600"((RECTABLE.type = %1 " // all record
     3601"  OR RECTABLE.type = %2 " // one record
     3602"  OR RECTABLE.type = %3 " // daily record
     3603"  OR RECTABLE.type = %4) " // weekly record
    36043604" OR "
    36053605" ((RECTABLE.station = channel.callsign) " // channel matches
    36063606"  AND "
    3607 "  ((RECTABLE.type = %5) " // channelrecord
     3607"  ((RECTABLE.type = %5) " // channel record
    36083608"   OR"
    3609 "   (( TIME(CONVERT_TZ(ADDTIME(RECTABLE.startdate, RECTABLE.starttime), 'UTC', 'SYSTEM')) = TIME(CONVERT_TZ(program.starttime, 'UTC', 'SYSTEM'))) " // timeslot matches
     3609"   ((ADDTIME(RECTABLE.startdate, RECTABLE.starttime) = program.starttime) " // date/time matches
    36103610"    AND "
    3611 "    ((RECTABLE.type = %6) " // timeslotrecord
    3612 "     OR"
    3613 "     ((DAYOFWEEK(CONVERT_TZ(ADDTIME(RECTABLE.startdate, RECTABLE.starttime), 'UTC', 'SYSTEM')) = DAYOFWEEK(CONVERT_TZ(program.starttime, 'UTC', 'SYSTEM')) "
    3614 "      AND "
    3615 "      ((RECTABLE.type = %7) " // weekslotrecord
    3616 "       OR"
    3617 "       ((ADDTIME(RECTABLE.startdate, RECTABLE.starttime) = program.starttime) " // date/time matches
    3618 "        AND (RECTABLE.type <> %8)" // single,override,don't,etc.
    3619 "        )"
    3620 "       )"
    3621 "      )"
    3622 "     )"
    3623 "    )"
     3611"    (RECTABLE.type = %6 "
     3612"     OR RECTABLE.type = %7 "
     3613"     OR RECTABLE.type = %8)" // single/override/don't record
    36243614"   )"
    36253615"  )"
     
    36273617") ")
    36283618            .arg(kAllRecord)
    3629             .arg(kFindOneRecord)
    3630             .arg(kFindDailyRecord)
    3631             .arg(kFindWeeklyRecord)
     3619            .arg(kOneRecord)
     3620            .arg(kDailyRecord)
     3621            .arg(kWeeklyRecord)
    36323622            .arg(kChannelRecord)
    3633             .arg(kTimeslotRecord)
    3634             .arg(kWeekslotRecord)
    3635             .arg(kNotRecording);
     3623            .arg(kSingleRecord)
     3624            .arg(kOverrideRecord)
     3625            .arg(kDontRecord);
    36363626
    36373627        query.replace("RECTABLE", recordTable);
     
    42664256        "INNER JOIN channel ON (channel.chanid = RECTABLE.chanid) "
    42674257        "LEFT JOIN recordmatch on RECTABLE.recordid = recordmatch.recordid "
    4268         "WHERE (type = %1 OR type = %2 OR type = %3 OR type = %4) AND "
     4258        "WHERE (type = %1 OR type = %2) AND "
    42694259        "      recordmatch.chanid IS NULL")
    42704260        .arg(kSingleRecord)
    4271         .arg(kTimeslotRecord)
    4272         .arg(kWeekslotRecord)
    42734261        .arg(kOverrideRecord);
    42744262
     
    43044292        QDateTime endts(
    43054293            result.value(18).toDate(), result.value(19).toTime(), Qt::UTC);
    4306 
    4307         if (rectype == kTimeslotRecord)
    4308         {
    4309             int days = startts.daysTo(now);
    4310 
    4311             startts = startts.addDays(days);
    4312             endts   = endts.addDays(days);
    4313 
    4314             if (endts < now)
    4315             {
    4316                 startts = startts.addDays(1);
    4317                 endts   = endts.addDays(1);
    4318             }
    4319         }
    4320         else if (rectype == kWeekslotRecord)
    4321         {
    4322             int weeks = (startts.daysTo(now) + 6) / 7;
    4323 
    4324             startts = startts.addDays(weeks * 7);
    4325             endts   = endts.addDays(weeks * 7);
    4326 
    4327             if (endts < now)
    4328             {
    4329                 startts = startts.addDays(7);
    4330                 endts   = endts.addDays(7);
    4331             }
    4332         }
    43334294
    43344295        QDateTime recstartts = startts.addSecs(result.value(25).toInt() * -60);
     
    44314392    {
    44324393        RecordingType rectype = RecordingType(result.value(21).toInt());
    4433         QDateTime startts;
    4434         QDateTime endts;
    4435         if (rectype == kSingleRecord   ||
    4436             rectype == kDontRecord     ||
    4437             rectype == kOverrideRecord ||
    4438             rectype == kTimeslotRecord ||
    4439             rectype == kWeekslotRecord)
    4440         {
    4441             startts = QDateTime(result.value(16).toDate(),
    4442                                 result.value(17).toTime(), Qt::UTC);
    4443             endts = QDateTime(result.value(18).toDate(),
    4444                               result.value(19).toTime(), Qt::UTC);
    4445         }
    4446         else
    4447         {
    4448             // put currentDateTime() in time fields to prevent
    4449             // Invalid date/time warnings later
    4450             startts = QDateTime(
    4451                 MythDate::current().date(), QTime(0,0), Qt::UTC);
     4394        QDateTime startts = QDateTime(result.value(16).toDate(),
     4395                                      result.value(17).toTime(), Qt::UTC);
     4396        QDateTime endts = QDateTime(result.value(18).toDate(),
     4397                                    result.value(19).toTime(), Qt::UTC);
     4398        // Prevent invalid date/time warnings later
     4399        if (!startts.isValid())
     4400            startts = QDateTime(MythDate::current().date(), QTime(0,0),
     4401                                Qt::UTC);
     4402        if (!endts.isValid())
    44524403            endts = startts;
    4453         }
    44544404
    44554405        proglist.push_back(new RecordingInfo(
  • mythtv/programs/mythfrontend/customedit.cpp

    r3872d2786 ra1f979393  
    679679        record->LoadBySearch(kPowerSearch, m_titleEdit->GetText(),
    680680                             evaluate(m_descriptionEdit->GetText()),
    681                              m_subtitleEdit->GetText());
     681                             m_subtitleEdit->GetText(),
     682                             m_pginfo->GetTitle().isEmpty() ? NULL : m_pginfo);
    682683    }
    683684
  • mythtv/programs/mythfrontend/guidegrid.cpp

    r3872d2786 ra1f979393  
    13011301                recFlag = 1;
    13021302                break;
    1303             case kTimeslotRecord:
     1303            case kDailyRecord:
    13041304                recFlag = 2;
    13051305                break;
     
    13101310                recFlag = 4;
    13111311                break;
    1312             case kWeekslotRecord:
     1312            case kWeeklyRecord:
    13131313                recFlag = 5;
    13141314                break;
    1315             case kFindOneRecord:
    1316             case kFindDailyRecord:
    1317             case kFindWeeklyRecord:
     1315            case kOneRecord:
    13181316                recFlag = 6;
    13191317                break;
  • mythtv/programs/mythfrontend/playbackbox.cpp

    r3872d2786 ra1f979393  
    19411941            // Daily
    19421942            if (spanHours[recid] < 50 ||
    1943                 recType[recid] == kTimeslotRecord ||
    1944                 recType[recid] == kFindDailyRecord)
     1943                recType[recid] == kDailyRecord)
    19451944            {
    19461945                if (delHours[recid] < m_watchListBlackOut * 4)
     
    19741973            // Weekly
    19751974            else if (nextHours[recid] ||
    1976                      recType[recid] == kWeekslotRecord ||
    1977                      recType[recid] == kFindWeeklyRecord)
     1975                     recType[recid] == kWeeklyRecord)
    19781976
    19791977            {
  • mythtv/programs/mythfrontend/programrecpriority.cpp

    r3872d2786 ra1f979393  
    15201520        QString channame = progInfo->channame;
    15211521        if ((progInfo->recType == kAllRecord) ||
    1522             (progInfo->recType == kFindOneRecord) ||
    1523             (progInfo->recType == kFindDailyRecord) ||
    1524             (progInfo->recType == kFindWeeklyRecord))
     1522            (progInfo->recType == kOneRecord) ||
     1523            (progInfo->recType == kDailyRecord) ||
     1524            (progInfo->recType == kWeeklyRecord))
    15251525            channame = tr("Any");
    15261526        item->SetText(channame, "channel", state);
    15271527        QString channum = progInfo->chanstr;
    15281528        if ((progInfo->recType == kAllRecord) ||
    1529             (progInfo->recType == kFindOneRecord) ||
    1530             (progInfo->recType == kFindDailyRecord) ||
    1531             (progInfo->recType == kFindWeeklyRecord))
     1529            (progInfo->recType == kOneRecord) ||
     1530            (progInfo->recType == kDailyRecord) ||
     1531            (progInfo->recType == kWeeklyRecord))
    15321532            channum = tr("Any");
    15331533        item->SetText(channum, "channum", state);
    15341534        QString callsign = progInfo->chansign;
    15351535        if ((progInfo->recType == kAllRecord) ||
    1536             (progInfo->recType == kFindOneRecord) ||
    1537             (progInfo->recType == kFindDailyRecord) ||
    1538             (progInfo->recType == kFindWeeklyRecord))
     1536            (progInfo->recType == kOneRecord) ||
     1537            (progInfo->recType == kDailyRecord) ||
     1538            (progInfo->recType == kWeeklyRecord))
    15391539            callsign = tr("Any");
    15401540        item->SetText(callsign, "callsign", state);
     
    16521652        QString channame = pgRecInfo->channame;
    16531653        if ((pgRecInfo->rectype == kAllRecord) ||
    1654             (pgRecInfo->rectype == kFindOneRecord) ||
    1655             (pgRecInfo->rectype == kFindDailyRecord) ||
    1656             (pgRecInfo->rectype == kFindWeeklyRecord))
     1654            (pgRecInfo->rectype == kOneRecord) ||
     1655            (pgRecInfo->rectype == kDailyRecord) ||
     1656            (pgRecInfo->rectype == kWeeklyRecord))
    16571657            channame = tr("Any");
    16581658        m_channameText->SetText(channame);
     
    16631663        QString channum = pgRecInfo->chanstr;
    16641664        if ((pgRecInfo->rectype == kAllRecord) ||
    1665             (pgRecInfo->rectype == kFindOneRecord) ||
    1666             (pgRecInfo->rectype == kFindDailyRecord) ||
    1667             (pgRecInfo->rectype == kFindWeeklyRecord))
     1665            (pgRecInfo->rectype == kOneRecord) ||
     1666            (pgRecInfo->rectype == kDailyRecord) ||
     1667            (pgRecInfo->rectype == kWeeklyRecord))
    16681668            channum = tr("Any");
    16691669        m_channumText->SetText(channum);
     
    16741674        QString callsign = pgRecInfo->chansign;
    16751675        if ((pgRecInfo->rectype == kAllRecord) ||
    1676             (pgRecInfo->rectype == kFindOneRecord) ||
    1677             (pgRecInfo->rectype == kFindDailyRecord) ||
    1678             (pgRecInfo->rectype == kFindWeeklyRecord))
     1676            (pgRecInfo->rectype == kOneRecord) ||
     1677            (pgRecInfo->rectype == kDailyRecord) ||
     1678            (pgRecInfo->rectype == kWeeklyRecord))
    16791679            callsign = tr("Any");
    16801680        m_callsignText->SetText(callsign);
  • mythtv/programs/mythfrontend/schedulecommon.cpp

    r3872d2786 ra1f979393  
    245245                    recinfo.GetRecordingStatus() != rsOtherRecording &&
    246246                    recinfo.GetRecordingStatus() != rsOtherTuning &&
    247                     recinfo.GetRecordingRuleType() != kFindOneRecord &&
     247                    recinfo.GetRecordingRuleType() != kOneRecord &&
    248248                    !((recinfo.GetFindID() == 0 ||
    249249                       !IsFindApplicable(recinfo)) &&
     
    284284
    285285                    if (recinfo.GetRecordingRuleType() != kSingleRecord &&
    286                         recinfo.GetRecordingRuleType() != kFindOneRecord)
     286                        recinfo.GetRecordingRuleType() != kOneRecord)
    287287                    {
    288288                        menuPopup->AddButton(tr("Add Override"),
     
    428428                        recinfo.GetDuplicateCheckMethod();
    429429
    430                     if (recinfo.GetRecordingRuleType() != kFindOneRecord &&
     430                    if (recinfo.GetRecordingRuleType() != kOneRecord &&
    431431                        !((recinfo.GetFindID() == 0 ||
    432432                           !IsFindApplicable(recinfo)) &&
     
    454454
    455455                if (recinfo.GetRecordingRuleType() != kSingleRecord &&
    456                     recinfo.GetRecordingRuleType() != kFindOneRecord &&
     456                    recinfo.GetRecordingRuleType() != kOneRecord &&
    457457                    recinfo.GetRecordingStatus() != rsNotListed)
    458458                {
     
    558558                if (recInfo.GetRecordingRuleType() == kSingleRecord ||
    559559                    recInfo.GetRecordingRuleType() == kOverrideRecord ||
    560                     recInfo.GetRecordingRuleType() == kFindOneRecord)
     560                    recInfo.GetRecordingRuleType() == kOneRecord)
    561561                    EditScheduled(&recInfo);
    562562                else
     
    582582bool ScheduleCommon::IsFindApplicable(const RecordingInfo& recInfo) const
    583583{
    584     return recInfo.GetRecordingRuleType() == kFindDailyRecord ||
    585            recInfo.GetRecordingRuleType() == kFindWeeklyRecord;
    586 }
     584    return recInfo.GetRecordingRuleType() == kDailyRecord ||
     585           recInfo.GetRecordingRuleType() == kWeeklyRecord;
     586}
  • mythtv/programs/mythfrontend/scheduleeditor.cpp

    r3872d2786 ra1f979393  
    5353static QString fs6(QT_TRANSLATE_NOOP("SchedFilterEditor", "This episode"));
    5454static QString fs7(QT_TRANSLATE_NOOP("SchedFilterEditor", "This series"));
     55static QString fs8(QT_TRANSLATE_NOOP("SchedFilterEditor", "This time"));
     56static QString fs9(QT_TRANSLATE_NOOP("SchedFilterEditor", "This day and time"));
    5557
    5658void *ScheduleEditor::RunScheduleEditor(ProgramInfo *proginfo, void *player)
     
    268270                                     ENUM_TO_QVARIANT(kOverrideRecord));
    269271            new MythUIButtonListItem(m_rulesList,
    270                                 tr("Do not allow this showing to be recorded"),
     272                                tr("Do not record this showing"),
    271273                                     ENUM_TO_QVARIANT(kDontRecord));
    272274        }
     
    279281                                     tr("Do not record this program"),
    280282                                     ENUM_TO_QVARIANT(kNotRecording));
    281 
    282283            if (hasChannel)
    283284                new MythUIButtonListItem(m_rulesList,
     
    286287            if (!isManual)
    287288                new MythUIButtonListItem(m_rulesList,
    288                                         tr("Record one showing of this title"),
    289                                          ENUM_TO_QVARIANT(kFindOneRecord));
    290             if (hasChannel)
     289                                         tr("Record only one showing"),
     290                                         ENUM_TO_QVARIANT(kOneRecord));
     291            if (!hasChannel || isManual)
    291292                new MythUIButtonListItem(m_rulesList,
    292                                       tr("Record in this timeslot every week"),
    293                                          ENUM_TO_QVARIANT(kWeekslotRecord));
    294             if (!isManual)
     293                                         tr("Record one showing every week"),
     294                                         ENUM_TO_QVARIANT(kWeeklyRecord));
     295            if (!hasChannel || isManual)
    295296                new MythUIButtonListItem(m_rulesList,
    296                              tr("Record one showing of this title every week"),
    297                                          ENUM_TO_QVARIANT(kFindWeeklyRecord));
    298             if (hasChannel)
    299                 new MythUIButtonListItem(m_rulesList,
    300                                        tr("Record in this timeslot every day"),
    301                                          ENUM_TO_QVARIANT(kTimeslotRecord));
    302             if (!isManual)
    303                 new MythUIButtonListItem(m_rulesList,
    304                               tr("Record one showing of this title every day"),
    305                                          ENUM_TO_QVARIANT(kFindDailyRecord));
     297                                         tr("Record one showing every day"),
     298                                         ENUM_TO_QVARIANT(kDailyRecord));
    306299            if (hasChannel && !isManual)
    307300                new MythUIButtonListItem(m_rulesList,
    308                                       tr("Record at any time on this channel"),
     301                                     tr("Record all showings on this channel"),
    309302                                         ENUM_TO_QVARIANT(kChannelRecord));
    310303            if (!isManual)
    311304                new MythUIButtonListItem(m_rulesList,
    312                                          ("Record at any time on any channel"),
     305                                         ("Record all showings"),
    313306                                         ENUM_TO_QVARIANT(kAllRecord));
    314307        }
Note: See TracChangeset for help on using the changeset viewer.