Ticket #7306: mythcommflag_video_cutlist.diff

File mythcommflag_video_cutlist.diff, 3.8 KB (added by stichnot@…, 10 years ago)
  • programs/mythcommflag/main.cpp

     
    230230    return COMMFLAG_EXIT_NO_ERROR_WITH_NO_BREAKS;
    231231}
    232232
    233 int SetCutList(QString chanid, QString starttime, QString newCutList)
     233int SetCutList(QString chanid, QString starttime, QString newCutList,
     234               ProgramInfo *pginfo=NULL)
    234235{
    235236    QMap<long long, int> cutlist;
    236237
     
    245246        cutlist[cutpair[1].toInt()] = MARK_CUT_END;
    246247    }
    247248
    248     ProgramInfo *pginfo =
    249         ProgramInfo::GetProgramFromRecorded(chanid, starttime);
     249    if (pginfo == NULL)
     250    {
     251        pginfo = ProgramInfo::GetProgramFromRecorded(chanid, starttime);
    250252
    251     if (!pginfo)
    252     {
    253         VERBOSE(VB_IMPORTANT,
    254                 QString("No program data exists for channel %1 at %2")
    255                 .arg(chanid).arg(starttime));
    256         return COMMFLAG_BUGGY_EXIT_NO_CHAN_DATA;
     253        if (!pginfo)
     254        {
     255            VERBOSE(VB_IMPORTANT,
     256                    QString("No program data exists for channel %1 at %2")
     257                    .arg(chanid).arg(starttime));
     258            return COMMFLAG_BUGGY_EXIT_NO_CHAN_DATA;
     259        }
    257260    }
    258261
    259262    pginfo->SetCutList(cutlist);
     
    263266    return COMMFLAG_EXIT_NO_ERROR_WITH_NO_BREAKS;
    264267}
    265268
    266 int GetMarkupList(QString list, QString chanid, QString starttime)
     269int GetMarkupList(QString list, QString chanid, QString starttime,
     270                  ProgramInfo *pginfo=NULL)
    267271{
    268272    QMap<long long, int> cutlist;
    269273    QMap<long long, int>::Iterator it;
    270274    QString result;
    271275
    272     ProgramInfo *pginfo =
    273         ProgramInfo::GetProgramFromRecorded(chanid, starttime);
     276    if (pginfo == NULL)
     277    {
     278        pginfo = ProgramInfo::GetProgramFromRecorded(chanid, starttime);
    274279
    275     if (!pginfo)
    276     {
    277         VERBOSE(VB_IMPORTANT,
    278                 QString("No program data exists for channel %1 at %2")
    279                 .arg(chanid).arg(starttime));
    280         return COMMFLAG_BUGGY_EXIT_NO_CHAN_DATA;
     280        if (!pginfo)
     281        {
     282            VERBOSE(VB_IMPORTANT,
     283                    QString("No program data exists for channel %1 at %2")
     284                    .arg(chanid).arg(starttime));
     285            return COMMFLAG_BUGGY_EXIT_NO_CHAN_DATA;
     286        }
    281287    }
    282288
    283289    if (list == "cutlist")
     
    12351241    if (copyToCutlist)
    12361242        return CopySkipListToCutList(chanid, starttime);
    12371243
    1238     if (clearCutlist)
     1244    if (clearCutlist && !isVideo)
    12391245        return SetCutList(chanid, starttime, "");
    12401246
    1241     if (!newCutList.isEmpty())
     1247    if (!newCutList.isEmpty() && !isVideo)
    12421248        return SetCutList(chanid, starttime, newCutList);
    12431249
    1244     if (getCutlist)
     1250    if (getCutlist && !isVideo)
    12451251        return GetMarkupList("cutlist", chanid, starttime);
    12461252
    12471253    if (getSkipList)
     
    13091315            cerr << "------  --------------  "
    13101316                    "-----------------------------------------  ------\n";
    13111317        }
    1312         else
     1318        else if (newCutList.isEmpty() && !clearCutlist && !getCutlist)
    13131319        {
    13141320            cerr << "Building seek table for: "
    13151321                 << filename.toLocal8Bit().constData() << endl;
     
    13281334        else
    13291335            pginfo->pathname = QFileInfo(filename).absoluteFilePath();
    13301336
    1331         result = BuildVideoMarkup(pginfo, useDB);
     1337        if (!newCutList.isEmpty())
     1338            result = SetCutList(chanid, starttime, newCutList, pginfo);
     1339        else if (clearCutlist)
     1340            result = SetCutList(chanid, starttime, "", pginfo);
     1341        else if (getCutlist)
     1342            result = GetMarkupList("cutlist", chanid, starttime, pginfo);
     1343        else
     1344            result = BuildVideoMarkup(pginfo, useDB);
    13321345
    13331346        delete pginfo;
    13341347    }