Ticket #13473: mythtv-fixes-30-recording-groups.patch

File mythtv-fixes-30-recording-groups.patch, 6.4 KB (added by mdabbs, 7 years ago)

Patch to provide ability to get RecGroupIDs form the DB instead of the enumeration

  • mythtv/libs/libmythtv/recordinginfo.cpp

    diff --git a/mythtv/libs/libmythtv/recordinginfo.cpp b/mythtv/libs/libmythtv/recordinginfo.cpp
    index 143b37f431..b07379c916 100644
    a b uint RecordingInfo::GetRecgroupID(const QString& recGroup)  
    16381638    return query.value(0).toUInt();
    16391639}
    16401640
     1641/**
     1642 *  \brief Helper for converting SpecialRecordingGroups to actual IDs
     1643 */
     1644uint RecordingInfo::GetSpecialRecgroupID(SpecialRecordingGroups group)
     1645{
     1646    static QString names[3] = { QString("Default"), QString("LiveTV"), QString("Deleted") };
     1647
     1648    return GetRecgroupID(names[group]);
     1649}
     1650
    16411651/**
    16421652 *  \brief Temporary helper during transition from string to ID
    16431653 */
  • mythtv/libs/libmythtv/recordinginfo.h

    diff --git a/mythtv/libs/libmythtv/recordinginfo.h b/mythtv/libs/libmythtv/recordinginfo.h
    index 74a5ad2a59..cedd5222e2 100644
    a b class MTV_PUBLIC RecordingInfo : public ProgramInfo  
    231231                  LoadStatus *status = nullptr);
    232232
    233233    typedef enum {
    234         kDefaultRecGroup     = 1, // Auto-increment columns start at one
    235         kLiveTVRecGroup      = 2,
    236         kDeletedRecGroup     = 3,
     234        kDefaultRecGroup     = 0, // Auto-increment columns start at one
     235        kLiveTVRecGroup      = 1,
     236        kDeletedRecGroup     = 2,
    237237    } SpecialRecordingGroups;
    238238
    239239  public:
    class MTV_PUBLIC RecordingInfo : public ProgramInfo  
    309309    // Temporary while we transition from string to integer
    310310    static QString GetRecgroupString(uint recGroupID);
    311311    static uint GetRecgroupID(const QString &recGroup);
     312    static uint GetSpecialRecgroupID(SpecialRecordingGroups group);
    312313
    313314    // File specific metdata
    314315    void LoadRecordingFile();
  • mythtv/libs/libmythtv/recordingrule.cpp

    diff --git a/mythtv/libs/libmythtv/recordingrule.cpp b/mythtv/libs/libmythtv/recordingrule.cpp
    index 6092b0b2fd..cf55e89569 100644
    a b RecordingRule::RecordingRule()  
    4949    m_dupIn(kDupsInAll),
    5050    m_filter(0),
    5151    m_recProfile(tr("Default")),
    52     m_recGroupID(RecordingInfo::kDefaultRecGroup),
     52    m_recGroupID(RecordingInfo::GetSpecialRecgroupID(RecordingInfo::kDefaultRecGroup)),
    5353    m_storageGroup("Default"),
    5454    m_playGroup("Default"),
    5555    m_autoExpire(false),
  • mythtv/libs/libmythtv/tv_rec.cpp

    diff --git a/mythtv/libs/libmythtv/tv_rec.cpp b/mythtv/libs/libmythtv/tv_rec.cpp
    index 00c7968a35..db27638dc3 100644
    a b bool TVRec::CreateLiveTVRingBuffer(const QString & channum)  
    46854685
    46864686    pginfo->SaveAutoExpire(kLiveTVAutoExpire);
    46874687    if (!pseudoLiveTVRecording)
    4688         pginfo->ApplyRecordRecGroupChange(RecordingInfo::kLiveTVRecGroup);
     4688        pginfo->ApplyRecordRecGroupChange(RecordingInfo::GetSpecialRecgroupID(RecordingInfo::kLiveTVRecGroup));
    46894689
    46904690    bool discont = (tvchain->TotalSize() > 0);
    46914691    tvchain->AppendNewProgram(pginfo, channel->GetChannelName(),
    bool TVRec::SwitchLiveTVRingBuffer(const QString & channum,  
    47394739    pginfo->MarkAsInUse(true, kRecorderInUseID);
    47404740    pginfo->SaveAutoExpire(kLiveTVAutoExpire);
    47414741    if (!pseudoLiveTVRecording)
    4742         pginfo->ApplyRecordRecGroupChange(RecordingInfo::kLiveTVRecGroup);
     4742        pginfo->ApplyRecordRecGroupChange(RecordingInfo::GetSpecialRecgroupID(RecordingInfo::kLiveTVRecGroup));
    47434743    tvchain->AppendNewProgram(pginfo, channel->GetChannelName(),
    47444744                              channel->GetInputName(), discont);
    47454745
  • mythtv/programs/mythbackend/services/dvr.cpp

    diff --git a/mythtv/programs/mythbackend/services/dvr.cpp b/mythtv/programs/mythbackend/services/dvr.cpp
    index 6866f9aead..206d1e0bd0 100644
    a b uint Dvr::AddRecordSchedule (  
    11721172    rule.m_recProfile = sRecProfile;
    11731173    rule.m_recGroupID = RecordingInfo::GetRecgroupID(sRecGroup);
    11741174    if (rule.m_recGroupID == 0)
    1175         rule.m_recGroupID = RecordingInfo::kDefaultRecGroup;
     1175        rule.m_recGroupID = RecordingInfo::GetSpecialRecgroupID(RecordingInfo::kDefaultRecGroup);
    11761176    rule.m_storageGroup = sStorageGroup;
    11771177    rule.m_playGroup = sPlayGroup;
    11781178
    bool Dvr::UpdateRecordSchedule ( uint nRecordId,  
    13341334    pRule.m_recProfile = sRecProfile;
    13351335    pRule.m_recGroupID = RecordingInfo::GetRecgroupID(sRecGroup);
    13361336    if (pRule.m_recGroupID == 0)
    1337         pRule.m_recGroupID = RecordingInfo::kDefaultRecGroup;
     1337        pRule.m_recGroupID = RecordingInfo::GetSpecialRecgroupID(RecordingInfo::kDefaultRecGroup);
    13381338    pRule.m_storageGroup = sStorageGroup;
    13391339    pRule.m_playGroup = sPlayGroup;
    13401340
  • mythtv/programs/mythbackend/upnpcdstv.cpp

    diff --git a/mythtv/programs/mythbackend/upnpcdstv.cpp b/mythtv/programs/mythbackend/upnpcdstv.cpp
    index 19b3bcc4c9..4ef497b6f0 100644
    a b QString UPnpCDSTv::BuildWhereClause( QStringList clauses,  
    14611461    // Ignore recordings in the LiveTV and Deleted recgroups
    14621462    // We cannot currently prevent LiveTV recordings from being expired while
    14631463    // being streamed to a upnp device, so there's no point in listing them.
    1464     QString liveTVGroup = RecordingInfo::GetRecgroupString(RecordingInfo::kLiveTVRecGroup);
     1464    QString liveTVGroup = RecordingInfo::GetRecgroupString(RecordingInfo::GetSpecialRecgroupID(RecordingInfo::kLiveTVRecGroup));
    14651465    clauses.append(QString("g.recgroup != '%1'").arg(liveTVGroup));
    1466     QString deletedGroup = RecordingInfo::GetRecgroupString(RecordingInfo::kDeletedRecGroup);
     1466    QString deletedGroup = RecordingInfo::GetRecgroupString(RecordingInfo::GetSpecialRecgroupID(RecordingInfo::kDeletedRecGroup));
    14671467    clauses.append(QString("g.recgroup != '%1'").arg(deletedGroup));
    14681468
    14691469    if (tokens["recording"].toInt() > 0)
  • mythtv/programs/mythfrontend/statusbox.cpp

    diff --git a/mythtv/programs/mythfrontend/statusbox.cpp b/mythtv/programs/mythfrontend/statusbox.cpp
    index e45016af50..b92fa0577b 100644
    a b void StatusBox::customEvent(QEvent *event)  
    485485                    if ((rec)->GetRecordingGroup() == "LiveTV")
    486486                    {
    487487                        RecordingInfo ri(*rec);
    488                         ri.ApplyRecordRecGroupChange(RecordingInfo::kDefaultRecGroup);
     488                        ri.ApplyRecordRecGroupChange(RecordingInfo::GetSpecialRecgroupID(RecordingInfo::kDefaultRecGroup));
    489489                        *rec = ri;
    490490                    }
    491491                }