rendered paste bodyIndex: libs/libmythtv/videosource.cpp
===================================================================
--- libs/libmythtv/videosource.cpp (revision 9858)
+++ libs/libmythtv/videosource.cpp (working copy)
@@ -18,6 +18,7 @@
#include <qfile.h>
#include <qmap.h>
#include <qdir.h>
+#include <qprocess.h>
// MythTV headers
#include "mythconfig.h"
@@ -108,7 +109,7 @@
XMLTVGrabber(const VideoSource& parent)
: VSSetting(parent, "xmltvgrabber")
{
- setLabel(QObject::tr("XMLTV listings grabber"));
+ setLabel(QObject::tr("Listings grabber"));
};
};
@@ -300,14 +301,8 @@
"instead of just 'mythfilldatabase'.\nYour grabber does not provide "
"channel numbers, so you have to set them manually.");
- if (grabber == "tv_grab_de_tvtoday" || grabber == "tv_grab_se_swedb" ||
- grabber == "tv_grab_fi" || grabber == "tv_grab_es" ||
- grabber == "tv_grab_nl" || grabber == "tv_grab_jp" ||
- grabber == "tv_grab_no" || grabber == "tv_grab_pt" ||
- grabber == "tv_grab_ee" || grabber == "tv_grab_be_tvb" ||
- grabber == "tv_grab_be_tlm" || grabber == "tv_grab_is" ||
- grabber == "tv_grab_br" || grabber == "tv_grab_cz")
-
+ if (grabber != "datadirect" && grabber != "eitonly" &&
+ grabber != "/bin/true")
{
VERBOSE(VB_IMPORTANT, "\n" << err_msg);
MythPopupBox::showOkPopup(
@@ -374,67 +369,36 @@
// only save settings for the selected grabber
setSaveAll(false);
-
+
addTarget("datadirect", new DataDirect_config(parent));
- grabber->addSelection("North America (DataDirect)", "datadirect");
-
+ grabber->addSelection("North America (DataDirect) (Internal)", "datadirect");
+
addTarget("eitonly", new EITOnly_config(parent));
grabber->addSelection("Transmitted guide only (EIT)", "eitonly");
- addTarget("tv_grab_de_tvtoday", new XMLTV_generic_config(parent, "tv_grab_de_tvtoday"));
- grabber->addSelection("Germany (tvtoday)", "tv_grab_de_tvtoday");
+ QProcess find_grabber_proc( this );
+ find_grabber_proc.addArgument("tv_find_grabbers");
+ if ( !find_grabber_proc.start() ) {
+ VERBOSE(VB_IMPORTANT, "Failed to run tv_find_grabbers");
+ }
- addTarget("tv_grab_se_swedb", new XMLTV_generic_config(parent, "tv_grab_se_swedb"));
- grabber->addSelection("Sweden (tv.swedb.se)","tv_grab_se_swedb");
+ while (find_grabber_proc.isRunning())
+ {
+ usleep(100000);
+ }
- addTarget("tv_grab_no", new XMLTV_generic_config(parent, "tv_grab_no"));
- grabber->addSelection("Norway","tv_grab_no");
+ if (find_grabber_proc.normalExit())
+ {
+ while (find_grabber_proc.canReadLineStdout())
+ {
+ QString grabber_list = find_grabber_proc.readLineStdout();
+ QStringList grabber_split = QStringList::split("|", grabber_list);
+ QString grabber_name = grabber_split[1] + " (xmltv)";
+ addTarget(grabber_split[0], new XMLTV_generic_config(parent, grabber_split[0]));
+ grabber->addSelection(grabber_name, grabber_split[0]);
+ }
+ }
- addTarget("tv_grab_uk_rt", new XMLTV_generic_config(parent, "tv_grab_uk_rt"));
- grabber->addSelection("United Kingdom (alternative)","tv_grab_uk_rt");
-
- addTarget("tv_grab_au", new XMLTV_generic_config(parent, "tv_grab_au"));
- grabber->addSelection("Australia", "tv_grab_au");
-
- addTarget("tv_grab_fi", new XMLTV_generic_config(parent, "tv_grab_fi"));
- grabber->addSelection("Finland", "tv_grab_fi");
-
- addTarget("tv_grab_es", new XMLTV_generic_config(parent, "tv_grab_es"));
- grabber->addSelection("Spain", "tv_grab_es");
-
- addTarget("tv_grab_nl", new XMLTV_generic_config(parent, "tv_grab_nl"));
- grabber->addSelection("Holland", "tv_grab_nl");
-
- addTarget("tv_grab_dk", new XMLTV_generic_config(parent, "tv_grab_dk"));
- grabber->addSelection("Denmark", "tv_grab_dk");
-
- addTarget("tv_grab_fr", new XMLTV_generic_config(parent, "tv_grab_fr"));
- grabber->addSelection("France", "tv_grab_fr");
-
- addTarget("tv_grab_jp", new XMLTV_generic_config(parent, "tv_grab_jp"));
- grabber->addSelection("Japan", "tv_grab_jp");
-
- addTarget("tv_grab_pt", new XMLTV_generic_config(parent, "tv_grab_pt"));
- grabber->addSelection("Portugal", "tv_grab_pt");
-
- addTarget("tv_grab_ee", new XMLTV_generic_config(parent, "tv_grab_ee"));
- grabber->addSelection("Estonia", "tv_grab_ee");
-
- addTarget("tv_grab_be_tvb", new XMLTV_generic_config(parent, "tv_grab_be_tvb"));
- grabber->addSelection("Belgium (Dutch)", "tv_grab_be_tvb");
-
- addTarget("tv_grab_be_tlm", new XMLTV_generic_config(parent, "tv_grab_be_tlm"));
- grabber->addSelection("Belgium (French)", "tv_grab_be_tlm");
-
- addTarget("tv_grab_is", new XMLTV_generic_config(parent, "tv_grab_is"));
- grabber->addSelection("Iceland", "tv_grab_is");
-
- addTarget("tv_grab_br", new XMLTV_generic_config(parent, "tv_grab_br"));
- grabber->addSelection("Brazil", "tv_grab_br");
-
- addTarget("tv_grab_cz", new XMLTV_generic_config(parent, "tv_grab_cz"));
- grabber->addSelection("Czech Republic", "tv_grab_cz");
-
addTarget("/bin/true", new NoGrabber_config(parent));
grabber->addSelection("No grabber", "/bin/true");
}