[mythtv-users] Problem with part 1 and part 2 of a show having the

Chris Pinkham cpinkham at bc2va.org
Sun Nov 2 23:10:47 EST 2003


> I have set Mythtv to record Justice League.  It has been airing 2 30
> minute parts with the same title.  What ends up happening is that the
> first 30 minute part gets recorded while the second does not because
> mythtv will not record a show that it already has recorded.  How do I
> get around this?  

If you want, you can try the attached patch.  It's something I added to 
my tree but I haven't had a chance to get it tested too much.  I hope to
get it in CVS this week sometime.  It turns the "Record Duplicates" checkbox
into a combobox with 3 options:

	* Never record duplicates
	* Record only if previous instance was deleted
	* Always record dups (this is what you're looking for).

You need to apply it in the mythtv/libs/libmythtv directory.  It just
updates scheduledrecording.cpp.
-- 

Chris

-------------- next part --------------
Index: scheduledrecording.cpp
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/scheduledrecording.cpp,v
retrieving revision 1.44
diff -u -r1.44 scheduledrecording.cpp
--- scheduledrecording.cpp	3 Oct 2003 07:35:00 -0000	1.44
+++ scheduledrecording.cpp	3 Nov 2003 04:03:55 -0000
@@ -73,12 +73,15 @@
     };
 };
 
-class SRRecordDups: public CheckBoxSetting, public SRSetting {
+class SRRecordDups: public ComboBoxSetting, public SRSetting {
 public:
     SRRecordDups(const ScheduledRecording& parent):
         SRSetting(parent, "recorddups") {
-        setLabel(QObject::tr("Allow recording even if duplicate episode"));
-        setValue(false);
+        setLabel(QObject::tr("Record duplicates"));
+        addSelection(QObject::tr("Never"), QString::number(kRecordDupsNever));
+        addSelection(QObject::tr("If deleted"),
+                     QString::number(kRecordDupsIfDeleted));
+        addSelection(QObject::tr("Always"), QString::number(kRecordDupsAlways));
     };
 };
 
@@ -316,12 +340,20 @@
              }
              else
              {
-                 // if recorddups is set then check if recording still exists
-                 // in recorded table otherwise check for dup in oldrecorded.
-                 if (result.value(13).toInt())
-                     proginfo->duplicate = result.value(14).toInt();
-                 else
-                     proginfo->duplicate = result.value(10).toInt();
+                 // Check if duplicate
+                 switch (result.value(13).toInt())
+                 {
+                     case kRecordDupsIfDeleted:  // check recorded table
+                             proginfo->duplicate = result.value(14).toInt();
+                             break;
+                     case kRecordDupsAlways:     // always record
+                             proginfo->duplicate = false;
+                             break;
+                     default:
+                     case kRecordDupsNever:      // check oldrecorded table
+                             proginfo->duplicate = result.value(10).toInt();
+                             break;
+                 }
              }
 
              if (proginfo->duplicate)
@@ -649,7 +681,7 @@
     gContext->GetScreenSettings(wmult, hmult);
 
     MythDialog* dialog = new ConfigurationDialogWidget(parent, name);
-    QVBoxLayout* vbox = new QVBoxLayout(dialog, (int)(20 * wmult));
+    QVBoxLayout* vbox = new QVBoxLayout(dialog, (int)(10 * wmult));
 
     if (m_pginfo)
     {
@@ -666,14 +698,14 @@
     vbox->addWidget(type->configWidget(this, dialog));
 
     QHBoxLayout* hbox = new QHBoxLayout(vbox, (int)(20 * wmult));
-    QVBoxLayout* vbox1 = new QVBoxLayout(hbox, (int)(20 * wmult));
-    QVBoxLayout* vbox2 = new QVBoxLayout(hbox, (int)(20 * wmult));
+    QVBoxLayout* vbox1 = new QVBoxLayout(hbox, (int)(10 * wmult));
+    QVBoxLayout* vbox2 = new QVBoxLayout(hbox, (int)(10 * wmult));
 
     vbox1->addWidget(profile->configWidget(this, dialog));
     vbox1->addWidget(rank->configWidget(this, dialog));
+    vbox1->addWidget(autoexpire->configWidget(this, dialog));
 
     vbox2->addWidget(recorddups->configWidget(this, dialog));
-    vbox2->addWidget(autoexpire->configWidget(this, dialog));
 
     vbox->addWidget(maxepisodes->configWidget(this, dialog));
     vbox->addWidget(maxnewest->configWidget(this, dialog));


More information about the mythtv-users mailing list